the longest, narrowest room I've ever spoken in. And I was just like, if I didn't have a mic in for a jet, but I don't know if I could really project that much. So this is loose, but like, oh, all right. Well, good morning, everyone. Good morning. Oh, okay, I'm sorry. I'm the first one. You're gonna have to do that again. Good morning, everyone. Good morning. Thank you so much, Jeff, for that wonderful introduction. As Jeff mentioned, I'm very excited to be here. I'm a software engineer at a little consultancy based in Portland called Tilda. And at Tilda, I presumably, most of the time, I work on a product called Skylight. That's my predominant, that's why I spend 40 hours a week, basically. And Skylight, if you are not familiar with it, is your favorite Rails profiler. And if you haven't heard Skylight, that's all right. You might have heard of some other things that we're involved with, mainly some of these languages and frameworks. So Ember is a front-end framework that Tilda actually, it was actually created at Tilda. And we use Ember in our product with Skylight. We also use Rails and Ruby and Rust. And there's one little logo that I left out for Java. It's all right. I don't wanna scare anybody, but we also use Java. And we're also heavily involved in the open-source aspect of all of these projects as well. So you might actually recognize some of my coworkers from the core teams of Rails and Rust and obviously Ember. So if any of these technologies sound interesting to you, quick plug, we are actually hiring. So if you're interested in solving very technical, of fun problems, if you're a performance-minded person, if you wanna go to Portland, come talk to me afterwards. But when I'm not working on Skylight, I spend a good chunk of my personal time doing something else, learning new things. And a few years ago, I decided that I wanted to learn something very big, something kinda scary. I decided that I wanna learn computer science and I decided that I was gonna teach myself the fundamentals of computer science. So I created a project called BaseCS, which is the basics of computer science. And it was kind of a scary undertaking because at the time I didn't have a computer science degree and actually I still don't have a computer science degree. So I didn't even know where to begin. Computer science is a huge field that is someone who doesn't have someone leading you through it. You're kind of like the blind leading the blind where you are the person leading yourself. It's very confusing. So I decided to just pick a simple goal in order to start because you have to start somewhere. I decided that I was going to learn one computer science topic every single week and write a blog post about it for an entire year, which if you do some math, it's 52 topics and blog posts. And I actually did do it and yes, it was a very long year. And sometimes it was really fun. As I started learning about things on my own, it was pretty cool to finally put concepts together with terms and all this jargon that I had heard and really get to the point where I wasn't just like nodding at someone talking about red, black trees. I was like, oh, I know what this is now. And I was like, imagine you like all the moji right here next to my head. So it was fun and it was very empowering and liberating but to be completely honest with all of you, a lot of the time it was really, really hard. And as the year went on and the topics that I wanted to learn about got progressively more complex, it was harder to find approachable resources that really would help me understand something when I was learning it on my own. So here's a tweet from one afternoon when I was trying to learn about a concept called redix trees. You can kind of tell that I felt very helpless. And if you're unfamiliar with the owl meme that I'm referencing here, this is what I was talking about. Steps, there's not like a 1A or a 1B, 1C or something but nope, conveniently left that out. But this is what learning computer science kind of felt to me throughout the year. I didn't always voice it, but that there was like this internal struggle of trying to make sense of things that didn't really seem to cater to where I was coming from, where I was in terms of my skill level. And perhaps this meme and that sentiment kind of resonates with you in your own learning journey, whether it's computer science or really anything else. And I think the most frustrating part about the whole thing was that I would find resources that I felt like I shouldn't have been able to make sense of, but once I actually started unpacking them, it was clear that one pass or two passes through it weren't really, it wasn't really gonna help me. I would try to read academic papers or watch lecture videos and find myself really struggling to understand something that I knew I could eventually get but was having a hard time because the resource was really limited. And to be honest, the whole thing was a little bit disheartening, but despite feeling pretty hopeless and not encouraged by the whole thing, I still kept going. And the reason was that I knew that if I felt this way, there had to be at least one other person out there who also felt just as helpless as I did. And I wanted to make it easier for them. So that was kind of a motivating factor. I didn't want anyone else to have to go through this whole process of trying to find resources and then feel really sad when they couldn't understand them. So I pushed myself to just keep going if only to help one other person who was in the same position as me somewhere in the world. And sometimes it's not a lot of late nights for me and even a few tears, but eventually I got through every CS topic that I set out to learn ever week, including Radex Trees, which coincidentally was the hardest topic for me for some reason. So after the end of the year, I decided to turn the base CS written project into an audio format. And I currently am still working on this podcast, the base CS podcast, which I post with my really good friends, Seron, you should check it out if you haven't and you can come find me for a secret that looks like this if you'd like. And from the base CS podcast, I also rushed out to create a video series by the same name created with the team at Dev2. And with each new project and each new medium that I explored, I started to realize that there was a pretty big audience and demand for these kinds of resources. And that kind of made me feel amazing because I was just hoping one other person out there felt the same way that I did, but it turns out a lot of other people did too. And there was such a high interest for approachable computer science resources. And this made me realize throughout this whole struggle that when I was trying to teach myself computer science and when I felt very alone, that was actually part of a much larger problem. It wasn't just me. There were other people who wanted to learn computer science fundamentals, but they were also finding it really hard to find approachable resources. So one of the things that I realized along the way was that learning new things is hard. Actually, correction, it is extremely hard. And if you've ever had to teach yourself something, which I'm sure everyone in this room has at some point, then you know this to be true. And when I was working on base CS and working on these different versions of it, I started wondering if this is such a large problem. Someone else must have taught themselves this before too. So how did they solve this? How did they learn new things? How did other people learn any new thing in general? What was the process like for that? Was there a good technique or were people just kind of like grasping in the dark to understand concepts that were completely foreign to them? So I set out to try to answer this question and not just because I wanted to get better at my own learning, but also because I really wanted to understand this on a broader level. And the reason was that I really wanted to make the best resources for the most people. So I did some research. Actually, I did a lot of research. I read a lot of papers on psychology and science and the history of learning. And along the way, I stumbled upon the work of this guy. I recognize him. And if you don't recognize him, you might have heard of him. His name is Richard Feynman. So he was an American theoretical physicist who actually created the field of quantum electrodynamics. So a lot of words. And you might know him from his work on helping develop the atomic bomb and I don't know, maybe that Nobel Prize he won once. But he's also the person who was responsible for figuring out what went wrong with the NASA Space Shuttle Challenger disaster. So he's done a lot of interesting things that have had a lot of impact. So you'd probably interact with him with his work at some point. But aside from all those things, I found out that he was also an author, a philosopher, an amateur artist, a lot bigger and my favorite, a bongo player, because of course. I mean, talk about him learning new things. If you spend some time learning about Feynman and his extraordinary life, you see that he actually accomplished so many things during his 70 years on Earth. But one of the things I think that is a thread across all of his achievements, whether professional or personal, it's not physics or science or math, really. It was his desire to learn and understand things. Richard Feynman had a nickname. He was often called the great explainer. And he got this nickname from his fellow colleagues and students. And the reason he, the reason this nickname kind of stuck was that he had a unique way of explaining concepts and teaching and communicating new ideas. And yes, he made like a lasting impact in one Nobel Prize, but I think it was his work as a teacher and explainer that arguably left a far greater impact on the world than anything else. He had such a great reputation for being a great explainer that when he was a grad student at Princeton, Albert Einstein, who was toward the end of his life at the time, actually attended his first lecture at Princeton because he heard about this guy and his reputation. And many years after he was a graduate student when he was actually teaching, he created some lectures that were recorded. And many years later, Bill Gates watched those recordings of those lectures. And Bill Gates referred to him as the best teacher I've never had. And in fact, he was so inspired by these lectures that he, you know, towards later on in his career, he actually found funding to be able to open source all these lectures and you can still watch them online today, which is pretty cool. So all of my reading on Feynman led me to wonder, why did he become such a great explainer? It's interesting to think about how people learn new things, but he was also a great teacher. So how did he learn new things before he taught them to other people? Well, in order to answer that question, we have to go back in time to Feynman's tenure as a graduate student at Princeton. So during the second year, he was preparing for something called his oral exams, which all the students had to take. And most of the other students were just looking at textbooks and kind of wrote memorizing and trying to cram things because they really wanted to pass these exams. Feynman did not do that. Rather than memorizing formulas or poring over textbooks, he did something different. He bought a blank, fresh notebook. And then on the top of the notebook, he wrote this. Notebook of things I don't know about. At least he's like honest and concise, I guess. So in this notebook, he wrote down the things that he didn't understand, the things he understood partly, things he understood very little about. And once he kind of outlined all the topics and his understanding of them, he set to work. James Glike wrote a biography on Feynman called Genius. And in that biography, he describes Feynman's process of going through this notebook pretty well. He says that in his notebook of things to learn, Feynman tried to find the essential kernels of every subject. Ironically, however, his notebook technique wasn't super impactful. I mean, it was good, but it was perfect because he didn't ace his oral examination. He actually got one question wrong. But at the end of each of these intense learning sessions, he had this notebook filled with things that he had learned along the way. And if you started at the beginning, you saw all the things that he knew very little about. And as he worked through each of these topics, you saw his knowledge and his rapport begin to grow and blossom. And by the end of each of these intense notebook study sessions, he had empirical evidence for how far he could come in his own learning. So you might be wondering, I feel fine, but none of us are like Nobel winning physicists unless you are, in which case, wow, that's cool. Well, I'm not. But I do actually think it's pretty interesting because we all have things that we wanna learn. We all have things we wanna learn more about and we each learn in different ways. So even though our topics might not be the same as Feynman, what would happen if we used the same approach to our own learnings? Even if we don't end up playing the bongos or picking locks like he did, there is still something we can learn from Feynman. We can learn how to learn. Throughout the course of his life, Feynman developed this technique that he really honed and started using for all sorts of topics. So it started in grad school, but he continued it throughout the course of his life. And these days, psychologists and educators and scientists refer to this technique. They refer to it as a mental model of the Feynman technique. And it's actually surprisingly simple. It's derived directly from his time at Princeton. And if you think about it, it makes sense how his empty notebook technique turned into this. So what is the Feynman technique? Great question.  So let's walk through those steps together. First and foremost, we have to understand and identify what on earth it is that we're learning about. We have to identify the subject of our learning. We have to understand what is the topic that we're trying to pick apart, that we're trying to learn about before we can go about studying it further. And the best way to do this is to write down everything we know about the topic. It's great if it's in a fresh blank notebook, but it doesn't even have to be. The more that we learn about the topic, we can add to our repository of knowledge. And by having it written down, you can always reference it and we have that same empirical evidence that Feynman had when he was a grad student. So once we've identified the topic, we're on step two, explaining it to someone who knows nothing about it. Notice that I haven't said that we should learn new things, all we're trying to do is explain our pre-existing knowledge. And the reason that we should try to explain it to someone who knows nothing, like for our best results, try a child. Explaining something, explaining a topic as though the person you're talking to would know nothing about it is actually a really good tool for our own learning. It might seem strange at first, but the reason behind this is because it forces you to speak in plain and simple terms. Take a second and think about how you would explain a web request for caching or distributed systems to five-year-olds. What words would you use? What words could you use and what words could you not use? The interesting thing about this is that Feynman realized that children aren't likely to understand jargon and complexity of terminology. And as adults, we tend to lean on that. So if we strip that away, how much do we really know about a topic? Feynman once said that when we speak without jargon, it frees us from hiding behind knowledge that we don't have. And by forcing himself to explain things in the simplest way possible, he realized that complicated words and jargon are often a crutch, a crutch that many of us, especially in this industry, tend to use. Jargon can lead us to think that we understand some things just because we know the words for it. But just because you know the word for something does not mean that you actually understand the underlying concept behind it. So by explaining things simply, we force ourselves to get to the heart of a concept. By being able to explain something without leaning on terminology, you very quickly realize whether or not you really understand what's going on and whether you understand the idea that you're trying to describe or whether you just know words to help you describe it. Another benefit to explaining things the way you would to a child is that it forces us to be brief. You have to use brevity. And if you've ever hung out with children, then you probably know they don't have the longest attention span. So you have to learn how to explain and communicate your idea in very, very concise. Being brief pushes us also to be creative because you have to be concise but also understandable. And this is actually sometimes where words can be intimidating. We can actually reach for other things in our tool belt and Feynman realizes too. One of the things that he did was he started using drawings and diagrams to explain complex ideas simply. The most famous of these you might actually recognize it is the Feynman diagram. And he used this to describe the interaction between electrons as well as particle movements. And at the time, this was pretty revolutionary in the field of science. People were kind of like raising eyebrows at his Feynman diagrams and what he was trying to do with them. But now Feynman diagrams are probably some of the most well-known explanations for part of the physics. A quick side note, while I was researching Feynman, I learned that he actually, I think my clicker just died. That's all right. He actually had Feynman diagrams painted on the side of his van. He had this old van that he would drive around. I think it was cow tech, maybe at the time. He would drive around campus and he would always know like, oh, there it comes. Dr. Feynman in his van with his diagrams. And in case you didn't know it was him, his license plate was quantum. So that probably tells you a lot about what kind of person he was. Big narrative. But back to the Feynman technique. Once we've used simple terms to explain our concept, it's likely that we're gonna realize, oh, I actually can't explain this simply without using jargon or without using long sentences. Oh, I don't actually know this topic as well as I thought I did. And that brings us to step three, identifying any gaps in our knowledge. And I think this is the most important step in the whole process because this is where the actual learning happens. When you realize what you don't know, you can actually go back and do a more focused study on that aspect of the topic. And it's pretty cool because when you strip away all of these crutches, you very clearly see what you need to learn about. Next, in order to grow your understanding of any subject that you're studying. Once we've finally filled in the gaps, we've looked at resources and blog posts and we've figured out how to understand a concept deeply enough that we don't need jargon to explain it. Well, we're ready for the last step of the Feynman technique. Taking all of our knowledge and organizing is and simplifying it into a narrative. Organizing our accumulated knowledge and simplifying it is actually the most planned part in my opinion because you get to take your understanding of the topic and your ideas of how you think it works and sort of create something new. You get to explain it in your own words with your own perspective. And constructing a story out of it is actually a great way to teach too. When Feynman uses this technique, he actually used simple sentences to help him achieve the goal of storytelling. He once described the concept of atoms and how they interact and he did it in a single sentence. He said, all things are made of atoms, little particles that move around in perpetual motion attracting each other when they are little students apart but repelling upon being squeezed into one. Now this is not a super long sentence. And if we read it again, we can actually see that it adheres to all of the steps of the Feynman technique. He's explaining very specifically one topic and he's using no complex terms or jargon really and he's concisely telling you a story about how these characters, how these subjects, the atoms interact. But this is actually a really complex topic that he's explaining. Like this is probably more than one semester of physics. Someone out here probably doesn't know physics. You can correct me if I'm wrong. But I think it's a great example of his own technique at work. And he also used analogies to help turn abstract concepts into something more concrete by relating it to something that he knew his audience or his students would know. So it wasn't just particle physics that he explained so concisely. There's a great series of lectures from the early 80s called the Computer Heuristics Lectures. And actually, I think you can watch one of them on YouTube. And in it, he uses an analogy of how a filing cabinet and a filing clerk is basically how a computer works. And this is, keep in mind, this is the early 80s. So most people are not interacting to that much with computers and very few of them actually know what they are. So he's trying to explain this new technology in a simple way. And he basically just filled it down. I think this is probably the best explanation of what a computer is ever.   And he did this at a time when people were having, very few people were having the resources to understand what these new technologies were. And he was kind of breaking it down for them, in a really approachable way. And the filing technique, I think, is awesome for a lot of reasons. But I think for programmers and people in the tech industry in particular, it's really important for us to think about it and consider how we can actually use it in our industry. It forces us to test our own understanding. And it challenges our assumptions. And when I say challenge our assumptions, what I mean is not just what we think about the topic, but also what we know about it and what we think we know but don't actually know and write it down. In software and in computer science, probably the hardest hurdle to overcome is the limits and bounds of understanding what you're dealing with. In other words, understanding the constraints of a problem are very difficult. And the same goes for learning new topics. You don't know what you don't know. And the filing technique sort of forces you to confront that head on. Because the filing technique forces you to approach your own gaps and your own knowledge, you start to see where you are more well equipped and where you need to fill in the gaps in your knowledge. Finan famously once said, I'm smart enough to know that I'm done. And I think this attitude towards learning and his technique in general is kind of the heart at what he did his whole life. His technique makes it a little bit easier for us to be self-compassionate and kind when we're learning something new because you're constantly reinforcing what you do know along the way. It's a cyclical process. Every time you find a gap in your knowledge, you go back and fill it in.  So you're not just feeling down about yourself because you realize I don't know all these things. You actually see your growth along the way. And as your understanding of something broadens, you start to feel pretty good about yourself. And I think the violin technique is important for programmers because it teaches us how to become better explainers. It's centered around improving our own learning by including others along the way. By reframing our own mental model to teaching as a part of your own personal growth. I think we actually improve not just our understanding of a topic, but also our teaching abilities. And we can help pass that on to other people too. Finally, it was known as a great explainer because while teaching any topic, he would distill it down to his simplest parts. If he couldn't explain it simply, he would start over and go more deeply into a topic. And this is pretty rare for academia. And I think this is still the case today. He didn't just keep his knowledge for himself in a little ivory tower up on a hill somewhere. He actually took these simple explanations and complex ideas into the masses. And he was trying to make it accessible to everyone. Some of his most well-known lectures are ones that he gave at Caltech. So at the time he decided he was gonna teach an intro-level physics class for students not majoring in physics. Which if you think about it for someone who's awarded a Nobel Prize and who could be just doing research and teaching advanced topics, that's a pretty amazing thing to do. And he decided that he couldn't explain his research and his field super simply to students who did not have backgrounds in physics, that he wasn't really doing his job and he didn't really understand the things he was studying and teaching. And he actually ended up going beyond students in university. In 1964, he delivered a series of seven-hour lectures on all topics in the whole realm of science. But if you watch these lectures, you'll notice he's not using complex terminology and he's not trying to make you feel like he's super smart and putting you down. Instead, he's using his own technique to explain scientific concepts to people who are sitting at home on their couch and who might think, oh, I'm not good at math or I'm not good at science. And that's, again, a pretty phenomenal thing for someone with so much knowledge to do. He made people feel like these topics were not just understandable, but also fun. And today you can watch these videos for free and you can see the technique in action and you can still take advantage of all of his knowledge, even though he's no longer here. So more than his contributions to physics and math and science, I think his life's work and his technique show us that making knowledge accessible for other people actually opens a lot of doors. His lectures started to change the way people viewed these topics. And when it was broadcast on television, a lot of people were probably inspired by watching this incredibly intelligent person share his knowledge so openly. And he kind of had a rock star reputation similar to like Neil deGrasse Tyson does today. And he kind of served as an example for his entire field. And I think we can actually use him as an example for our whole industry because tech really needs more great explainers. If Feynman did this for physics and science, what would it look like if we did this for technology? Well, if we had more great explainers, I think we'd be making knowledge more accessible and we'd be opening up this industry to people who might currently think that they aren't good enough or don't know enough math and science to work in this industry. We can reach people who are traditionally underrepresented and help bring new unique voices into the field and through accessible resources, people who might not have computer science degrees or might not have an understanding of one tool or one technology might feel more empowered to actually try to learn more. It would also mean that we'd reach people who are in the industry who want to learn something more and are struggling to find the right resources. If everyone in our field worked towards making a better explainer, we'd have a whole wide range of explanations. And you never know with whom that resource and that explanation will resonate with. For example, if I could have an explanation of great histories, I might not have spent an entire afternoon in tears trying to understand it. Hopefully now that I've written about it, someone else out there will not ever have to go through that too. If everyone made teaching a part of the learning process, learning new concepts would be easier for so many more of us. It's not all selfless. There are personal benefits too. First of all, learning becomes easier, I think if you use the timing technique and learning good things is empowering. Not only does it make you feel good about yourself, but you start to be in the loop about what's happening in the field and you're less afraid is one day you have to learn a new tool or technology or framework or language because you know how to learn, so you'll figure it out. For me, learning the fundamentals of computer science, through writing ACS was pretty liberated. I think I see things in a different way. I'm less afraid to dig into source code and how things work. I'm more willing to try and use things out and I think I'm a better programmer for it. So how do each of us become great explainers? Well, I think the manifestation of the timing technique can be a lot of different things. For some of us it might be writing a blog post or for others they might be adding some much needed documentation. So the next person who's trying to look up something has that resource right there available for them. Or maybe it's working with someone at your company who's newer so that you can actually explain something to them and you'll probably learn that you have something else to learn in the process. I record hours of lectures. You can apply this to meet so many different things and see an immediate impact. And I love to think that if all of us were great explainers and we actually tried to strike towards this, we'd see a lasting impact just like I did. We might introduce new people to the field who would have never entered it and we might retain and keep some people from the field who are kind of feeling like they wanna leave it. I think if we were all great explainers ultimately, we'd leave the industry a little bit better than when we found it. And to be honest, I don't think I can come up with a much better contribution than that. Thank you. If you're interested in learning about computer science, you can go to basecs.org. What was that? Basecs.org? Yeah. Basecs.org? Yeah. B-A-S-G-C-S.org, got it.  I was just, I was just echoing. All right. You wanna echo this too? I wasn't working on a new project this year. This is Game Boy related. Like Game Boy, CS. No, it's about distributed systems. Oh. Yeah. That's hard. Um, I'm working on a new project this year, about basecs, basecs.org, where the GS answers are distributed systems, you can go to basecs.org. Basecs.org? You know what would be great about basecs.org? Is if you use this to convince other people to make the materials and then you just aggregated them, that would be true. So I would just buy the domains and be like, do you wanna write a project about this thing? Well, you motivated by basecs. Now come be the distributed systems of basecs. Yeah, I thought it was really key that you highlighted Rich Feynman using a notebook to learn things. And then, boom, oh my God, there's blank notebooks that you got today. So I saw lots of people who was up here, writing stuff down. Not Tampa. Other people up here are writing stuff down. That's right. What stands out like why distributed systems as the second big domain to tackle. Oh, that's a good question. I think distributed systems is a good second step because computer science is a lot of concepts and you're kind of operating as though you're in a little silo. And the minute you add other machines or other people, you have to throw all of that out the window because things that algorithms you would have used and assumptions you would have made with a single system, like that computer science introduces to you, that just does not work in distributed systems. So I'm throwing everything I know out the window is what I'm saying. That's what I wanted to do. Oh, I might ask a second question, which is when you were working on the BCS project, like did you ever get the feeling of, I'm just saying the same thing somebody else said? Yes, I think sometimes when people look at like technical logging documentation, right? It's like it's already there. They could already read about radix on Wikipedia. So what's the point? Oh, I don't want anyone to read about radix on Wikipedia. That's the thing. If you're already, as you said, if you're already a doctorate level expert in this topic, then you can get a lot of video articles. Yeah, it's just like if you, there's a couple years ago I Googled directed acyclic graph and I went to Google images and I saw the first page and I was like, ah, and I just closed the panel. I don't know what this is. So I was like, there's gotta be like a nice intro version to that and so like I try to add images to it and I try to write about it from the concept, from the context of which I approach that concept. So you could read the Wikipedia article, but you don't have to. There's no option stones. Sorry, I mentioned before, you need to make your, when you teach things, did you run more blog posts by like, so I don't know if you know anybody who's like, not familiar at all with that, just gonna test out how effective those posts were. Did I ever tie it out on children? Not necessarily children, but like just like people who are reading might not be familiar with those stuff. I guess the closest is probably people who can, so people who are like, I don't know, a month or two into coding who were like, I wanna learn about this computer science stuff. I've heard it's important. I don't know where to start. I like share it with them. Sometimes I feel like it's impactful. I'm sure for some people it doesn't work because everybody learns in a good way. So that's why I was like, oh, I'll create the podcast. I think the podcast is way more impactful for some people because you guys do a lot more explaining and back and forth when you're just having a conversation with someone. For other people, written is just like not, I don't know, it's just that people like, you know, videos, because they like the visual walking through. So I think different forms are probably profitable for different people. I should try it out on people who have a good tech industry to see what happens. That's a good experience. So when you were making these things, obviously we didn't have the things we're making. So when you're making these things, you had things we're making and you had to, presumably go read Wikipedia or go read things that were hard to look at. What was your strategy there? Say you live in a world where these resources don't exist yet. How did you approach it? So your question is, if I didn't have Wikipedia and those resources, or what did I do when I didn't have FaceCS? For a second. Yeah, what did you do when you didn't have FaceCS? I basically would look for a whole range of resources, pick out things I did understand from that. And what I didn't understand, I would go to another resource and see if I could explain it. So like with algorithms, people will talk about bigger notation and you know, space time complexity, but not everyone explains it well. So I'd be like, okay, I understand how this works. I don't know why they're talking about, I don't understand the space time complexity. This post, I'm gonna watch this hour and a half long MIT lecture. Hopefully they explain it here. So it's just like a lot of going through many versions of people explaining different concepts. So that's kind of when I realized, oh, there's a lot of people creating resources. Not all of them, you know, make a lot of sense because it's not like you can't Google these things and find them. They're just not all going to cater to where you are. So I had to look at a lot of resources and I'm just still at that point. Hi, this is Stefania. Thank you so much for the talk. I wanted to build on the previous question and ask you what were role models for you in terms of video, blogs, podcasts, teach and are great explainers in the tech domain and how is your process because I watch your videos and you're awesome. And you know, like I would love to learn how to think about your experience of creating these videos, the blog posts, like how do you get better at making these explanations in these videos for you so great. Thanks. That's a great question. I have a lot of people that I love their resources. Obviously, how many I can remember. Julia Evans has a lot of great blog posts. She has so many. Some of them I'm just like, I don't know anything about what this topic is. And I'm still not scared to read the post because I know you're gonna be, you know, make it approachable. I think Lynn Clark has amazing resources on, she does code cartoons and she's in like React, Flux, and I think she's in a recent one on Waslam, WebAssembly. And I guess to answer your second question, there are a lot more I just can't answer if you follow it right now. There's a bit too much at the top of my head right now. But to answer your second question, I think the more that you iterate on it, you start to understand what's lacking in your explanation. So for me, when I wrote the blog series, and then I turned each blog post into a, I'm still in the process of turning it into an episode from each podcast. And I turned some blog posts into videos. So by the third time of going around and revisiting the same concept, I realized, oh, this is actually the hard part of this concept. I should spend more time on this. The first time around, I didn't know that that was gonna be the difficult part. And there are other times where I'm like, oh, you should really explain this step by step because I've now gone through this concept, say for example, binary search.  You explain it third time by third time. You understand what problem there are a few questions. What are the easy things that you probably don't need to go over? And so I think that's probably why teachers are so good at what they do, and they've been doing it for a while because they understand the concept of the topic so well that they've been doing it for 10 years, 20 years. They're like, all right, today's algebra. I know the hard question is like, this is what we need to spend more time on. This is what I think they'll understand quickly. So I think revisiting a topic more and more will make you better at explaining that topic. And I think those should make you better at teaching in general, the more you do it. When you look back at those early XCS articles, is it painful after like 46 later, did you look back at number five or six or whatever? You know, why did I do it that way? Mostly it's the quality of the images. I got better with the quality of the images. And so the first five, you can skip those if you want, because like I scanned them and I was like, oh my God, this is not the iris. This is like, you can see the text behind it. So that's that way to be better, but yeah. At the beginning, like, what's your initial like, let's say this week or so, how much time we go into one article. Okay, so we're reading maybe two to three hours every evening. For a second, it was about four weeks. Well, a couple hours every evening on the weekdays, and then I would draw, the drawings would take like four hours probably, five, because I messed up a lot. And then I used ink. And then I realized, oh, you can use pencil and go over it and get this will be better. It's a long process. And then writing it is actually not hard by the time, like if you spent a week thinking about a topic and you've gone and created drawings, like the drawings will be right there. So the writing takes two hours. It's the learning of how to create the drawings that takes six days. Yeah, so ballpark, like 22 work hours through and through. It's interesting with getting into a harder or more nuanced complex topics over the year, although your systems were faster, your topic was more difficult. Did it stay the same like 22 hours through the year or was it actually longer? I think sometimes it got longer. Sometimes I would be a day or two late. What? I know. I was paid, logged in. Which my free content, I was like, I'm so sorry, it's not coming out, I'm okay. I should have posted that person on Twitter that I was like, man, published yesterday. And it's real quick, I hope they have to. But I do think that's an interesting question because I'm working on the podcast now and Seron and I are about halfway through. And now we used to be able to record an episode in about like half an hour. And now it takes us like a full hour to go through the topic, make sure we have the algorithm correct, make sure we're not making any mistakes. And it's just like, because it is getting harder as you go throughout the series. Because it builds on itself, which is cool. But also, thank you very much for your time. Thank you. Thank you. Thank you.


Okay, it's day two of Amazon Prime Day deal early access and I am bringing you my picks and we're gonna do a little bit of shopping together besides, so let's get into the video so it doesn't take us an hour long. Hello friends, as promised, this is video number two in the Prime Early Access days and I am bringing you tons of beauty, some fashion but mostly beauty and there's some really cool gadgets and different things in here too. Everything that I am showing you today will be listed in my storefront. It's actually a box or a list that is over on my Amazon storefront. So all you have to do is go to the link. That link will be in the first pin comment in this video. Also will be in the description box. I'll make sure that I put my Amazon store in the description box. The list will say Amazon Prime Early Access Deals and that will be updated all the time. I will be working on that for the full 48 hours of this sale so that there can be new things on there and the things that have sold out will go off so you don't get confused with all of that and don't forget that there will be a lot more than I talked about. Down in the description box, everything will be very detailed so that you can shop down there and there will be the links and everything I'm wearing and whatnot and by the way, the shirt that I'm wearing it will be linked too. Really cute shirt, just got a cold shoulder on it and a little bell sleeve, just kind of a fun knit shirt and I also wanted to show you this cute jacket that I got. I'm gonna show you a clip of it right here as well. These might not be on sale but I have a feeling that they're going to be. I wanted to show you this jacket because it's so dang cute and it's a suede, micro suede, it's easily washable and I just thought the detailing on it was so cute with the silver. Love it, love it, love it. So I wanted to put that together with an outfit and I bought these purple boots. You guys know I love purple, they have these in other colors but these boots are so darn cute and they are so darn comfy. I could not believe how comfortable they were. I was really surprised at that because sometimes when you buy these kinds of boots they don't have a really nice sole on them or they don't really have a lot of padding in there but these do, they have a zip up on this side so they're really easy to get in and out of and they come up quite a ways on the ankle so that you're gonna be kept warm in the winter. I got mine a half a size bigger so I can wear my wool socks with them when I do wear them. So you have a decorative zipper on this side and then the one zipper on this side to get into and the heel is not that big. I just, I thought this was cute and then to finish it off I got the purse to go along with it and this is a purse that I actually bought in the spring and I bought it in blue, but I, I love this purse. It's so cute, it's not too heavy. I like that about it. It's mid-sized, it's very structured so it'll stand up on its own. Got the cutest gold accents all over it. It's got the flap right here and then it's just, you know, one pocket in there. It does have a little makeup case and it does have the long strap that goes across it in case you do want to wear it over your shoulder but I actually can wear these chain straps over my shoulder, no problem and I don't ever use the shoulder strap. And one more thing, let's talk about my earrings. They're just cute little dangle, silver, twist earrings, kind of a little hammered look to them. I'll definitely make sure. Those are linked along with my makeup and finger and a polish, everything that you need to know about. Okay, so now let's get into what I absolutely know will be on sale. Olaplex has a little trial-sized kit. I gotta get my glasses, I'll never be able to see that. With their Intensive Bond Building Hair Treatment, the Olaplex 3, 4, 5, and 8. So you have the shampoo, the conditioner, the hair perfecter and the Bond Intense Moisture Mask and they're all in here and they're all trial-sized. I thought, what better way to try this because I don't know if the hype is real on these. Are they as good as everybody says? Now they do have a ton of their products on sale as well. I know there will probably be at least 20% might be even more. The next thing I picked up when there wasn't a sale but now I'm excited because it is on sale for you guys if you want and want it. This is the For You Luna 3 Smart Facial Cleansing and Firming Massager. This will hook to an app and you charge it and it's supposed to do all kinds of things. So I haven't even gotten mine out yet. I love my little PMD device that I put in yesterday's video. I really like that but I wanted to try this one out, see if it was any better, any different. So it is going on sale as well. And then I also picked up from L'Oreal. This is the Ever Pure Sulfate Free Glossing Conditioner Shampoo and then this one is the In-Shower Acid Glace. I've really been wanting to try this for a while and then when I saw the set was coming on sale I was like, oh yeah, I'm gonna be trying that.  They're pretty good size before the sale. So fingers crossed that this is gonna be good because I just got this in yesterday so I haven't really tried it yet. If any of you have tried this before let us all know in the comment section so that we know that.  And I forgot that during Ulta's 21 Days of Beauty I did get to pick up the Dynamic Resurfacing Facial Pads. They're just soaked with I assume glycolic acid. I'm sorry, I didn't look that up. It's either glycolic or lactic acid. It's very gentle. So I do like this. I use these two or three times a week in the morning or the evening, whichever suits me. And yeah, I think there's 60 of them in there or something like that. So this is gonna be on sale as well. L2MD is also going to have some of their sunscreens on sale. This one is the one that I like and I actually like this one for my hands and my forearms as much as I like it for my decollete and face. This is the Broad Spectrum SPF 41 and it has a slight tint to it. And it says oil-free with antioxidants, transparent zinc oxide UVB protection, water-resistant. So this is also for extremely sensitive skin and post-procedure skin. And I love using this after a retina disaster where you're really getting really sensitive, tender skin. So this has been really good. Never irritates, feels very soothing, really like that. That one's gonna be on sale as well. Also wanna tell you about these hair clips. Now, you wouldn't think that hair clips would be a big deal. I don't have four because the fourth one, my daughter begged me if she could take. But let me tell you about these. So they're big. That's one of the things that I thought because my hair is so thin and fine, I thought there was no way that this was gonna really work on my hair. But it does. And one of the things that's great about it is because my hair's shorter back here and I couldn't pull this hair up into a smaller clip because it would just always fall out. Well, this just goes all the way from the top to the bottom and clips all that hair in and holds it really firmly all day long. I love these things. I really have enjoyed having them. I will put them all over the place. I'll end up with one in my car, one in my kitchen, one in my bedroom. And then I won't have one and I'm like, oh, cred. And then I gotta go find it because I like them that much. But if you have hair that you have been trying to keep up in some sort of a clip and it just won't, you might really like trying that. Also wanted to tell you, am I just into red and purple or what? Also wanted to tell you about these really super soft leggings that I got. They stretch like crazy. So you're not gonna have a problem with that. And they're so comfortable. And I practically live in leggings through the winter because they're just warm and they're easy. Plus I love buying them in a whole bunch of colors. Then you kind of have a cute outfit. You know, tuck these into those purple boots and you're good to go. So I really do love those. Okay. And so here's one of the things that I wanted to show you. I am so excited that this is gonna be on sale. This is a Dutch oven, but it's a ceramic coated. This thing is so heavy. It's a ceramic coated Dutch oven. And it stays so clean, but this cooks exactly like a Dutch oven does because the interior is cast iron. It's just coated with ceramic. But this just makes everything really super easy because when you cook with a cast iron skillet, you either have to season it or not clean it.  Well, the ceramic on this helps it to slip off and the cleanup on it is really, really easy. As you can see, mine looks practically brand new. So I was really glad to see that this is going to be on sale and these are great, indispensable. I love cooking cornbread in here. Stoos, it makes the most beautiful roasts and potatoes. It's just, it's so good for so many things. You can even do cakes in here. I've done a beautiful cake in here. So yeah, this is really good Dutch oven. And I love that it's coated and you don't have to worry about cleaning it. So easy. So I'm gonna scoot to this side. Here's a few of the things that I wanted to shop with you. I've got my phone. So one of the things is the Amazon Halo View Fitness Tracker. It is a smartwatch kind of basically, but it's more for fitness and it's not very expensive because it is just for fitness. And I really have been wanting to get one of these. I have my heart problem anyway and this will monitor a lot of those things. So I'm really excited to get that. Plus I need to know how many steps I'm taking in the day so that I'm not so stinking lazy. This Monopoly game right here, how fun is this? My daughter is a little mermaid fiend. She absolutely loves that movie. And yeah, I'm definitely getting her this Monopoly game. And so cute. I just thought it was adorable. I also wanted to mention the Roku Streaming Stick 4K. This is so good. I got me one of these for my downstairs and I got my mom one of these. And it's really good because not only is it the 4K and it has a ton of apps in there that you can hook up to if you are subscribed to them. But the great thing about it is how easy it is for my mom to use. Sometimes she'll get a little bit confused with things but this is so easy to use. Roku, I feel like, is way easier to use than any other device. This next one I thought was so cute. This is called Decala Smart Sunrise Alarm Clock Gradual Sunset Sleep Sound Machine. Okay, so it has the sound. It also has the light. It's got a glow light. I thought this would be great for a boys room, for a girls room, even if they're like, you know, eight, nine on up into their teens. I thought this would be great. It's not only alarm clock, but it has that sound machine in it. So, you know, if they have a problem sleeping, my kids always had to have a fan in their room. This kind of solves all of those things. Okay, this next thing I thought was absolutely adorable. This is, it's called Genuine Fred Duck Drink Tea Infuser for Loose Leaf Tea. Look at this duck. This is so cute. I'm getting my mom one of these too. She loves to drink tea. And so this duck's little bottom end is up and you have to remember that it's loose leaf. But you know what? If you have somebody that loves tea but they don't drink loose leaf, just take a tea bag, put it inside of this and then they can still have the duck and still have the novelty of it. What a great gift that would be, right? I just thought that was so stinking cute. Then there is also a GE Immersible Blender, handheld blender for shakes, smoothies and soups. You can put it down in your pot as you're making soups. I'm definitely picking that up. That I've been, I've had my eye on forever. So I'm gonna absolutely be picking that up. It has two attachments to it. The whisk, it has two speeds, 500 watts. And it has that little processor down there, that little food processor down there. So you can actually make baby food in there or whatever you want to. I, yeah, I might get one of those for my daughter too. Okay, here's another really good one. If you have an older kid that you need to buy something for and you have no idea what to do for, like a grandson, granddaughter, that's in their mid teens to later teens. The JBL clip for portable mini Bluetooth speaker. This has huge sound to it. My friend had one of these and I'm picking up one and you can take it into the shower, hook it up to your phone so they can listen to their phone the whole time that they're in the shower. You may never get them out of the shower, that could be a problem. But you can do this, you can take it anywhere. And it's one of those things that even is really nice to have in a car if they don't really have a really nice stereo system. Hook it to your phone, you have this big sound that's coming out of this little speaker. It's a really great gift, I thought. The last three items are fashion items that I'd like to get. This is a ribbed knit skirt and it's got a split on the side of it. It's full length, it comes below the knees. It just looks like it would be very, very comfy. I just thought her wearing tennis shoes with this, I just thought that was so cute. Even though I probably would never wear tennis shoes with a skirt, but I still thought it was cute. And then these boots I thought were adorable too. These are the Drop Women's Jane High Heel pull-on sock boot. And what I think is so cute about this is you just pull them on and they just fit like a glove across your foot. I used to have a pair like this and that's why I'm so intrigued by these.  And then this last one is from Pretty Garden, Women's Turtle Neck Knit Sweater Long Sleeve top. And I loved this color, this color is so cute. But I also love the detailing that is right across the chest right there. It just looks so cute. I don't know if it'll look cute on a bigger gal like me, but hopefully it will because I just thought that this was something that was so, so cute. Now that wraps up my wish list and the things that I would like to recommend to you guys. You need to tell me what's on your wish list or what you would recommend to me. I would really appreciate that because I love knowing what you guys are thinking about getting just makes my day. So I hope you did enjoy the video. Please give it a thumbs up if you did. Thank you so much for being here with me today. Please take care of yourselves. Happy shopping and we'll be together really soon. Love you guys, bye-bye.


walk by night. I know many strange tales hidden in the hearts of men and women who have stepped into the shadows. Yes, I know the nameless terrors of which they dare not speak. Yes friends, it's time for the Whistler, rated by independent research, the most popular West Coast program in radio history. White hot dust. As the bus creaked to a halt at the far end of the single main street, a lone passenger stepped down, stood for a moment looking around him. Moving away from the bus and along the street it all came back to him. The neglected fountain marking the plaza, the faded facades along the little row of shops, the old cafe, all the same unchanged. Just as when he had left on that same bus almost a year ago. At that time Roy Collins was certain that he would never have reason to return. But now he did have a reason for return. A good reason. Crossing the plaza, the guitar music he heard reminded him again of his former mining partner, old Dan Bosley and Paul. Paul Fallon was the youngest and the laziest. Interested only in learning to play that secondhand guitar he picked up somewhere. But now it was Lola Mendes for what I wanted to see. The girl who ran the tiny cafe. Lola! Oh, but no, no, I... Oh, not for you. Oh, no, no, I did not. I do not know what to think, Senior Roy. It's just... Well, it's just that I'm so happy to see you. Well, that's more like it. Tired? Lola, I hope the cafe hasn't changed if you've still got some of that good... Yes, yes, yes. Sit down, Senior Roy. All right. No, no, no. Over here by the barn. Yes, Senior Roy. So happy that you're well and back again. Back in Riondo. Yeah, me too, Lola. Oh, it's good to sit down without bouncing around on that rickety old bus. No, I never mind that now. Here, Mendes. Yeah. To your return. Senior Roy, are you back to stay? Or maybe just to see your old friend Dan Bosley? I don't know. I might look him up maybe. I really came back to see you, Lola. Oh, that's nice. Yeah. How is Dan? Is he making out okay? Oh, see? He bought the watch, the silver one. I told you that in the letter I wrote. You asked me to let you know when he bought it. Yeah, that's right. So Dan got his silver watch, huh? I always said he would, didn't he? Well, he struck it rich. Yes. He fell up in the hills in our old camp. I think so. Oh, see? Oh, Manuel. Manuel, look, it is Senior Roy. He's come back to us. Oh, yeah. He has a long arm of a law. Hello, Manuel. Hello, Senior Constance. Oh, sit down, Manuel. Have a drink with us. Oh, thank you, Lola. It's a matter, Manuel. Southwest malty always on duty? Always, Senior. 24 hours of the day, I am on duty. Oh, that's fine. Fine. That still amuses you, Senior. Oh, sorry, Manuel. It's just that in this sleepy little joy... Nothing ever happens. I remember you always used to say that. Did I? Always. But you forget, Senior, that Riondo is just one place, one village. Manuel has been promoted, Senior Roy. He patrols all this territory now. Travels over parts of it each day. Well, congratulations, manny boy. Why did you come back, Senior? Why didn't you keep going like you promised? Oh, now, wait a minute. I... Oh, please, Manuel, just because he and his partners had a little fight... I am sorry, Lola. It's my job to ask such questions of strangers. Strangers? And hardly that, Manuel. I spent quite a few months here. Weak, Senior. You did not stay long enough to know Riondo, but long enough for us to know you. Oh, now, I wouldn't say that. Neither would I. I will see you later, Lola. I have some resources to make up. But, Manuel... Please enjoy it that you return. Manuel Rosales, annoyed, suspicious, in return, threatens his obvious romantic inclinations toward Lola. With a promise to return later, you'll leave her and, walking through the village, your thoughts turn back to your old partner, Dan Bosley. And then, the sound of the guitar startled you again, doesn't it, Roy? But only for a moment. You're sure, Paul Fallon, your other ex-partner is far from Riondo at this moment. You're sure that he hasn't acknowledged what you have of Dan's recent good fortune. At a blacksmith's shop, at the end of the street, you stop, rouse the dozing old man, and present your proposition. It doesn't take too well, does it? Ah, see, Senior, I have boroughs, good, strong-packed animals, but I do not lend them without the pay, in advance. Now, look, Juan, I said you'd get your money. It's just that I haven't got it right now. I have to work a deal with a friend of mine. No, no, Senior. No pay, no borrow. I'm very sorry, Senior. It's nothing. You're dried up, old goat. Why bother with him, Roy? What? I have enough for our journey. Oh. Uh-huh. 20-year-old partner. Welcome back to Rion, and if I may be so bold, did you come to see an old pal? Or did you come for gold?  Okay, okay. But if I can't sing, we'll talk. There's nothing to talk about. What are you doing here, anyway? You see, there is something to talk about.  There's got to be a reason. A good reason. Like what? Well, like maybe our dear old ex-partner, Dan Bosley, making a strike. Did he? I wouldn't know. Neither would I. But we'll go see him, won't we, Roy?  That didn't figure any of this thought. Not with me along, you didn't. But you'll lead me to him. Well, I might as well get this straight, Roy. You're not going anywhere without me, partner. Oh, yes, we're right back in Rion, though. Two of the unholy three. We're going to take Dan's gold away. Have for you and have for me. Nothing of Dan Bosley's good luck in the hills far back of Rion, though. But it's all right now again, isn't it? Yes. You had to move fast and run the risk of Lola suspecting your plan. Wondering if you'd really come back to see her after all. But you're almost in the clear and she doesn't seem to suspect a thing. She's even helped you. It's still helping you. Here in the darkness and back of the old cafe. Slowly, you're okay. I'm not forgetting this. I hope you will be safe, Senior Roy, and that you will come back soon. Oh, yeah, yeah, I will, Lola, real soon. Now, look, are you sure you're okay with Mr. Burrow's supply? Oh, no, no, he will not. The supplies I bought. I'll have the burrow back soon. After that, Lola, I'll make it up to you. We'll get out of this burg. Oh, be careful, Senior Roy. The mountain trails, the rivers, they're dangerous. Manuel says... Never mind what that half-baked deputy says. You heard what I said. You and me, Lola. Oh, yes, Senior Roy. You and me. Adios, querido. With your movements covered by the night and Lola's assurance that she'll say nothing to anyone.  Please, that you've outpernovered Paul. Of the three of you, Paul knew the least about the territory around the old camp. He never went there alone, so he'll be unable to find a hidden canyon. You have trouble remembering yourself, don't you, Roy? But you remember enough to follow the river exactly as Dan always did.  You halt the burrow, sink down, wearily near a tree on the riverbank.  They're around the half-darkness of the near dawn. Wonder if you're imagining things. But you're not, are you, Roy? You're not imagining anything at all. When he does not like me, he slipped out of town and fled. But I found... Oh, see, Dan, huh? Paul's haven't you, Roy. It leads to the present. Paul's trick show. Follows you from Riondo, and whatever you find at the end of the trail is Dan's little cabin and hidden canyon. You must share with him unless there might be something in Paul's a ridiculous storm. A way out for you. Something not quite as ridiculous as it sounds.  Then as you stand there, looking down on the river, a ribbon of silver gleaming in the bright moonlight. Isn't that smoke? Yeah. Dan's place. That's not very far. Why'd we stop here? A lot farther than it looks. I see. Seems to me we could've come along the river all the way instead of hiking up over this mountain. I thought you might enjoy the view. Oh, thanks. It's an inspiring sight. Sure. Sure it is. Quite a drop from here, isn't it? Down there to the river. Yeah. Quite a drop. You can find you alone on the trail again, leading down the mountainside. And it's almost noon when you reach the river's edge. You stop for a moment, look up to the lone tree high above at the top of the cliff where you were camped last night. Yes, it's a long drop, isn't it, Roy? Paul Fallon couldn't possibly have survived a fall like that. Then as you turn and start up the river, you'll freeze in your cracks as the bullet kicks up a tiny cloud of dust at the top of a nearby boulder.  Yet you don't make him move. You wait, and presently he appears walking easily along the path coming toward you. Hello, Dan. Roy? Yeah, Roy Collins, your old partner. Hiya, Dan. Didn't recognize you. You're pretty quick with a trigger finger, eh? But then you always were, uh, cautious. I don't like strangers nosing around. Yeah, I know.  Well, I'm pushing through, Dan, into the interior. Thinking as long as I was in the neighborhood, I'd drop in and say hello. I see. Just passing through, eh? Yeah. Hey, look, you don't mind if I stay over a day or so, do you, Dan? I, uh, I can stand the rest. No, I guess I don't mind. Come on, shacks down this way. There'll be a new place after you. Paul, nice split up. You walk away casually.  Dan hasn't moved. Now's your chance, Roy. At the base of the cliffs, you stare at the crude setup for washing gold dust out of the river sands. Then your eyes wander up the smooth face of the cliff to the top, the lone tree directly overhead. Paul must have fallen close by, but there's no sign of his body. You whirl at the sound. It's only a loose boulder, Roy. And then suddenly a thought hits you. Is it possible that Paul is still alive, that he wasn't killed in the fall? Is he somewhere close by at this moment, watching you? What? Oh, oh, Dan. Uh, for a walk, Roy? Oh, yeah, yeah. Thought I'd come down here, take a look at your layout.  Yeah, too bad. Hey, look, Roy, I'm going down river.  Wanna come along? Well, I guess I'd better not, Dan. I think I'll stay around here and catch up on my sleep. I'll be leaving in the morning, probably. Oh, I see. All right, Roy, I'll be back by dinnertime. Okay, Dan. It's a break, isn't it, Roy? We're Dan out of the way, if only for a few hours. You'll have time to search his shack. Look for the gold you're certain is there. You watch Dan as he disappears around the bend, and then you race back to the camp and begin your search. After an hour or two, you'll finally find what you're looking for, hidden away under the loose floorboards of the shack. Yes, Dan's gold. Back after sack. A small fortune, Roy. Now you'll have to act quickly. Pack as much gold as you can on your burrows and get out before Dan returns. As you reach down to pull up the first sack of gold, your hand freezes in the air. You're certain you heard something outside, the snap of a twig, perhaps. Your main motion was unable to move, hardly daring to breathe. Finally, you slip across the window and look out. There's no one in sight. Your hand is trembling as you return to the gold cache. Begin piling the gold sacks on the table, and then... Didn't expect me to bash this into a... Wait a minute, look. Look, Dan, I know you don't think that. I didn't go far, Roy. Find out what you were up to.  And you did. Now listen, Dan, I was just looking around. You got me all wrong. Back from the blow, you take the gun from his hand, clatter to the floor.  Dan sinks slowly to one knee, and then crumples to the floor. Couldn't have come back, Dan, not so soon. Long way around, but easier with a load. I had your gold. You were digging something else. You have only to pack all the gold you can carry into that sack. Wrap them onto your back, and then hurry to the river. At its edge, you stop a moment near the digging, wondering for a fleeting moment about Paul's body. What became of it? And then you have another idea.  You wait along the river's edge, ankle deep. Move along for several yards in the cold water, and then a sudden clutching fear grips you with your feet sinking away, and you begin to sink. Now you know what happened to Paul's body. It fell into quicksand, Roy, and you've walked into the same quicksand. You've caught the pack strapped to your shoulders.  Yeah, Dan's gold.  Desperately, you'll reach out, manage to grab the branch of a tree, hold on, try to keep from sinking deeper. Help! Don't voice, Roy, bouncing against the hills and back. And then the memory of another voice seems to fill the air around you. The bush is on the river's edge part, and someone appears there. Hello, senor. Who is it? You're firing fire. You cannot hold on too long. My position is as strange as you are, senor. If I leave you there, you would never bother Lola again. But, well, you can't. You can't leave me like this. But, well, where are you going? Come back! It's all right, senor. I will be back. Hey, no! Those tree branches! Throw some of them out of here! I've had to do this before. I will help you, they say. What are you going to do? I know this quick, too. We need something long and flat, something you can hold on to while I put you out. All right. Anything? Well, hurry, my well. See, senor, I will hurry. I will tear up the floorboards in Dan's shack. Floorboards? See, senor, they are the only supports I can get here. I am sure that under the circumstances your old partner Dan Bosley will not mind my pulling them up.


minimization techniques for a smaller, faster AES S-boxes, and this is joined work by Alexander Maximov and Patrick Egnal, and Patrick is going to give the presentation. Thank you very much for your introduction. So this is all about trying to minimize the AES S-box in an ASIC hardware implementation. Now minimization could be lots of things. You can minimize the area, you could minimize the critical path, and thereby increasing the maximum clocking frequency that you can have in your circuit, or you can minimize, for instance, the power and so forth. And typically if you want to minimize or maximize the clocking frequency of the circuits, you would use some kind of lookup table. Just let the code compiler do the work for you and implement the big table. And the problem here is that the area of that lookup table is going to be quite big. So if you're in a position where you need both quite small area and quite fast circuit, then you will need to implement some kind of the S-box in some kind of, with some kind of gate functionality in the ASIC. So that's what we have trying to do to minimize the area based on some delay constraints as well in the circuits. So if you fall asleep right after this slide, I just put the highlights on here what to remember. So we have in this paper some new improved methods for circuit minimizations. And we have also a new architecture for the S-box which improves the critical path and thereby increase the possible clocking speed. So typically this is the flow of the AS S-box. You have the inversion in the field 2 to the power 8. And then after you have an affine transformation and then you get your output R. And the problem here is the direct implementation of this inversion in the Rindale field is pretty complex. So already in 2000 Raymond proposed based on work by Itu and Tsuji that we should use a composite field instead and do the inversion in the field 2 to the power 4. So if you do that you typically get, let me see, you have one of these. Oh never mind. You get this structure here where you have a base conversion matrix to start with and then you have your nonlinear parts and then you have a base back conversion matrix and then the affine part of the S-box. And Satu et al in 2001 reduced this inversion further down to the field 2 to the power 2. And maybe the most sighted work in this field is Ken Wright from 2005 and he investigated the importance of the subfield representation because the circuit would look a bit different based on what base you convert to there. So he investigated a lot of different subfield representations there. So this is for low area. If we go for low depth or fast circuits we have the main work or maybe the most famous work by Boyar and Peralta in a series of papers and they used a normal base representation for the elements and a somewhat different structure for the inversion circuit where they first raised the element to the power 17 and then do the inversion and then you get the, because of the normal base you basically have the coefficient shift there. But in all basics it's the same. You have the base conversion matrix, nonlinear parts and then the back base conversion matrix. And then several people followed this result here. Nugami looking at mixed bases and we have Wenu et al in 15 looking at redundant bases. Last year at Chess, Raihani et al improving the Boyar Peralta algorithm for searching for good circuits for the X conversion matrices. And recently this year Lee et al also incorporated some other things regarding the depth into the BP algorithm which I will talk about later in this presentation. So what you typically do now is that if you have this structure and you take all the linear parts from the first part and push that into the base conversion matrix and you take all the linear parts after the inversion and push that into the back base matrix. And then you end up with sort of an architectural starting point where you have this top linear matrix taking the input producing 22 bits of output for different things in the middle part here. And then you have the middle part where the inverse happens in the field 2 to the power 4 and then you have a bottom linear matrix which does the back base back conversion together with the affine transformation of the AESS box. So the problem that we're trying to solve now is how to minimize this top and bottom linear matrices. So the basic problem is that they are given a binary matrix M and a certain maximum allowed depth of that matrix. Find the circuit of depth D which is lesser equal to this max D with a minimum number of XOR gates that implements, that computes Y equals to M times X. And here's just a small example of what the matrix looks like. Basically you have only 1s and 0s in the matrix. What we have done this paper additionally to that statement is that we have two additional requirements which is called the additional input requirement which means that input signals may arrive with different delays and you can think of the bottom matrix where you have this nonlinear part coming into that that the signals could arrive into that matrix with different delays and you can take advantage of that. And also the additional output requirement that output signals from the top linear matrix may need to arrive earlier than a certain things because they're part of a critical path. So we can put additional constraints on the individual signals in these two matrices. So the contributions of the paper is to follow. We have some new techniques for minimizing this top and bottom matrix. We introduced there's a famous cancellation free algorithm by PAR from 97. We introduced some probabilistic heuristic approach to that algorithm which gives some better results. And we have also a cancellation allowed algorithm which is an exhaustive search algorithm. And that you can only apply to two matrices. We have quite a few input. So we can apply to the top matrix which has eight bits input, but we cannot apply to the bottom matrix which has 18 bits of input. But I will not talk about those two things here in the presentation. What I would like to do is talk about the floating multiplexers and the generalization of this Boyard-Peralta algorithm for other types of gates which gave good some good really good results for the combined S-box. And then we have this new architecture that removes the bottom matrix and reduce the overall depth of the circuit. We have new circuits for the inverse operation. And we have some additional things that we call the initial transformation matrices that also gave very good results. So if we look at the combined S-box. So if you, depending on what kind of a mode of operation you're aiming to run your AES in, you might need both the forward and the inverse version of the S-box. So in some cases you only need the forward, but in some cases you need both. And the typical way to implement this is you have two different top matrices. And then you have multiplexer and you have the combined common part because both the forward and inverse uses the inversion field inversion part. And then you have two different bottom matrices as well. And then you multiplex the output together. Now if you look at the top part here, for example you have two different Ys, Y for forward and for inverse. And then maybe the expression for the forward one is X0 plus X1. And for the inverse you have X0 plus X2. Now you will do a multiplex, a multiple selection from this, these two signals X0 plus 1, X0 plus 2. Now if you replace this instead with the multiplex of X1 and X2 and then do the XOR, you say one gate because in the first case you need one multiplexer and two XORs. Whereas in the second case you only need one multiplexer and one XOR gate. So in this case we're floating the multiplexers up into the linear matrices to take advantage of that. So in general you can replace any expression you have there A plus multiplexer from B and C with the expression A plus some delta and then the multiplexer of B plus delta and C plus delta where delta is a linear combination of the input signals as well. And in the paper we have some algorithms how to search for these deltas to give better circuits. But we can also do more. We can take this famous Boyard per Alta algorithm and try to extend it. So this is the basic Boyard per Alta algorithm and there is some notion of some different things. There is a notion of a point in that algorithm and that's basically in the original argument this is just a linear combination of input signals. And there is a set of gates that you can use. In this case it's only the XOR gate. And then we have a base set of known points which initially is just the input signals. And then in this case they all arrive at the same time. So this algorithm does not take this additional input requirement with different delays into account. And then you have a set of target points which you want to find. Basically it's the row of the matrix M, the Y's that we want to find a good circuit for. And then you have some metric using a distance function which and this is the delta here. So given a certain set of known points how many XORs do we need to implement Y from the set of known signals. And initially this is just the hamming weight minus one. This is the number of XORs that you need for each row. And then you have a set of candidates for each step here. And the algorithm basically runs like this. You try all base pairs S, I, S, J in this set of known points at a certain time. And you form a candidate C by combining these two S's with the available gates. In this case it was only an XOR. So you have the candidate is S, I plus S, J. Now you calculate the new distance vector delta based on this joint set, the known signals plus the candidate. And then we save the candidate that gives the lowest distance and then we start over all over again. And we repeat this until the distance vector is all zero. And then we find a good circuit. Now what we do in this paper is that we extend this algorithms with different gates. So in order to float these multiplexers high up into the top matrix, we extend it. So instead of just using XORs, we say that, okay, we can use multiplexers also. And since they do not do not commute, we have to have both max from V and W and W and V, of course. So it gets six gates you need to consider there. And in this case, a point is not just an input combination, a linear combination of the input, but we have two different for the forward and the inverse case where F and I are the linear combination of the input signals. And this translates into expression using a multiplexer with F times X and I times X. And the input and target point basically the same as in the original algorithm. But the metrics here and the way to calculate delta is getting more complex this time. So we have a lot of new ideas to speed up this delta computation in the paper as well. And for each step in the algorithm, we track these additional input and output requirements to see that we fulfill them at all time and take it can take advantage of certain things there. Now, for the full affine transformation, you need to have a little more complex expression than I wrote up there. But just just so you know, it's trying to just give you the ideas of what we do in the paper. Now you can take this even further and define a Boyard-Peralta algorithm for any nonlinear circuit basically. And this, so we consider all kinds of gates in the set G. Different inputs, a number of inputs and different, you know, linear, nonlinear, whatever. But now a point is the truth table of the Boolean function. And we combine points when we construct the candidate. We combine the points using the truth tables and the gate functionality. So it's a very sort of raw way of approaching this. The target points, again, are the truth tables for the signals that we want to achieve. Now, since this is going to be very, very expensive, computational wise, so we can only do this for circuits with four or five input signals. But the number of output signals is not limited. It doesn't have any bearing on that, actually. And we use this algorithm to derive a smaller inversion circuit over the field 2-3 power 4. So this is, I think, the main result of the paper, the most interesting part of this circuit minimization techniques. We also put, at the end of this Boyard-Peralta algorithm, we also implemented a stack algorithm approach with a search tree where we not only use, for each step, save one candidate, but for each node, we enter which state we enter. We derive 20 to 50 different children and we branch it out. At each stage, we're tracking about 400 different children. And also, we have a depth there. So as we reach TD, we trace back and see, okay, which root has the best metrics here, and then we save that one. And the tree that is grown from that node sort of. And the whole idea is to try to keep leaves from as many branches as possible because it seems like, at each stage, you cannot just take the candidate with the best metrics. But sometimes, you get a better circuit in the end if you take, at some point, a little worse metrics, actually. So this algorithm works really, really nice. And we have some really good results there. Now, for the new architecture with lower depth, if you look at the picture there, the top part is the classical architecture with the top linear and the bottom linear matrix. Well, if you look at this bottom linear matrix, it only depends on the multiplication of the four bit signal y with some linear combination of the input single u. So basically, we can write this, the result here is r equals the linear output from the inverse, the y zero plus a matrix m times the input value u, the input vector u. So the m is an 8x8 matrix to be scaled and multiplied with the nonlinear y bit. So if you look at this, then you can say, oh, why? Why don't we calculate the m in parallel in the top matrix? And then we only have to use 56 gate at the end and very low depth to actually implement this equation that you see there. So that, and that architecture we call architecture D for depth. And that makes your critical path to shrink very much, as you will see in the results. So this gave very, very fast results actually. And we also, I also mentioned this new circuit for the inversion. Here's the equation that Boyar and Peralta used in their original paper. And they found a circuit of 17 gates of depth four. And now they only use two base gates and an XOR. But we applied this extended we are Peralta algorithm for general nonlinear circuits. And we achieve an inversion circuit with nine gates and depth three. And you see we we use the multiplexer gate in a slightly unconventional way here, but but it works. We get good results from it. But if you don't like it, we also have a conventional one of 15 gates and depth three also in the paper. So the last thing that we did as an improvement is what we call the additional transformation matrices. And if we look at the S box and exclude the final constant from the affine transformation, we can write the S box as the inverse times and linear, the linear part of the fine transformation. Now in any field characteristic two, we have both squaring and square root and multiplication by constant. There are linear functions. So we can actually write the S box as as we're done below here using some alpha and some beta. And then we can explore this different these different values of alpha and beta to see what kind of transformation matrix we should use for the top and bottom matrix to get good results. And we have tried for the forward only we have tried all for the combined we did a first heuristic algorithm. And then we've run the full generic fully melt multiplex algorithm to try to get the absolute best. There was recently a similar proposal, but they only consider the multiplication in this step. So looking at the results to the right, you see the synthesis graphs. And x axis is the clock period and area is is y axis is the area. And you see that we have and you want to be as far in the lower left corner as possible. You see that our results is is significantly better. We have the smallest one previously was 130 gates, we are down to 102. And the critical path going for 15 this year recent result down to two using this new architecture down to 12 using this architecture. And for the combined s box, we have gone gone from 15149 down to 127. And the critical path down from 17 to 14 actually. So that's, that's like 20% improvement. Alexander also applied this today as mixed column circuit. And you can see a recent result of his on the e print coming down to 92 x source of depth six for that circuit using the same kind of algorithm that we have presented in this paper. So thank you very much for your attention. If you have any questions, okay, maybe a very quick question. Hi, I was wondering, you mentioned in a slide that you reduce the depth of inversion in the power into to the four sized field. And also, you were in another slide, you were talking about just the full S but the inversion in the full S box into to the eight and you said that you reduce that to 32 none gates. I was wondering if you also knew the and depth for that minimize s box, because I think right now, like the best is like six or something like that. So I was wondering the I'm sorry, I didn't quite like for the 32 non gate inversion. 32 32 NAND gate inversion. I think yeah, I think it wasn't one. No, that's just you mean, you mean this one? Yes. Oh, that's just that's how you sort of collect the results of the to make this to implement this equation are here is so the 32 924 x or is that the size of the full S box? No, no, no, that's just for the assembling of these results in the our equation there. Oh, okay. So I'm sorry, I was confusing you. Sorry. Thank you. All right. So let's thank the speaker again.