Fabulous Adventures in Data Structures and Algorithms with Eric Lippert
Read full transcript 26 segments
-
Hey friends, it's Scott. I want to thank Hey friends, it's Scott. I want to thank our new sponsor, Mail Trap. Modern email our new sponsor, Mail Trap. Modern email our new sponsor, Mail Trap. Modern email delivery for developers. They integrate delivery for developers. They integrate delivery for developers. They integrate straight into your code with their SDKs. straight into your code with their SDKs. straight into your code with their SDKs. You get unified transactional and You get unified transactional and You get unified transactional and promotional email delivery. 24/7 promotional email delivery. 24/7 promotional email delivery. 24/7 support. You contact humans, not AI chat support. You contact humans, not AI chat support. You contact humans, not AI chat bots. We'll give you 3,500 emails bots. We'll give you 3,500 emails bots. We'll give you 3,500 emails monthly in the free tier. And you can monthly in the free tier. And you can monthly in the free tier. And you can try them out at mail.io try them out at mail.io try them out at mail.io today. That's m a lap.io today. That's m a lap.io today. That's m a lap.io io today. [music] Hi, I'm Scott Hansselman. This is Hi, I'm Scott Hansselman. This is another episode of Hansel Minutes and another episode of Hansel Minutes and another episode of Hansel Minutes and today I have the distinct pleasure of today I have the distinct pleasure of today I have the distinct pleasure of chatting with Eric Libert, designer of chatting with Eric Libert, designer of chatting with Eric Libert, designer of fine programming languages, very likely fine programming languages, very likely fine programming languages, very likely ones that you have worked on. He worked ones that you have worked on. He worked ones that you have worked on. He worked at Microsoft. He worked at Meta. He's at Microsoft. He worked at Meta. He's at Microsoft. He worked at Meta. He's the author of several programming books the author of several programming books the author of several programming books and the voice behind the influential and the voice behind the influential and the voice behind the influential blog Fabulous Adventures in Coding, blog Fabulous Adventures in Coding, blog Fabulous Adventures in Coding, which has guided myself and countless which has guided myself and countless which has guided myself and countless other developers through the intricacies other developers through the intricacies other developers through the intricacies of language design and compiler of language design and compiler of language design and compiler construction. Um, you're just a gift and construction. Um, you're just a gift and construction. Um, you're just a gift and you're the gift that keeps on giving.
-
you're the gift that keeps on giving. you're the gift that keeps on giving. And what you're giving us today now is a And what you're giving us today now is a And what you're giving us today now is a new book that is currently being written new book that is currently being written new book that is currently being written called Fabulous Adventures called Fabulous Adventures called Fabulous Adventures in Data Structures and Algorithms. And in Data Structures and Algorithms. And in Data Structures and Algorithms. And it is now seven of 19 chapters it is now seven of 19 chapters it is now seven of 19 chapters available. It's a live book. You're available. It's a live book. You're available. It's a live book. You're writing this right now. You're probably writing this right now. You're probably writing this right now. You're probably writing it today. writing it today. writing it today. >> And I'm on Manning. I've got early >> And I'm on Manning. I've got early >> And I'm on Manning. I've got early access. Folks that are listening can access. Folks that are listening can access. Folks that are listening can click a link in the show notes and get click a link in the show notes and get click a link in the show notes and get access as well. Watching you write the access as well. Watching you write the access as well. Watching you write the book is cool. Chapter 7 just came out book is cool. Chapter 7 just came out book is cool. Chapter 7 just came out today. today. today. >> Yeah, I'm super excited. >> Yeah, I'm super excited. >> Yeah, I'm super excited. >> That's so cool. Why this book? Now we're >> That's so cool. Why this book? Now we're >> That's so cool. Why this book? Now we're at the peak of AI assisted coding. I at the peak of AI assisted coding. I at the peak of AI assisted coding. I thought we don't need to know any of thought we don't need to know any of thought we don't need to know any of this stuff anymore. Well, first of all, this stuff anymore. Well, first of all, this stuff anymore. Well, first of all, Scott, it's a pleasure to talk to you Scott, it's a pleasure to talk to you Scott, it's a pleasure to talk to you and thank you for that very kind and thank you for that very kind and thank you for that very kind introduction. Uh, so why why this book introduction. Uh, so why why this book introduction. Uh, so why why this book now? Why any book now? Uh, is the now? Why any book now? Uh, is the now? Why any book now? Uh, is the question that I had for for my editor. question that I had for for my editor. question that I had for for my editor. The the way this came about was uh I was The the way this came about was uh I was The the way this came about was uh I was uh I was editing a book on uh better uh I was editing a book on uh better uh I was editing a book on uh better blog writing, better short form writing blog writing, better short form writing blog writing, better short form writing for developers, which is a topic that uh for developers, which is a topic that uh for developers, which is a topic that uh I am very passionate about. Uh and that I am very passionate about. Uh and that I am very passionate about. Uh and that I believe you wrote the afterward to I believe you wrote the afterward to I believe you wrote the afterward to that book.
-
that book. that book. >> I did. >> I did. >> I did. >> Yeah. Um, and after we got that book put >> Yeah. Um, and after we got that book put >> Yeah. Um, and after we got that book put to bed and it was ready to to go to to bed and it was ready to to go to to bed and it was ready to to go to print, the uh the editor asked me, "Oh, print, the uh the editor asked me, "Oh, print, the uh the editor asked me, "Oh, are there any books uh on uh on are there any books uh on uh on are there any books uh on uh on Microsoft development that you think we Microsoft development that you think we Microsoft development that you think we ought to write?" And I was like, "Well, ought to write?" And I was like, "Well, ought to write?" And I was like, "Well, I have been out of the Microsoft I have been out of the Microsoft I have been out of the Microsoft ecosystem for several years now. So, I'm ecosystem for several years now. So, I'm ecosystem for several years now. So, I'm not really sure what's the the current not really sure what's the the current not really sure what's the the current hotness there, but you know, if I was to hotness there, but you know, if I was to hotness there, but you know, if I was to write another book, you know what I write another book, you know what I write another book, you know what I would write? I would write a book that would write? I would write a book that would write? I would write a book that was like all of the weird stuff that you was like all of the weird stuff that you was like all of the weird stuff that you don't learn in school that I encountered don't learn in school that I encountered don't learn in school that I encountered during my career of building developer during my career of building developer during my career of building developer tools. Uh that involved reading a lot of tools. Uh that involved reading a lot of tools. Uh that involved reading a lot of papers and digesting them and then papers and digesting them and then papers and digesting them and then turning them into actual working turning them into actual working turning them into actual working production code. Uh and the editor uh production code. Uh and the editor uh production code. Uh and the editor uh Jonathan uh said to me that the title Jonathan uh said to me that the title Jonathan uh said to me that the title maybe needs work, but could you uh could maybe needs work, but could you uh could maybe needs work, but could you uh could you write me a a proposal for this book?
-
you write me a a proposal for this book? you write me a a proposal for this book? And so I wrote a proposal for the book And so I wrote a proposal for the book And so I wrote a proposal for the book and he showed it to a bunch of people and he showed it to a bunch of people and he showed it to a bunch of people who I thought were my friends. Uh and who I thought were my friends. Uh and who I thought were my friends. Uh and they all told him that he should they all told him that he should they all told him that he should convince me to actually write the book convince me to actually write the book convince me to actually write the book and he convinced me to actually write and he convinced me to actually write and he convinced me to actually write the book. So why why a book now? Why not the book. So why why a book now? Why not the book. So why why a book now? Why not just a blog or a website? I still really just a blog or a website? I still really just a blog or a website? I still really strongly believe uh in the learning strongly believe uh in the learning strongly believe uh in the learning style of reading words on paper uh or style of reading words on paper uh or style of reading words on paper uh or reading words uh in a long form uh in reading words uh in a long form uh in reading words uh in a long form uh in like long form electronic form. like long form electronic form. like long form electronic form. I think that's a really powerful way to I think that's a really powerful way to I think that's a really powerful way to learn. There's a lot of ways to learn. I learn. There's a lot of ways to learn. I learn. There's a lot of ways to learn. I learn a lot from videos. I learn a lot learn a lot from videos. I learn a lot learn a lot from videos. I learn a lot from podcasts. But when I really want to from podcasts. But when I really want to from podcasts. But when I really want to grasp a topic, I get the papers on it grasp a topic, I get the papers on it grasp a topic, I get the papers on it and I just go through and I print them and I just go through and I print them and I just go through and I print them out on actual paper and I mark them up out on actual paper and I mark them up out on actual paper and I mark them up uh like like a caveman. Um and so then uh like like a caveman. Um and so then uh like like a caveman. Um and so then why why this book at this time now when why why this book at this time now when why why this book at this time now when we've got AI coding and vibe coding? Uh we've got AI coding and vibe coding? Uh we've got AI coding and vibe coding? Uh and the answer to that is don't and the answer to that is don't and the answer to that is don't outsource the problem solving. The outsource the problem solving. The outsource the problem solving. The problem solving is it the problem problem solving is it the problem problem solving is it the problem solving is the thing. If you are solving is the thing. If you are solving is the thing. If you are outsourcing the problem solving part, outsourcing the problem solving part, outsourcing the problem solving part, the the the turning it into syntax, the the the turning it into syntax, the the the turning it into syntax, that's that's fine, right? Outsource that's that's fine, right? Outsource that's that's fine, right? Outsource that all you want. Use all the tools you that all you want. Use all the tools you that all you want. Use all the tools you want for that. But the having a clarity want for that. But the having a clarity want for that. But the having a clarity of thought and being able to relate a uh of thought and being able to relate a uh of thought and being able to relate a uh a problem that you have in a realw world a problem that you have in a realw world a problem that you have in a realw world uh industrial setting, a a real world
-
uh industrial setting, a a real world uh industrial setting, a a real world business case setting and then turn that business case setting and then turn that business case setting and then turn that have a thought about how you should have a thought about how you should have a thought about how you should solve that problem and then turn that solve that problem and then turn that solve that problem and then turn that thought into real working code that thought into real working code that thought into real working code that makes a machine do what you want. That's makes a machine do what you want. That's makes a machine do what you want. That's that's the whole game for me. And that's the whole game for me. And that's the whole game for me. And building tools to help people do that building tools to help people do that building tools to help people do that better, to help translate their thoughts better, to help translate their thoughts better, to help translate their thoughts into reality. That's what coding is all into reality. That's what coding is all into reality. That's what coding is all about and that's what this book is all about and that's what this book is all about and that's what this book is all about and it's about having fun along about and it's about having fun along about and it's about having fun along the way the way the way >> and it doesn't I will say it doesn't shy >> and it doesn't I will say it doesn't shy >> and it doesn't I will say it doesn't shy away from from I wouldn't say difficulty away from from I wouldn't say difficulty away from from I wouldn't say difficulty but like I not even esoterica like I but like I not even esoterica like I but like I not even esoterica like I just want to give a people a sense of just want to give a people a sense of just want to give a people a sense of this book because honestly like I know this book because honestly like I know this book because honestly like I know that's named after your blogs it's that's named after your blogs it's that's named after your blogs it's fabulous adventures and coding is your fabulous adventures and coding is your fabulous adventures and coding is your blog fabulous adventures in data blog fabulous adventures in data blog fabulous adventures in data structures and algorithm is the book and structures and algorithm is the book and structures and algorithm is the book and you start with starting a fabulous you start with starting a fabulous you start with starting a fabulous adventure but then like part one section adventure but then like part one section adventure but then like part one section four memoizing immutable quad trees to four memoizing immutable quad trees to four memoizing immutable quad trees to make a better life. Like you didn't make a better life. Like you didn't make a better life. Like you didn't start with Hello World. start with Hello World. start with Hello World. >> I did not start with Hello World. No, >> I did not start with Hello World. No, >> I did not start with Hello World. No, the the book is organized into into the the book is organized into into the the book is organized into into three major sections. Uh and as you three major sections. Uh and as you three major sections. Uh and as you pointed out, the the first uh of those pointed out, the the first uh of those pointed out, the the first uh of those sections is uh is available on the on sections is uh is available on the on sections is uh is available on the on the internet. And the way the way that the internet. And the way the way that the internet. And the way the way that works is essentially you pay for the works is essentially you pay for the works is essentially you pay for the book now, you get early access to it.
-
book now, you get early access to it. book now, you get early access to it. >> Uh as I write more chapters, they show >> Uh as I write more chapters, they show >> Uh as I write more chapters, they show up on the website and then you get a up on the website and then you get a up on the website and then you get a copy of the book at the end. copy of the book at the end. copy of the book at the end. >> Yeah. Pretty cool. >> Yeah. Pretty cool. >> Yeah. Pretty cool. >> Yeah. So the the first third of the book >> Yeah. So the the first third of the book >> Yeah. So the the first third of the book is looking at traditional topics um is looking at traditional topics um is looking at traditional topics um lists and cues and stacks and lists and cues and stacks and lists and cues and stacks and combinatoric algorithms and trees and combinatoric algorithms and trees and combinatoric algorithms and trees and quad trees and things things like that quad trees and things things like that quad trees and things things like that but all with kind of a weird twist on but all with kind of a weird twist on but all with kind of a weird twist on them. them. them. um not the kind of stuff that you would um not the kind of stuff that you would um not the kind of stuff that you would see in a typical data structures and see in a typical data structures and see in a typical data structures and algorithms course in a in an algorithms course in a in an algorithms course in a in an undergraduate curriculum for example undergraduate curriculum for example undergraduate curriculum for example stuff that I encountered during my stuff that I encountered during my stuff that I encountered during my career that I thought was unusual and career that I thought was unusual and career that I thought was unusual and stuff that made me change the way I stuff that made me change the way I stuff that made me change the way I think about programming. Then the second think about programming. Then the second think about programming. Then the second third of the book uh is going to be uh third of the book uh is going to be uh third of the book uh is going to be uh some more esoteric algorithms that I some more esoteric algorithms that I some more esoteric algorithms that I encountered when I was developing encountered when I was developing encountered when I was developing developer tools uh over my career. developer tools uh over my career. developer tools uh over my career. Things like uh unification and Things like uh unification and Things like uh unification and anti-unification.
-
anti-unification. anti-unification. Uh and then the last third of the book Uh and then the last third of the book Uh and then the last third of the book is going to be algorithms and data is going to be algorithms and data is going to be algorithms and data structures that I learned about when I structures that I learned about when I structures that I learned about when I was doing stochastic programming uh at was doing stochastic programming uh at was doing stochastic programming uh at Facebook. Uh so dealing with uh random Facebook. Uh so dealing with uh random Facebook. Uh so dealing with uh random quantities. How are random quantities quantities. How are random quantities quantities. How are random quantities related to other data types that you are related to other data types that you are related to other data types that you are uh very familiar with like sequences or uh very familiar with like sequences or uh very familiar with like sequences or tasks or nullables, right? There's a tasks or nullables, right? There's a tasks or nullables, right? There's a there's an underlying structure to all there's an underlying structure to all there's an underlying structure to all of those data types and I'm going to of those data types and I'm going to of those data types and I'm going to have little explorations along the way have little explorations along the way have little explorations along the way of what that uh what that structure is. of what that uh what that structure is. of what that uh what that structure is. Yeah, I think I want to understand Yeah, I think I want to understand Yeah, I think I want to understand we're let me this is a tough one. We're we're let me this is a tough one. We're we're let me this is a tough one. We're in a weird time right now where we spent in a weird time right now where we spent in a weird time right now where we spent the last 10 years, 15 years really the last 10 years, 15 years really the last 10 years, 15 years really encouraging everyone to learn how to encouraging everyone to learn how to encouraging everyone to learn how to code [snorts] code [snorts] code [snorts] >> and there's a lot of different kinds of >> and there's a lot of different kinds of >> and there's a lot of different kinds of programmers out there. There's a lot of programmers out there. There's a lot of programmers out there. There's a lot of different kinds of but we all just say different kinds of but we all just say different kinds of but we all just say programmer, coder, engineer, you know. programmer, coder, engineer, you know. programmer, coder, engineer, you know. Well, uh, and and it's not a formal Well, uh, and and it's not a formal Well, uh, and and it's not a formal thing. Like there's there's no it's not thing. Like there's there's no it's not thing. Like there's there's no it's not like you go to the the medical board and like you go to the the medical board and like you go to the the medical board and you get like board certified. You're not you get like board certified. You're not you get like board certified. You're not a board certified programmer, but like a board certified programmer, but like a board certified programmer, but like someone might get a masters from someone might get a masters from someone might get a masters from Carnegie Melon and then someone might Carnegie Melon and then someone might Carnegie Melon and then someone might have a software engineering degree from have a software engineering degree from have a software engineering degree from Portland Community College just like me Portland Community College just like me Portland Community College just like me >> and we're all kind of like peers, but >> and we're all kind of like peers, but >> and we're all kind of like peers, but someone might be listening and you just someone might be listening and you just someone might be listening and you just said, "Yeah, when I was doing said, "Yeah, when I was doing said, "Yeah, when I was doing stochcastic programming and they might stochcastic programming and they might stochcastic programming and they might be doing text boxes over data with be doing text boxes over data with be doing text boxes over data with React."
-
React." React." >> Sure. Those are different kinds of >> Sure. Those are different kinds of >> Sure. Those are different kinds of programmers. programmers. programmers. What kind of programmer is this book What kind of programmer is this book What kind of programmer is this book for? Is it for anyone who wants to fill for? Is it for anyone who wants to fill for? Is it for anyone who wants to fill in the gaps? They might just be doing in the gaps? They might just be doing in the gaps? They might just be doing text boxes over data or they might be text boxes over data or they might be text boxes over data or they might be doing really really deep interesting doing really really deep interesting doing really really deep interesting systems work on the back end of systems work on the back end of systems work on the back end of something, but we're all just kind of something, but we're all just kind of something, but we're all just kind of coders in the end. coders in the end. coders in the end. >> Well, that's a really good point that >> Well, that's a really good point that >> Well, that's a really good point that there we are all really just coders. there we are all really just coders. there we are all really just coders. Like that's that's what we do. we sit Like that's that's what we do. we sit Like that's that's what we do. we sit down in front of this box and we we down in front of this box and we we down in front of this box and we we issue commands and then those commands issue commands and then those commands issue commands and then those commands turn into uh into a real working thing. turn into uh into a real working thing. turn into uh into a real working thing. Uh and that's that's a that's a bit Uh and that's that's a that's a bit Uh and that's that's a that's a bit magical and it's it's nice that there is magical and it's it's nice that there is magical and it's it's nice that there is not a a governing body that is not a a governing body that is not a a governing body that is gatekeeping that coding should be gatekeeping that coding should be gatekeeping that coding should be accessible to to everybody. I started accessible to to everybody. I started accessible to to everybody. I started programming on the Commodore PET in my programming on the Commodore PET in my programming on the Commodore PET in my elementary school library. No, nobody elementary school library. No, nobody elementary school library. No, nobody stopped me from doing that. People stopped me from doing that. People stopped me from doing that. People encouraged me to do that and that's why encouraged me to do that and that's why encouraged me to do that and that's why I'm here today. And I I know you have a I'm here today. And I I know you have a I'm here today. And I I know you have a you have a similar story.
-
you have a similar story. you have a similar story. >> Uh so what kind of coder is this book >> Uh so what kind of coder is this book >> Uh so what kind of coder is this book for? This book is for curious coders. for? This book is for curious coders. for? This book is for curious coders. This book is for people who uh are This book is for people who uh are This book is for people who uh are coders, right? It's not a it's not a coders, right? It's not a it's not a coders, right? It's not a it's not a tutorial as you as you point out. It it tutorial as you as you point out. It it tutorial as you as you point out. It it starts fairly hard, but it is for people starts fairly hard, but it is for people starts fairly hard, but it is for people who have maybe wondered who have maybe wondered who have maybe wondered what is the the mathematics that that what is the the mathematics that that what is the the mathematics that that underlies these systems that we see like underlies these systems that we see like underlies these systems that we see like why do why do so many languages have why do why do so many languages have why do why do so many languages have tpples? Uh why do so many languages have tpples? Uh why do so many languages have tpples? Uh why do so many languages have sequences? Is there a relationship sequences? Is there a relationship sequences? Is there a relationship between uh a device that produces a a between uh a device that produces a a between uh a device that produces a a bunch of a bunch of numbers uh and a bunch of a bunch of numbers uh and a bunch of a bunch of numbers uh and a device that consumes a bunch of numbers? device that consumes a bunch of numbers? device that consumes a bunch of numbers? Is there what are what are all the what Is there what are what are all the what Is there what are what are all the what are the underlying structural are the underlying structural are the underlying structural similarities? Um and also just what's similarities? Um and also just what's similarities? Um and also just what's the what's the weird cool stuff? Uh I the what's the weird cool stuff? Uh I the what's the weird cool stuff? Uh I just wrote a chapter on uh you know how just wrote a chapter on uh you know how just wrote a chapter on uh you know how you're using your IDE and you hit the you're using your IDE and you hit the you're using your IDE and you hit the format button and it automatically format button and it automatically format button and it automatically formats your code to be pretty.
-
formats your code to be pretty. formats your code to be pretty. >> How does that work? Uh there was a day >> How does that work? Uh there was a day >> How does that work? Uh there was a day when I didn't know how that worked. It when I didn't know how that worked. It when I didn't know how that worked. It was just magic. And then I had to was just magic. And then I had to was just magic. And then I had to actually write a code formatter and I actually write a code formatter and I actually write a code formatter and I did a little bit of research into how did a little bit of research into how did a little bit of research into how code for formatterers work and it's code for formatterers work and it's code for formatterers work and it's really cool. There's a lot of very uh really cool. There's a lot of very uh really cool. There's a lot of very uh simple uh logic that can be combined simple uh logic that can be combined simple uh logic that can be combined together in complex ways to capture the together in complex ways to capture the together in complex ways to capture the notion of what is prettiness for code notion of what is prettiness for code notion of what is prettiness for code formatting. Uh and if you if you get the formatting. Uh and if you if you get the formatting. Uh and if you if you get the uh if you get the API right then it uh if you get the API right then it uh if you get the API right then it becomes very natural to write a little becomes very natural to write a little becomes very natural to write a little program that says okay well try it this program that says okay well try it this program that says okay well try it this way and see if that's pretty. Oh no, try way and see if that's pretty. Oh no, try way and see if that's pretty. Oh no, try it that way and see if that's pretty. it that way and see if that's pretty. it that way and see if that's pretty. And it's it's a really really neat And it's it's a really really neat And it's it's a really really neat algorithm. I I had a lot of fun when I algorithm. I I had a lot of fun when I algorithm. I I had a lot of fun when I learned about it and I figured other learned about it and I figured other learned about it and I figured other people would too. So yeah, that's really people would too. So yeah, that's really people would too. So yeah, that's really what it's for. It's it's for the what it's for. It's it's for the what it's for. It's it's for the curious. curious. curious. >> Now pro I love that by the way. Like cur >> Now pro I love that by the way. Like cur >> Now pro I love that by the way. Like cur cur like if you're there was a lot of cur like if you're there was a lot of cur like if you're there was a lot of time in the last couple of years on time in the last couple of years on time in the last couple of years on social while everyone was like, you social while everyone was like, you social while everyone was like, you know, talking about hustle culture and know, talking about hustle culture and know, talking about hustle culture and like if you're not programming after like if you're not programming after like if you're not programming after 5:00 p.m. or whatever. It's not about 5:00 p.m. or whatever. It's not about 5:00 p.m. or whatever. It's not about that level of interest in the in the in that level of interest in the in the in that level of interest in the in the in the craft. It's just about curiosity.
-
the craft. It's just about curiosity. the craft. It's just about curiosity. It's about like huh how does that work? It's about like huh how does that work? It's about like huh how does that work? Like I was at McDonald's recently and Like I was at McDonald's recently and Like I was at McDonald's recently and they've got like they got those giant they've got like they got those giant they've got like they got those giant iPads and uh you know I'm like, "Huh, iPads and uh you know I'm like, "Huh, iPads and uh you know I'm like, "Huh, wonder who wrote that. Wonder how that wonder who wrote that. Wonder how that wonder who wrote that. Wonder how that works. What's the back end look like?" works. What's the back end look like?" works. What's the back end look like?" You know, and then I'm adjusting the You know, and then I'm adjusting the You know, and then I'm adjusting the heat on my um uh my my thermostat and heat on my um uh my my thermostat and heat on my um uh my my thermostat and I'm like, "I wonder who wrote that. I I'm like, "I wonder who wrote that. I I'm like, "I wonder who wrote that. I wonder how that works. Is it what what's wonder how that works. Is it what what's wonder how that works. Is it what what's the back end for that?" You know, is the back end for that?" You know, is the back end for that?" You know, is this running like an embedded system? Is this running like an embedded system? Is this running like an embedded system? Is this running Linux? Like is this this running Linux? Like is this this running Linux? Like is this Raspberry Pi? And then next thing you Raspberry Pi? And then next thing you Raspberry Pi? And then next thing you know, you've ripped your uh thermostat know, you've ripped your uh thermostat know, you've ripped your uh thermostat off the wall and you're like trying to off the wall and you're like trying to off the wall and you're like trying to figure out what's going on. Yeah, figure out what's going on. Yeah, figure out what's going on. Yeah, >> that that level of curiosity. I don't >> that that level of curiosity. I don't >> that that level of curiosity. I don't know how to not have that. know how to not have that. know how to not have that. >> I don't know how to not think to myself >> I don't know how to not think to myself >> I don't know how to not think to myself like why is that airport running a text like why is that airport running a text like why is that airport running a text UI and not a good like you know who can UI and not a good like you know who can UI and not a good like you know who can I talk to? And the next thing you know I talk to? And the next thing you know I talk to? And the next thing you know they're on my podcast, you know that they're on my podcast, you know that they're on my podcast, you know that that kind of stuff. I I often think that kind of stuff. I I often think that kind of stuff. I I often think about uh an interview that I I ran at about uh an interview that I I ran at about uh an interview that I I ran at Microsoft many many many years ago uh Microsoft many many many years ago uh Microsoft many many many years ago uh where I posed a technical problem and where I posed a technical problem and where I posed a technical problem and the problem involved generating a unique the problem involved generating a unique the problem involved generating a unique integer and the developer that I was integer and the developer that I was integer and the developer that I was interviewing was a database developer interviewing was a database developer interviewing was a database developer and he said oh well I would just create and he said oh well I would just create and he said oh well I would just create a table and then I would mark one of the a table and then I would mark one of the a table and then I would mark one of the columns as having a unique identifier columns as having a unique identifier columns as having a unique identifier and I said okay suppose I'm hiring you and I said okay suppose I'm hiring you and I said okay suppose I'm hiring you for the database team and the database for the database team and the database for the database team and the database doesn't have that feature at what would doesn't have that feature at what would doesn't have that feature at what would you do? And he got the strangest look on you do? And he got the strangest look on you do? And he got the strangest look on his face and he he said, "I never his face and he he said, "I never his face and he he said, "I never thought about the fact that somebody had thought about the fact that somebody had thought about the fact that somebody had to write that code. It didn't just come to write that code. It didn't just come to write that code. It didn't just come into [snorts] existence on its own." I
-
into [snorts] existence on its own." I into [snorts] existence on its own." I was like, "Yeah, and you can be that was like, "Yeah, and you can be that was like, "Yeah, and you can be that guy." guy." guy." >> Yeah, that kind of stuff is so fun and >> Yeah, that kind of stuff is so fun and >> Yeah, that kind of stuff is so fun and so interesting. So, I want to go back to so interesting. So, I want to go back to so interesting. So, I want to go back to the stochastic programming idea. This the stochastic programming idea. This the stochastic programming idea. This idea, this is interesting to me because idea, this is interesting to me because idea, this is interesting to me because in a time of of of AI in a time of of of AI in a time of of of AI >> Mhm. where AI is really just a branding >> Mhm. where AI is really just a branding >> Mhm. where AI is really just a branding term on top of like 50 years of machine term on top of like 50 years of machine term on top of like 50 years of machine learning and statistics and math. And I learning and statistics and math. And I learning and statistics and math. And I think people don't realize that because think people don't realize that because think people don't realize that because they feel like AI just happened last they feel like AI just happened last they feel like AI just happened last year or whatever like chatbt just popped year or whatever like chatbt just popped year or whatever like chatbt just popped into existence a couple of into existence a couple of into existence a couple of >> couple of years ago. But typically it's >> couple of years ago. But typically it's >> couple of years ago. But typically it's data in and reliably deterministic data data in and reliably deterministic data data in and reliably deterministic data out and it's always been that way. And out and it's always been that way. And out and it's always been that way. And now we're in this place where we have now we're in this place where we have now we're in this place where we have uncertainty. uncertainty. uncertainty. >> Mhm. Uh, and it's like a deterministic >> Mhm. Uh, and it's like a deterministic >> Mhm. Uh, and it's like a deterministic program would say, you know, if I need a program would say, you know, if I need a program would say, you know, if I need a 100 units of this widget, order 100 100 units of this widget, order 100 100 units of this widget, order 100 units. But a stochcastic program might units. But a stochcastic program might units. But a stochcastic program might be like, uh, we could need 80, we might be like, uh, we could need 80, we might be like, uh, we could need 80, we might need 120. Like, I don't know what's the need 120. Like, I don't know what's the need 120. Like, I don't know what's the way to minimize my expected cost on the way to minimize my expected cost on the way to minimize my expected cost on the number of units. It's optimizing on number of units. It's optimizing on number of units. It's optimizing on averages and stuff like that because averages and stuff like that because averages and stuff like that because it's squishy.
-
it's squishy. it's squishy. >> Yes, that's that's a a great point. So, >> Yes, that's that's a a great point. So, >> Yes, that's that's a a great point. So, let me let me talk a little bit about let me let me talk a little bit about let me let me talk a little bit about what I mean by stochastic programming. what I mean by stochastic programming. what I mean by stochastic programming. But first, let me address your point But first, let me address your point But first, let me address your point about branding. There's a joke. I don't about branding. There's a joke. I don't about branding. There's a joke. I don't know who said it first, know who said it first, know who said it first, >> but it the the joke is that we tell the >> but it the the joke is that we tell the >> but it the the joke is that we tell the public that it's artificial public that it's artificial public that it's artificial intelligence. We tell the developers or intelligence. We tell the developers or intelligence. We tell the developers or we tell the investors that it's machine we tell the investors that it's machine we tell the investors that it's machine learning. We tell the developers that learning. We tell the developers that learning. We tell the developers that it's stochastic programming and it's it's stochastic programming and it's it's stochastic programming and it's actually linear interpolation. actually linear interpolation. actually linear interpolation. >> That's a that's a pretty specific joke >> That's a that's a pretty specific joke >> That's a that's a pretty specific joke for a pretty specific audience. I can for a pretty specific audience. I can for a pretty specific audience. I can hear one of our our listeners has just hear one of our our listeners has just hear one of our our listeners has just chuckled. [laughter] chuckled. [laughter] chuckled. [laughter] But that's it's the joke is not too far But that's it's the joke is not too far But that's it's the joke is not too far from the truth. There really isn't. from the truth. There really isn't. from the truth. There really isn't. There's nothing intelligent about There's nothing intelligent about There's nothing intelligent about artificial intelligence. artificial intelligence. artificial intelligence. >> Well, actually, that's not true. There >> Well, actually, that's not true. There >> Well, actually, that's not true. There is plenty that's intelligent about it. is plenty that's intelligent about it. is plenty that's intelligent about it. >> It's behind it. It's the people that >> It's behind it. It's the people that >> It's behind it. It's the people that made it. It's the people behind it. made it. It's the people behind it. made it. It's the people behind it. Exactly. It's the It's the people coming Exactly. It's the It's the people coming Exactly. It's the It's the people coming up with the algorithms. It's the vast up with the algorithms. It's the vast up with the algorithms. It's the vast army of underpaid people in third world army of underpaid people in third world army of underpaid people in third world countries that are running mechanical countries that are running mechanical countries that are running mechanical Turks behind the scenes and uh and uh Turks behind the scenes and uh and uh Turks behind the scenes and uh and uh training up the training up the training up the >> um Thank you for acknowledging that >> um Thank you for acknowledging that >> um Thank you for acknowledging that >> and and all of that. But yes, let me let >> and and all of that. But yes, let me let >> and and all of that. But yes, let me let me talk a bit about what I mean by me talk a bit about what I mean by me talk a bit about what I mean by stochastic programming. And I can I can stochastic programming. And I can I can stochastic programming. And I can I can give you uh I can give you an example.
-
give you uh I can give you an example. give you uh I can give you an example. Um I'll I'll start with a a very Um I'll I'll start with a a very Um I'll I'll start with a a very abstract example. And that is you've got abstract example. And that is you've got abstract example. And that is you've got a a bag of a thousand coins. a a bag of a thousand coins. a a bag of a thousand coins. 999 of them are perfectly normal 50% 999 of them are perfectly normal 50% 999 of them are perfectly normal 50% heads, 50% tail coins. One of them is a heads, 50% tail coins. One of them is a heads, 50% tail coins. One of them is a double-headed coin. You reach into the double-headed coin. You reach into the double-headed coin. You reach into the bag. You don't look at the coin. You bag. You don't look at the coin. You bag. You don't look at the coin. You flip it 10 times. It comes up heads 10 flip it 10 times. It comes up heads 10 flip it 10 times. It comes up heads 10 times. Now, the question is, what is times. Now, the question is, what is times. Now, the question is, what is your belief about the question? Do I your belief about the question? Do I your belief about the question? Do I have the double-headed coin or not? have the double-headed coin or not? have the double-headed coin or not? >> Oh, man. >> Oh, man. >> Oh, man. >> Because on the one hand, there's only >> Because on the one hand, there's only >> Because on the one hand, there's only one double-headed coin. You had a one in one double-headed coin. You had a one in one double-headed coin. You had a one in a thousand chance. a thousand chance. a thousand chance. >> Sure. But there's also a nonzero >> Sure. But there's also a nonzero >> Sure. But there's also a nonzero scenario that I just got lucky 10 times, scenario that I just got lucky 10 times, scenario that I just got lucky 10 times, and I still don't know. flipping a coin and I still don't know. flipping a coin and I still don't know. flipping a coin 10 times in a row and having it come up 10 times in a row and having it come up 10 times in a row and having it come up heads happens one in every 1,024 times. heads happens one in every 1,024 times. heads happens one in every 1,024 times. >> So since those two ratios one in a >> So since those two ratios one in a >> So since those two ratios one in a th00and and one in a,024 are almost th00and and one in a,024 are almost th00and and one in a,024 are almost equal, it's about a 50/50 chance that equal, it's about a 50/50 chance that equal, it's about a 50/50 chance that you have the double-headed coin, which you have the double-headed coin, which you have the double-headed coin, which is a lot better knowledge than the one is a lot better knowledge than the one is a lot better knowledge than the one in a,000 chance that you had before you in a,000 chance that you had before you in a,000 chance that you had before you observed those coin flips. Okay, so observed those coin flips. Okay, so observed those coin flips. Okay, so that's pretty straightforward basian that's pretty straightforward basian that's pretty straightforward basian mathematics. The question is why do we mathematics. The question is why do we mathematics. The question is why do we care? as you know professional line of care? as you know professional line of care? as you know professional line of business developers. And the answer is business developers. And the answer is business developers. And the answer is what we're actually observing is what we're actually observing is what we're actually observing is somebody has just joined your social somebody has just joined your social somebody has just joined your social network. There is a one in a,000 chance network. There is a one in a,000 chance network. There is a one in a,000 chance that they're a real person and there's a that they're a real person and there's a that they're a real person and there's a 999 in a,000 chance that they're a bot.
-
999 in a,000 chance that they're a bot. 999 in a,000 chance that they're a bot. And then they make behaviors that are And then they make behaviors that are And then they make behaviors that are consistent with being a real person. consistent with being a real person. consistent with being a real person. And so how do you update your prior And so how do you update your prior And so how do you update your prior belief that there's a one in a thousand belief that there's a one in a thousand belief that there's a one in a thousand chance that there's that they're a real chance that there's that they're a real chance that there's that they're a real person to having a one in two belief person to having a one in two belief person to having a one in two belief that they are a real person. In in that that they are a real person. In in that that they are a real person. In in that example, the math is pretty example, the math is pretty example, the math is pretty straightforward. But when you start straightforward. But when you start straightforward. But when you start adding in all of the other statistical adding in all of the other statistical adding in all of the other statistical quantities, it it becomes quite a quite quantities, it it becomes quite a quite quantities, it it becomes quite a quite a tricky problem to solve these sorts of a tricky problem to solve these sorts of a tricky problem to solve these sorts of things in in the real world. Uh and so things in in the real world. Uh and so things in in the real world. Uh and so that's what my work was at uh at that's what my work was at uh at that's what my work was at uh at Facebook. Facebook. Facebook. was helping data scientists build was helping data scientists build was helping data scientists build language tools that allowed them to language tools that allowed them to language tools that allowed them to represent stochastic quantities in a represent stochastic quantities in a represent stochastic quantities in a very clean, understandable way. very clean, understandable way. very clean, understandable way. Manipulate those stoastic quantities Manipulate those stoastic quantities Manipulate those stoastic quantities using the ordinary arithmetic of a using the ordinary arithmetic of a using the ordinary arithmetic of a programming language. feed into the programming language. feed into the programming language. feed into the system a bunch of observations of system a bunch of observations of system a bunch of observations of reality, billions of observations of reality, billions of observations of reality, billions of observations of reality, and then have a quantity come reality, and then have a quantity come reality, and then have a quantity come out the other end. That is uh in this out the other end. That is uh in this out the other end. That is uh in this principled way, what is the update to principled way, what is the update to principled way, what is the update to our belief about whatever it is that we our belief about whatever it is that we our belief about whatever it is that we have under question? Is this user a real have under question? Is this user a real have under question? Is this user a real person? Is this router the broken router person? Is this router the broken router person? Is this router the broken router in the data center, etc. What whatever in the data center, etc. What whatever in the data center, etc. What whatever whatever the problem was. uh is this uh whatever the problem was. uh is this uh whatever the problem was. uh is this uh content reviewer uh doing a good job of content reviewer uh doing a good job of content reviewer uh doing a good job of classifying content as uh as spam or ham classifying content as uh as spam or ham classifying content as uh as spam or ham etc etc. Uh so all of these kinds of
-
etc etc. Uh so all of these kinds of etc etc. Uh so all of these kinds of questions where there is some questions where there is some questions where there is some uncertainty but we have a statistical uncertainty but we have a statistical uncertainty but we have a statistical model that we believe matches reality model that we believe matches reality model that we believe matches reality and we have some observations of and we have some observations of and we have some observations of reality. How do we get a good update on reality. How do we get a good update on reality. How do we get a good update on our priors? So that that was the problem our priors? So that that was the problem our priors? So that that was the problem that I was working on with uh with that I was working on with uh with that I was working on with uh with stochastic programming. We're not going stochastic programming. We're not going stochastic programming. We're not going to go uh all the way to that level of to go uh all the way to that level of to go uh all the way to that level of detail in the book, but I'm going to go detail in the book, but I'm going to go detail in the book, but I'm going to go through the basics of how do we through the basics of how do we through the basics of how do we represent statistical quantities, how do represent statistical quantities, how do represent statistical quantities, how do we compute probabilities, how do we we compute probabilities, how do we we compute probabilities, how do we combine those together, how do we apply combine those together, how do we apply combine those together, how do we apply basian logic to them and and so on. basian logic to them and and so on. basian logic to them and and so on. >> I got to ask >> I got to ask >> I got to ask >> we you know like I remember the during >> we you know like I remember the during >> we you know like I remember the during the spam wars and by the spam wars I the spam wars and by the spam wars I the spam wars and by the spam wars I mean like the email spam wars. mean like the email spam wars. mean like the email spam wars. >> Yeah. >> Yeah. >> Yeah. >> I largely don't get spam. I get unwanted >> I largely don't get spam. I get unwanted >> I largely don't get spam. I get unwanted PR pitches and I get random newsletters. PR pitches and I get random newsletters. PR pitches and I get random newsletters. But as a general rule, But as a general rule, But as a general rule, >> the spam problem in email, at least for >> the spam problem in email, at least for >> the spam problem in email, at least for Gmail users, is pretty much like solved. Gmail users, is pretty much like solved. Gmail users, is pretty much like solved. One or two spams a week. One or two spams a week. One or two spams a week. >> Yeah. >> Yeah. >> Yeah. >> But on on Instagram, I'm added to a >> But on on Instagram, I'm added to a >> But on on Instagram, I'm added to a crypto group with random people with crypto group with random people with crypto group with random people with random gooids for names probably 40 random gooids for names probably 40 random gooids for names probably 40 times a week.
-
times a week. times a week. >> Mhm. >> Mhm. >> Mhm. >> And like it's investment groups, you >> And like it's investment groups, you >> And like it's investment groups, you know, all those kind of things. Why is know, all those kind of things. Why is know, all those kind of things. Why is it is is it that am I seeing the 0.01% it is is it that am I seeing the 0.01% it is is it that am I seeing the 0.01% that sneaks through and it's just a that sneaks through and it's just a that sneaks through and it's just a flood and like we have no idea how big flood and like we have no idea how big flood and like we have no idea how big the spam problem is or are they getting the spam problem is or are they getting the spam problem is or are they getting more sophisticated? Because from a human more sophisticated? Because from a human more sophisticated? Because from a human pattern matching perspective, I'm like pattern matching perspective, I'm like pattern matching perspective, I'm like just created the account, you know, just created the account, you know, just created the account, you know, picture Bart Simpson as their name, like picture Bart Simpson as their name, like picture Bart Simpson as their name, like random username. This is obviously a random username. This is obviously a random username. This is obviously a bot. bot. bot. >> Yes. Why is that not solved when smart >> Yes. Why is that not solved when smart >> Yes. Why is that not solved when smart people like you were working on it 10 people like you were working on it 10 people like you were working on it 10 years ago? years ago? years ago? >> Well, okay. So, let me let me >> Well, okay. So, let me let me >> Well, okay. So, let me let me >> with all due respect to all of our >> with all due respect to all of our >> with all due respect to all of our friends that we love and appreciate. friends that we love and appreciate. friends that we love and appreciate. >> Of course. Of course. And let me say >> Of course. Of course. And let me say >> Of course. Of course. And let me say that, you know, I don't work for for that, you know, I don't work for for that, you know, I don't work for for Facebook anymore. Facebook anymore. Facebook anymore. >> Um >> Um >> Um >> uh the reason I don't work for Facebook >> uh the reason I don't work for Facebook >> uh the reason I don't work for Facebook anymore was because the team of people anymore was because the team of people anymore was because the team of people that was doing this research uh and that was doing this research uh and that was doing this research uh and getting good results, all of us were getting good results, all of us were getting good results, all of us were laid off. The entire division was laid off. The entire division was laid off. The entire division was >> Well, that explains why my inbox is >> Well, that explains why my inbox is >> Well, that explains why my inbox is messed. So, uh, number one, it's a hard messed. So, uh, number one, it's a hard messed. So, uh, number one, it's a hard problem.
-
problem. problem. >> Uh, number two, uh, a lot of the people >> Uh, number two, uh, a lot of the people >> Uh, number two, uh, a lot of the people working on that problem were laid off. working on that problem were laid off. working on that problem were laid off. Uh, number three, the attackers are very Uh, number three, the attackers are very Uh, number three, the attackers are very sophisticated. sophisticated. sophisticated. >> Uh, and they're becoming more >> Uh, and they're becoming more >> Uh, and they're becoming more sophisticated. And number four, I think sophisticated. And number four, I think sophisticated. And number four, I think it's pretty clear from their actions it's pretty clear from their actions it's pretty clear from their actions that the people who run social media that the people who run social media that the people who run social media sites no longer particularly care about sites no longer particularly care about sites no longer particularly care about the user protection problem. the user protection problem. the user protection problem. >> Okay. So, this is less about math. It's >> Okay. So, this is less about math. It's >> Okay. So, this is less about math. It's more about that it's an ongoing battle more about that it's an ongoing battle more about that it's an ongoing battle and they just kind of stop fighting it and they just kind of stop fighting it and they just kind of stop fighting it actively. actively. actively. >> Yes. Now there there certainly is uh a >> Yes. Now there there certainly is uh a >> Yes. Now there there certainly is uh a large amount of math and and that is large amount of math and and that is large amount of math and and that is when I say that 999 when I say that 999 when I say that 999 uh new accounts out of a thousand are uh uh new accounts out of a thousand are uh uh new accounts out of a thousand are uh are bots. That's that's a little bit are bots. That's that's a little bit are bots. That's that's a little bit high but it's not far off the mark. high but it's not far off the mark. high but it's not far off the mark. There are uh billions and billions and There are uh billions and billions and There are uh billions and billions and billions of bot accounts created and billions of bot accounts created and billions of bot accounts created and deleted every year and by sheer numbers deleted every year and by sheer numbers deleted every year and by sheer numbers some of them are going to overwhelm uh some of them are going to overwhelm uh some of them are going to overwhelm uh your uh your efforts to to detect them.
-
your uh your efforts to to detect them. your uh your efforts to to detect them. Um but yes it it is uh it is to my mind Um but yes it it is uh it is to my mind Um but yes it it is uh it is to my mind a a failure of machine learning and a a failure of machine learning and a a failure of machine learning and there are plenty of other examples of there are plenty of other examples of there are plenty of other examples of failures of machine learning on on failures of machine learning on on failures of machine learning on on social networking. Like you would think social networking. Like you would think social networking. Like you would think that a machine learning algorithm would that a machine learning algorithm would that a machine learning algorithm would have figured out by now that I have have figured out by now that I have have figured out by now that I have blocked every radio station that shows blocked every radio station that shows blocked every radio station that shows up on my timeline in in Facebook. you up on my timeline in in Facebook. you up on my timeline in in Facebook. you know, I just I immediately block them know, I just I immediately block them know, I just I immediately block them because I they're they're all content because I they're they're all content because I they're they're all content farms uh and they're all trying to uh farms uh and they're all trying to uh farms uh and they're all trying to uh gain knowledge of the social network so gain knowledge of the social network so gain knowledge of the social network so that they can better advertise to them, that they can better advertise to them, that they can better advertise to them, better advertise to the people in that better advertise to the people in that better advertise to the people in that in that social network. in that social network. in that social network. Since I've blocked, you know, probably Since I've blocked, you know, probably Since I've blocked, you know, probably more than a thousand of them by now, more than a thousand of them by now, more than a thousand of them by now, you'd think that machine learning would you'd think that machine learning would you'd think that machine learning would have figured that out and stopped have figured that out and stopped have figured that out and stopped showing them to me. uh but it hasn't showing them to me. uh but it hasn't showing them to me. uh but it hasn't because they're optimizing the machine because they're optimizing the machine because they're optimizing the machine learning for for different outcomes than learning for for different outcomes than learning for for different outcomes than uh than my enjoyment. Yeah, that's a uh than my enjoyment. Yeah, that's a uh than my enjoyment. Yeah, that's a great point. It it is challenging to great point. It it is challenging to great point. It it is challenging to also acknowledge that as humans humans also acknowledge that as humans humans also acknowledge that as humans humans make mistakes and humans makes mistakes make mistakes and humans makes mistakes make mistakes and humans makes mistakes every day all day and we and we don't every day all day and we and we don't every day all day and we and we don't write off humans but well maybe we do write off humans but well maybe we do write off humans but well maybe we do but uh a computer makes a mistake once but uh a computer makes a mistake once but uh a computer makes a mistake once and you're like ah it's garbage and you're like ah it's garbage and you're like ah it's garbage >> right like you know I saw a whimo do >> right like you know I saw a whimo do >> right like you know I saw a whimo do something crazy I'm never getting in a something crazy I'm never getting in a something crazy I'm never getting in a whimo whimo whimo >> there's no way >> there's no way >> there's no way >> I remember when I was a a teenager one
-
>> I remember when I was a a teenager one >> I remember when I was a a teenager one of my friends who was also a of my friends who was also a of my friends who was also a computer enthusiast said said to me, computer enthusiast said said to me, computer enthusiast said said to me, he's like, "If we asked a human being he's like, "If we asked a human being he's like, "If we asked a human being to, you know, look up your name in the to, you know, look up your name in the to, you know, look up your name in the phone book and then we got irritated phone book and then we got irritated phone book and then we got irritated because it took them more than 5 because it took them more than 5 because it took them more than 5 seconds, we we would be terrible seconds, we we would be terrible seconds, we we would be terrible people." But we get irritated about people." But we get irritated about people." But we get irritated about computers taking more than 5 seconds to computers taking more than 5 seconds to computers taking more than 5 seconds to do stuff all the time. It's I I think do stuff all the time. It's I I think do stuff all the time. It's I I think it's it's about what bill of goods were it's it's about what bill of goods were it's it's about what bill of goods were we sold, right? We were we were sold uh we sold, right? We were we were sold uh we sold, right? We were we were sold uh that there was going to be a uh a that there was going to be a uh a that there was going to be a uh a technologically sophisticated future. technologically sophisticated future. technologically sophisticated future. And yet the technology seems to be And yet the technology seems to be And yet the technology seems to be getting worse all the time, not better getting worse all the time, not better getting worse all the time, not better in terms of its user experience. in terms of its user experience. in terms of its user experience. >> Yeah. And I think it's two things. It's >> Yeah. And I think it's two things. It's >> Yeah. And I think it's two things. It's of course um for lack of a better word, of course um for lack of a better word, of course um for lack of a better word, capitalism. It's just the reason the capitalism. It's just the reason the capitalism. It's just the reason the business problem is different, right? business problem is different, right? business problem is different, right? like running a social network that is like running a social network that is like running a social network that is loving and userfriendly is not loving and userfriendly is not loving and userfriendly is not compatible with running a business. compatible with running a business. compatible with running a business. >> Mhm. >> Mhm. >> Mhm. >> But it's also that um if you if you make >> But it's also that um if you if you make >> But it's also that um if you if you make a mistake once, the human pattern a mistake once, the human pattern a mistake once, the human pattern matching brain goes, "Oh, this is matching brain goes, "Oh, this is matching brain goes, "Oh, this is garbage." That's 100% of the time it's garbage." That's 100% of the time it's garbage." That's 100% of the time it's wrong. Because 1% wrong means it's wrong wrong. Because 1% wrong means it's wrong wrong. Because 1% wrong means it's wrong for me and not 99 of my friends. And for me and not 99 of my friends. And for me and not 99 of my friends. And that's where you get into anti an that's where you get into anti an that's where you get into anti an aneata, aneata, aneata, >> anecdotes that aren't data. And then, >> anecdotes that aren't data. And then, >> anecdotes that aren't data. And then, you know, someone will say, "Oh, yeah. I you know, someone will say, "Oh, yeah. I you know, someone will say, "Oh, yeah. I say the word paper towel out loud and I say the word paper towel out loud and I say the word paper towel out loud and I get advertisements from Facebook.
-
get advertisements from Facebook. get advertisements from Facebook. They're listening." Like, and I know They're listening." Like, and I know They're listening." Like, and I know they're not listening. they're not listening. they're not listening. >> No, no, they have they have way creepier >> No, no, they have they have way creepier >> No, no, they have they have way creepier methods listening to you to paper towel methods listening to you to paper towel methods listening to you to paper towel brand you use. Yeah. brand you use. Yeah. brand you use. Yeah. >> You know what I mean? Like, it's like it >> You know what I mean? Like, it's like it >> You know what I mean? Like, it's like it happens once though and then you get happens once though and then you get happens once though and then you get into uh confirmation bias. into uh confirmation bias. into uh confirmation bias. >> Yes. Yes. when when in fact there are uh >> Yes. Yes. when when in fact there are uh >> Yes. Yes. when when in fact there are uh there's a lot of stuff going on behind there's a lot of stuff going on behind there's a lot of stuff going on behind the scenes uh including it's not the scenes uh including it's not the scenes uh including it's not listening to to the microphone that's on listening to to the microphone that's on listening to to the microphone that's on your phone. It's it is tracking your your phone. It's it is tracking your your phone. It's it is tracking your location and it's seeing are you in the location and it's seeing are you in the location and it's seeing are you in the same house as another Facebook user or same house as another Facebook user or same house as another Facebook user or another social media user and what paper another social media user and what paper another social media user and what paper towels do you know that they bought? towels do you know that they bought? towels do you know that they bought? >> Yeah. All kinds of stuff like that. >> Yeah. All kinds of stuff like that. >> Yeah. All kinds of stuff like that. [snorts] [snorts] [snorts] All of this stuff comes back into All of this stuff comes back into All of this stuff comes back into problems. And one of the things that I problems. And one of the things that I problems. And one of the things that I like about your book is that your like about your book is that your like about your book is that your problems are not problems are not problems are not business problems. You're not solving so business problems. You're not solving so business problems. You're not solving so social media problems. You're solving social media problems. You're solving social media problems. You're solving game of life problems. It's fun. It is a game of life problems. It's fun. It is a game of life problems. It's fun. It is a fabulous adventure. Uh you just came out fabulous adventure. Uh you just came out fabulous adventure. Uh you just came out with uh was chapter seven, which is with uh was chapter seven, which is with uh was chapter seven, which is category theory, but I can see the category theory, but I can see the category theory, but I can see the pretty printing one that you just said pretty printing one that you just said pretty printing one that you just said you're working on. That's only a couple you're working on. That's only a couple you're working on. That's only a couple couple chapters ahead. Uh, so I'm going couple chapters ahead. Uh, so I'm going couple chapters ahead. Uh, so I'm going to get that automatically because I own to get that automatically because I own to get that automatically because I own the live book, right? So when you finish the live book, right? So when you finish the live book, right? So when you finish that a couple of days later, it's going that a couple of days later, it's going that a couple of days later, it's going to it's going to pop into my my live to it's going to pop into my my live to it's going to pop into my my live book. And then you said at the end, I'm book. And then you said at the end, I'm book. And then you said at the end, I'm going to get the physical book as well.
-
going to get the physical book as well. going to get the physical book as well. >> Yeah. Yeah. One of the things I wanted >> Yeah. Yeah. One of the things I wanted >> Yeah. Yeah. One of the things I wanted to do with this book is have a good to do with this book is have a good to do with this book is have a good balance of balance of balance of uh code that is useful for solving uh code that is useful for solving uh code that is useful for solving business problems. And a great number of business problems. And a great number of business problems. And a great number of the algorithms and data structures in the algorithms and data structures in the algorithms and data structures in this book were ones that I had to learn this book were ones that I had to learn this book were ones that I had to learn about to to solve a business problem in about to to solve a business problem in about to to solve a business problem in my business domain of building developer my business domain of building developer my business domain of building developer tools. And then some of them are just tools. And then some of them are just tools. And then some of them are just recreational, but they're recreational recreational, but they're recreational recreational, but they're recreational in a way that I learned a lot from them. in a way that I learned a lot from them. in a way that I learned a lot from them. in in the the chapter on the the game of in in the the chapter on the the game of in in the the chapter on the the game of life, there's a a famous cellular life, there's a a famous cellular life, there's a a famous cellular automaton called the game of life uh automaton called the game of life uh automaton called the game of life uh created by the uh the late mathematician created by the uh the late mathematician created by the uh the late mathematician John Horton Conway John Horton Conway John Horton Conway where you you have a a grid of cells where you you have a a grid of cells where you you have a a grid of cells that are either living or dead and the that are either living or dead and the that are either living or dead and the cells evolve over time and there's an cells evolve over time and there's an cells evolve over time and there's an algorithm created by uh by Bill Gosper algorithm created by uh by Bill Gosper algorithm created by uh by Bill Gosper that that that computes the future of a given uh life computes the future of a given uh life computes the future of a given uh life configuration. configuration. configuration. so fast. Uh it does it in such a a so fast. Uh it does it in such a a so fast. Uh it does it in such a a clever way uh where you can have uh an clever way uh where you can have uh an clever way uh where you can have uh an enormous amount of of data. You can have enormous amount of of data. You can have enormous amount of of data. You can have an enormous lifeboard much much larger an enormous lifeboard much much larger an enormous lifeboard much much larger than would fit into memory somehow and than would fit into memory somehow and than would fit into memory somehow and somehow the bigger the board is the somehow the bigger the board is the somehow the bigger the board is the faster it computes the future of that faster it computes the future of that faster it computes the future of that board. It's bizarre and it it totally board. It's bizarre and it it totally board. It's bizarre and it it totally changed the way I think about functional changed the way I think about functional changed the way I think about functional programming. And so I had to include it programming. And so I had to include it programming. And so I had to include it in the book. Not because it's useful uh
-
in the book. Not because it's useful uh in the book. Not because it's useful uh for any particular business case. There for any particular business case. There for any particular business case. There there are business cases that cellular there are business cases that cellular there are business cases that cellular automat use useful for. Cellular automat automat use useful for. Cellular automat automat use useful for. Cellular automat were invented to do things like uh fluid were invented to do things like uh fluid were invented to do things like uh fluid flow modeling and and things like that. flow modeling and and things like that. flow modeling and and things like that. And you you find them in in modern And you you find them in in modern And you you find them in in modern special effects too where they're doing special effects too where they're doing special effects too where they're doing like uh volutric uh analysis of uh of like uh volutric uh analysis of uh of like uh volutric uh analysis of uh of fluids or explosions or or things like fluids or explosions or or things like fluids or explosions or or things like that. Uh so there there is some that. Uh so there there is some that. Uh so there there is some usefulness but not for me. For me the usefulness but not for me. For me the usefulness but not for me. For me the game of life was just just an amusement game of life was just just an amusement game of life was just just an amusement from from my childhood and when I found from from my childhood and when I found from from my childhood and when I found out that there was this incredible out that there was this incredible out that there was this incredible algorithm uh I I had to tell more people algorithm uh I I had to tell more people algorithm uh I I had to tell more people about it. [snorts] about it. [snorts] about it. [snorts] >> These algorithms are so crazy because >> These algorithms are so crazy because >> These algorithms are so crazy because they this is a thing that um I think it they this is a thing that um I think it they this is a thing that um I think it was Douglas Crockford said that he was Douglas Crockford said that he was Douglas Crockford said that he didn't invent uh JSON JavaScript object didn't invent uh JSON JavaScript object didn't invent uh JSON JavaScript object notation. He discovered it. notation. He discovered it. notation. He discovered it. >> Yes. >> Yes. >> Yes. >> Right. And I think that's a really cool >> Right. And I think that's a really cool >> Right. And I think that's a really cool way to talk about how something exists way to talk about how something exists way to talk about how something exists out there and it just needs to be found. out there and it just needs to be found. out there and it just needs to be found. It's buried in your backyard. It's buried in your backyard. It's buried in your backyard. >> Yes. >> Yes. >> Yes. >> You know, Conway's game of life is an >> You know, Conway's game of life is an >> You know, Conway's game of life is an amazing thing. You could say John Comey amazing thing. You could say John Comey amazing thing. You could say John Comey made it or you could say it existed and made it or you could say it existed and made it or you could say it existed and he discovered it and and now that he discovered it and and now that he discovered it and and now that algorithm also existed out there and now algorithm also existed out there and now algorithm also existed out there and now it just needs to be found.
-
it just needs to be found. it just needs to be found. >> A lot of the uh the algorithms have that >> A lot of the uh the algorithms have that >> A lot of the uh the algorithms have that kind of feeling of being discovered kind of feeling of being discovered kind of feeling of being discovered rather than rather than constructed. And rather than rather than constructed. And rather than rather than constructed. And all all uh respect to the people who did all all uh respect to the people who did all all uh respect to the people who did invent these algorithms. invent these algorithms. invent these algorithms. >> Uh but yes, it it does kind of feel like >> Uh but yes, it it does kind of feel like >> Uh but yes, it it does kind of feel like some of them were just just there some of them were just just there some of them were just just there waiting for somebody to waiting for waiting for somebody to waiting for waiting for somebody to waiting for somebody to to figure them out. somebody to to figure them out. somebody to to figure them out. >> Yeah. makes me think about I think it >> Yeah. makes me think about I think it >> Yeah. makes me think about I think it was the this will be a spoiler for was the this will be a spoiler for was the this will be a spoiler for people who haven't seen the the movie people who haven't seen the the movie people who haven't seen the the movie but it was the Jodie Foster movie where but it was the Jodie Foster movie where but it was the Jodie Foster movie where they like they find like maybe it was they like they find like maybe it was they like they find like maybe it was the book they find the number pi like the book they find the number pi like the book they find the number pi like >> they find that >> they find that >> they find that >> contact >> contact >> contact >> contact they find like a number buried >> contact they find like a number buried >> contact they find like a number buried in pi like deeper than anyone's ever in pi like deeper than anyone's ever in pi like deeper than anyone's ever gone before whatever it's just like gone before whatever it's just like gone before whatever it's just like sitting there it'd be just like finding sitting there it'd be just like finding sitting there it'd be just like finding a post-it note from God a post-it note from God a post-it note from God >> you know like deeper in a number than >> you know like deeper in a number than >> you know like deeper in a number than you'd ever find before like you there you'd ever find before like you there you'd ever find before like you there there could be like a uh a ransom note there could be like a uh a ransom note there could be like a uh a ransom note in the game of life just at a farther in the game of life just at a farther in the game of life just at a farther out into the grid than we can see and it out into the grid than we can see and it out into the grid than we can see and it like spells out you found me and uh it's like spells out you found me and uh it's like spells out you found me and uh it's just many many trillions of of of games just many many trillions of of of games just many many trillions of of of games away. [snorts] away. [snorts] away. [snorts] So the family's adventures of uh in data So the family's adventures of uh in data So the family's adventures of uh in data structures and algorithms is up on structures and algorithms is up on structures and algorithms is up on manning.com and you can also check it manning.com and you can also check it manning.com and you can also check it out at your blog ericlipper.com and out at your blog ericlipper.com and out at your blog ericlipper.com and fabulous adventures in coding. You've fabulous adventures in coding. You've fabulous adventures in coding. You've actually got an early access discount actually got an early access discount actually got an early access discount code up there that I think just expired code up there that I think just expired code up there that I think just expired until uh it was going till November. I'm until uh it was going till November. I'm until uh it was going till November. I'm going to talk to the folks at Manning going to talk to the folks at Manning going to talk to the folks at Manning and see if we can get folks who listen and see if we can get folks who listen and see if we can get folks who listen to this podcast a discount as well. Not
-
to this podcast a discount as well. Not to this podcast a discount as well. Not so we take money out of your pocket, but so we take money out of your pocket, but so we take money out of your pocket, but so that we can put more copies of the so that we can put more copies of the so that we can put more copies of the book into people's pocket because I book into people's pocket because I book into people's pocket because I think you can feel the joy and the fun think you can feel the joy and the fun think you can feel the joy and the fun that you're having in your uh in your that you're having in your uh in your that you're having in your uh in your retirement or your fun your fun retirement or your fun your fun retirement or your fun your fun employment that you're experiencing. Are employment that you're experiencing. Are employment that you're experiencing. Are you enjoying writing this book? Oh, I'm you enjoying writing this book? Oh, I'm you enjoying writing this book? Oh, I'm I'm having a great time. Uh, I mean, all I'm having a great time. Uh, I mean, all I'm having a great time. Uh, I mean, all all kidding aside about my my people who all kidding aside about my my people who all kidding aside about my my people who thought uh who I thought were my friends thought uh who I thought were my friends thought uh who I thought were my friends who who convinced uh the publishers to who who convinced uh the publishers to who who convinced uh the publishers to make me write a book, uh, it it is work. make me write a book, uh, it it is work. make me write a book, uh, it it is work. It is certainly work to write a book, It is certainly work to write a book, It is certainly work to write a book, but I'm I'm having a great time doing but I'm I'm having a great time doing but I'm I'm having a great time doing it. A lot of the topics uh are topics it. A lot of the topics uh are topics it. A lot of the topics uh are topics that I've explored in my blog before. A that I've explored in my blog before. A that I've explored in my blog before. A bunch of them are new, so longtime bunch of them are new, so longtime bunch of them are new, so longtime readers of my blog will uh will have uh readers of my blog will uh will have uh readers of my blog will uh will have uh something uh new and interesting to something uh new and interesting to something uh new and interesting to check out. And a lot of the times I'm check out. And a lot of the times I'm check out. And a lot of the times I'm looking at these old blog articles and looking at these old blog articles and looking at these old blog articles and and thinking it's like, well, past past and thinking it's like, well, past past and thinking it's like, well, past past Eric didn't understand this as well as Eric didn't understand this as well as Eric didn't understand this as well as he thought he did or past Eric uh did he thought he did or past Eric uh did he thought he did or past Eric uh did not realize that there was a clearer way not realize that there was a clearer way not realize that there was a clearer way to explain this. Uh so that it's been a to explain this. Uh so that it's been a to explain this. Uh so that it's been a lot of fun for me to to revisit a bunch lot of fun for me to to revisit a bunch lot of fun for me to to revisit a bunch of those topics. of those topics. of those topics. >> That's so cool. Nothing will make you >> That's so cool. Nothing will make you >> That's so cool. Nothing will make you understand a topic more deeply than uh understand a topic more deeply than uh understand a topic more deeply than uh being forced to write a book and then being forced to write a book and then being forced to write a book and then have a deadline like you know the have a deadline like you know the have a deadline like you know the teacher is just one chapter ahead of teacher is just one chapter ahead of teacher is just one chapter ahead of you. Um, I'm only on chapter five right you. Um, I'm only on chapter five right you. Um, I'm only on chapter five right now, but I'm having a blast reading the now, but I'm having a blast reading the now, but I'm having a blast reading the book, and I appreciate you and your book, and I appreciate you and your book, and I appreciate you and your service.
-
service. service. We have been chatting with Eric Lippard, We have been chatting with Eric Lippard, We have been chatting with Eric Lippard, and his new book, Fabulous Adventures in and his new book, Fabulous Adventures in and his new book, Fabulous Adventures in Data Structures and Algorithms, is in Data Structures and Algorithms, is in Data Structures and Algorithms, is in early access at manning.com and you can early access at manning.com and you can early access at manning.com and you can check out Eric at eric libert.com. check out Eric at eric libert.com. check out Eric at eric libert.com. This has been another episode of Hansel This has been another episode of Hansel This has been another episode of Hansel Minutes, and we'll see [music] you again Minutes, and we'll see [music] you again Minutes, and we'll see [music] you again next week.
Summary
The main theme is the release of Eric Libert's new book, "Fabulous Adventures in Data Structures and Algorithms," which is currently being written and available for early access. The conversation touches on language design, compiler construction, and the relevance of foundational computer science topics even in the age of AI-assisted coding. The practical takeaway is that developers can gain valuable insights into fundamental algorithms and data structures by engaging with this ongoing, live book project.