Fabulous Adventures in Data Structures and Algorithms with Eric Lippert
Read full transcript 27 segments
-
You've got a bag of a thousand coins. You've got 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. Because on the one hand, >> Oh, man. Because on the one hand, >> Oh, man. Because on the one hand, there's only one double-headed coin. You there's only one double-headed coin. You there's only one double-headed coin. You had a one in a thousand chance. had a one in a thousand chance. had a one in 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. and I still don't know. and I still don't know. >> Flipping a coin 10 times in a row and >> Flipping a coin 10 times in a row and >> Flipping a coin 10 times in a row and having it come up heads happens one in having it come up heads happens one in having it come up heads happens one in every 1,024 times. M. every 1,024 times. M. every 1,024 times. M. >> So since [clears throat] those two >> So since [clears throat] those two >> So since [clears throat] those two ratios 1 in a,000 and 1 in,24 are almost ratios 1 in a,000 and 1 in,24 are almost ratios 1 in a,000 and 1 in,24 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 1 in is a lot better knowledge than the 1 in is a lot better knowledge than the 1 in a,000 chance that you had before you a,000 chance that you had before you 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, >> hey friends, it's Scott. I want to thank >> 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, 247 support. promotional email delivery, 247 support. promotional email delivery, 247 support. You contact humans, not AI chatbots. You contact humans, not AI chatbots. You contact humans, not AI chatbots. We'll give you 3,500 emails monthly in We'll give you 3,500 emails monthly in We'll give you 3,500 emails monthly in the free tier. And you can try them out the free tier. And you can try them out the free tier. And you can try them out at mail.io at mail.io at mail.io today. That's m a lap.io today. That's m a lap.io today. That's m a lap.io today. today. today. Hi, I'm Scott Hansselman. This is 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. You're just a gift and construction. You're just a gift and construction. 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. Yeah, I'm super excited. today. Yeah, I'm super excited. today. 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. this stuff anymore. this stuff anymore. >> Well, first of all, Scott, it's a >> Well, first of all, Scott, it's a >> Well, first of all, Scott, it's a pleasure to talk to you and thank you pleasure to talk to you and thank you pleasure to talk to you and thank you for that very kind introduction. So, why for that very kind introduction. So, why for that very kind introduction. So, why why this book now? Why any book now? Uh why this book now? Why any book now? Uh why this book now? Why any book now? Uh is the question that I had for for my is the question that I had for for my is the question that I had for for my editor. The way this came about was uh I editor. The way this came about was uh I editor. The way this came about was uh I was uh I was editing a book on was uh I was editing a book on was uh I was editing a book on better blog writing, better short form better blog writing, better short form better blog writing, better short form writing for developers, which is a topic writing for developers, which is a topic writing for developers, which is a topic that uh I am very passionate about. Uh that uh I am very passionate about. Uh that uh I am very passionate about. Uh and that I believe you wrote the and that I believe you wrote the and that I believe you wrote the afterwork to that book. afterwork to that book. afterwork to that book. >> I did. >> I did. >> I did. >> Yeah. >> Yeah. >> Yeah. And after we got that book put to bed And after we got that book put to bed And after we got that book put to bed and it was ready to to go to print, the and it was ready to to go to print, the and it was ready to to go to print, the uh the editor asked me, "Oh, are there uh the editor asked me, "Oh, are there uh the editor asked me, "Oh, are there any books uh on uh on Microsoft any books uh on uh on Microsoft any books uh on uh on Microsoft development that you think we ought to development that you think we ought to development that you think we ought to write?" And I was like, "Well, I have write?" And I was like, "Well, I have write?" And I was like, "Well, I have been out of the Microsoft ecosystem for been out of the Microsoft ecosystem for been out of the Microsoft ecosystem for several years now. So, I'm not really several years now. So, I'm not really several years now. So, I'm not really sure what's the the current hotness sure what's the the current hotness sure what's the the current hotness there." But, you know, if I was to write there." But, you know, if I was to write there." But, you know, if I was to write another book, you know what I would another book, you know what I would another book, you know what I would write? I would write a book that was write? I would write a book that was write? I would write a book that was like all of the weird stuff that you like all of the weird stuff that you 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 that involved reading a lot of tools that involved reading a lot of tools 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 said to me that the title maybe Jonathan said to me that the title maybe Jonathan said to me that the title maybe needs work, but could you uh could you needs work, but could you uh could you needs work, but could you uh could you write me a proposal for this book? And write me a proposal for this book? And write me a proposal for this book? And so I wrote a proposal for the book so I wrote a proposal for the book 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? the book. So why why a book now? the book. So why why a book now? [snorts] [snorts] [snorts] Why not a blog or a website? I still Why not a blog or a website? I still Why not a blog or a website? I still really strongly believe uh in the really strongly believe uh in the really strongly believe uh in the learning style of reading words on paper learning style of reading words on paper learning style of reading words on paper uh or reading words uh in a long form uh uh or reading words uh in a long form uh uh or reading words uh in a long form uh in like long form electronic form. in like long form electronic form. in 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 people a sense of this just want to give people a sense of this just want to give people a sense of this book because honestly like I know that's book because honestly like I know that's book because honestly like I know that's named after your blogs. It's fabulous named after your blogs. It's fabulous named after your blogs. It's fabulous adventures and coding is your blog. adventures and coding is your blog. adventures and coding is your blog. Fabulous Adventures and Data Structures Fabulous Adventures and Data Structures Fabulous Adventures and Data Structures and Algorithm is the book and you start and Algorithm is the book and you start and Algorithm is the book and you start with starting a fabulous adventure. But with starting a fabulous adventure. But with starting a fabulous adventure. But then like part one section four then like part one section four then like part one section four memoizing immutable quad trees to make a memoizing immutable quad trees to make a memoizing immutable quad trees to make a better life. Like you didn't start with better life. Like you didn't start with better life. Like you didn't start with hello world.
-
hello world. 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 [laughter] the book is organized the [laughter] the book is organized the [laughter] the book is organized into into three major sections. Uh and into into three major sections. Uh and into into three major sections. Uh and as you pointed out the the first uh of as you pointed out the the first uh of as you pointed out the the first uh of those sections is uh is available on the those sections is uh is available on the those sections is uh is available on the on the internet. And the way the way on the internet. And the way the way on the internet. And the way the way that works is essentially you pay for that works is essentially you pay for that works is essentially you pay for the book now you get early access to it. the book now you get early access to it. the book now you get early access to it. As I write more chapters they show up on As I write more chapters they show up on As I write more chapters they show up on the website and then you get a copy of the website and then you get a copy of the website and then you get a copy of the book at the end. the book at the end. 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 the is looking at traditional topics the is looking at traditional topics the 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. M them. M them. M >> not the kind of stuff that you would see >> not the kind of stuff that you would see >> not the kind of stuff that you would see in a typical data structures and in a typical data structures and 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 things developer tools uh over my career things developer tools uh over my career things like unification and anti-unification.
-
like unification and anti-unification. like unification and 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. So dealing with uh random Facebook. So dealing with uh random Facebook. 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 there's tasks or nullables, right? There there's tasks or nullables, right? There there's an underlying structure to all of those an underlying structure to all of those an underlying structure to all of those data types and I'm going to have little data types and I'm going to have little data types and I'm going to have little explorations along the way of what that explorations along the way of what that explorations along the way of what that uh what that structure is. Yeah, I think uh what that structure is. Yeah, I think uh what that structure is. Yeah, I think I want to understand I want to understand 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 and there's a lot of different code and there's a lot of different code and there's a lot of different kinds of programmers out there. There's kinds of programmers out there. There's kinds of programmers out there. There's a lot of different kinds of but we all a lot of different kinds of but we all a lot of different kinds of but we all just say programmer, coder, engineer, just say programmer, coder, engineer, just say programmer, coder, engineer, you know. Well, uh, and and it's not a you know. Well, uh, and and it's not a you know. Well, uh, and and it's not a formal thing like there's there's no formal thing like there's there's no formal thing like there's there's no it's not like you you go to the the it's not like you you go to the the it's not like you you go to the the medical board and you get like board medical board and you get like board medical board and you get like board certified. You're not a board-certified certified. You're not a board-certified certified. You're not a board-certified programmer, but like someone might get a programmer, but like someone might get a programmer, but like someone might get a masters from Carnegie Melon and then masters from Carnegie Melon and then masters from Carnegie Melon and then someone might have a software someone might have a software someone might have a software engineering degree from Portland engineering degree from Portland engineering degree from Portland Community College just like me Community College just like me Community College just like me >> and we're all kind of like peers, >> and we're all kind of like peers, >> and we're all kind of like peers, >> but someone might be listening and you >> but someone might be listening and you >> but someone might be listening and you just said, "Yeah, when I was doing just said, "Yeah, when I was doing just said, "Yeah, when I was doing stochastic programming and they might be stochastic programming and they might be stochastic programming and they might be doing text boxes over data with React."
-
doing text boxes over data with React." doing text boxes over data with 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 that's a bit magical Uh and that's that that's a bit magical Uh and that's that that's a bit magical and it's it's nice that there is not a a and it's it's nice that there is not a a and it's it's nice that there is not a a governing body that is gatekeeping that governing body that is gatekeeping that governing body that is gatekeeping that it coding should be accessible to to it coding should be accessible to to it coding should be accessible to to everybody. I started programming on the everybody. I started programming on the everybody. I started programming on the Commodore PET in my elementary school Commodore PET in my elementary school Commodore PET in my elementary school library. No, nobody stopped me from library. No, nobody stopped me from library. No, nobody stopped me from doing that. People encouraged me to do doing that. People encouraged me to do doing that. People encouraged me to do that and that's why I'm here today. And that and that's why I'm here today. And that and that's why I'm here today. And I I know you have a you have a similar I I know you have a you have a similar I I know you have a you have a similar story.
-
story. story. So, what kind of coder is this book for? So, what kind of coder is this book for? So, what kind of coder is this book for? This book is for curious coders. This This book is for curious coders. This This book is for curious coders. This book is for people who uh are coders, book is for people who uh are coders, book is for people who uh are coders, right? It's not it's not a tutorial as right? It's not it's not a tutorial as right? It's not it's not a tutorial as you as you point out. It it starts you as you point out. It it starts you as you point out. It it starts fairly hard, but it is for people who fairly hard, but it is for people who fairly hard, but it is for people who have maybe wondered have maybe wondered 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 that what are what are all the what Is that what are what are all the what Is that what are what are all the what are the underlying structural are the underlying structural are the underlying structural similarities? And also just what's the similarities? And also just what's the similarities? And also just what's the what's the weird cool stuff? Uh I just what's the weird cool stuff? Uh I just what's the weird cool stuff? Uh I just wrote a chapter on uh you know how wrote a chapter on uh you know how 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? There was a day when >> How does that work? There was a day when >> How does that work? There was a day when I didn't know how that worked. It was I didn't know how that worked. It was I didn't know how that worked. It was just magic. And then I had to actually just magic. And then I had to actually just magic. And then I had to actually write a code formatter and I did a write a code formatter and I did a write a code formatter and I did a little bit of research into how code for little bit of research into how code for little bit of research into how code for formatterers work and it's really cool. formatterers work and it's really cool. formatterers work and it's really cool. There's a lot of very simple logic that There's a lot of very simple logic that There's a lot of very simple logic that can be combined together in complex ways can be combined together in complex ways can be combined together in complex ways to capture the notion of what is to capture the notion of what is to capture the notion of what is prettiness for code formatting. Uh and prettiness for code formatting. Uh and prettiness for code formatting. Uh and if you if you get the uh if you get the if you if you get the uh if you get the if you if you get the uh if you get the API right, then it becomes very natural API right, then it becomes very natural API right, then it becomes very natural to write a little program that says, to write a little program that says, to write a little program that says, "Okay, well, try it this way and see if "Okay, well, try it this way and see if "Okay, well, try it this way and see if that's pretty. Oh, no, try it that way that's pretty. Oh, no, try it that way that's pretty. Oh, no, try it that way and see if that's pretty." And uh it's and see if that's pretty." And uh it's and see if that's pretty." And uh it's it's a really really neat algorithm. I I it's a really really neat algorithm. I I it's a really really neat algorithm. I I had a lot of fun when I learned about it had a lot of fun when I learned about it had a lot of fun when I learned about it and I figured other people would too. So and I figured other people would too. So and I figured other people would too. So yeah, that's really what it's for. It's yeah, that's really what it's for. It's yeah, that's really what it's for. It's it's for the curious. [snorts] Now pro I it's for the curious. [snorts] Now pro I it's for the curious. [snorts] Now pro I love that by the way. Like cur cur like love that by the way. Like cur cur like love that by the way. Like cur cur like if you're there was a lot of time in the if you're there was a lot of time in the if you're there was a lot of time in the last couple of years on social where last couple of years on social where last couple of years on social where everyone was like you know talking about everyone was like you know talking about everyone was like you know talking about hustle culture and like if you're not hustle culture and like if you're not hustle culture and like if you're not programming after 5:00 p.m. or whatever.
-
programming after 5:00 p.m. or whatever. programming after 5:00 p.m. or whatever. It's not about that level of interest in It's not about that level of interest in It's not about that level of interest in the in the in the craft. It's just about the in the in the craft. It's just about the in the in the craft. It's just about curiosity. It's about like huh how does curiosity. It's about like huh how does curiosity. It's about like huh how does that work? Like I was at McDonald's that work? Like I was at McDonald's that work? Like I was at McDonald's recently and they've had like they got recently and they've had like they got recently and they've had like they got those giant iPads and uh you know I'm those giant iPads and uh you know I'm those giant iPads and uh you know I'm like, "Huh, wonder who wrote that. like, "Huh, wonder who wrote that. like, "Huh, wonder who wrote that. Wonder how that works. What's the back Wonder how that works. What's the back Wonder how that works. What's the back end look like?" You know, and then I'm end look like?" You know, and then I'm end look like?" You know, and then I'm adjusting the heat on my my my adjusting the heat on my my my adjusting the heat on my my my thermostat and I'm like, "I wonder who thermostat and I'm like, "I wonder who thermostat and I'm like, "I wonder who wrote that. I wonder how that works. wrote that. I wonder how that works. wrote that. I wonder how that works. What's the [clears throat] back end for What's the [clears throat] back end for What's the [clears throat] back end for that?" You know, is this running like an that?" You know, is this running like an that?" You know, is this running like an embedded system? Is this running Linux? embedded system? Is this running Linux? embedded system? Is this running Linux? Like is this Raspberry Pi? And then the Like is this Raspberry Pi? And then the Like is this Raspberry Pi? And then the next thing you know, you've ripped your next thing you know, you've ripped your next thing you know, you've ripped your thermostat off the wall and you're like thermostat off the wall and you're like thermostat off the wall and you're like trying to figure out what's going on. trying to figure out what's going on. trying to figure out what's going on. 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 but why is that airport running a like but why is that airport running a like but why is that airport running a text UI and not a KUI like you know who text UI and not a KUI like you know who text UI and not a KUI like you know who can I talk to and the next thing you can I talk to and the next thing you can I talk to and the next thing you know they're on my podcast you know that know they're on my podcast you know that know 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 where Microsoft many many many years ago where Microsoft many many many years ago where I posed a technical problem and the I posed a technical problem and the I posed a technical problem and the problem involved generating a unique problem involved generating a unique 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 yet what would doesn't have that feature yet what would doesn't have that feature yet 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 existence on its own." I was like, into existence on its own." I was like, into existence on its own." I was like, "Yeah, and you can be that guy." "Yeah, and you can be that guy." "Yeah, and you can be that 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 couple of into existence a couple of couple of into existence a couple of couple of years ago. But typically it's data in years ago. But typically it's data in years ago. But typically it's data in and reliably deterministic data out and and reliably deterministic data out and and reliably deterministic data out and it's always been that way. And now we're it's always been that way. And now we're it's always been that way. And now we're in this place where we have uncertainty. in this place where we have uncertainty. in this place where we have uncertainty. Uh, and it's like a deterministic Uh, and it's like a deterministic Uh, and it's like a deterministic program would say, you know, if I need program would say, you know, if I need program would say, you know, if I need 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 great point. So let >> Yes, that's that's a great point. So let >> Yes, that's that's a great point. So let me let me talk a little bit about what I me let me talk a little bit about what I me let me talk a little bit about what I mean by stochastic programming. But mean by stochastic programming. But mean by stochastic programming. But first let me address your point about first let me address your point about first let me address your point about branding. There's a joke. I don't know branding. There's a joke. I don't know branding. There's a joke. I don't know who said it first, but it the the joke who said it first, but it the the joke who said it first, but it the the joke is that we tell the public that it's is that we tell the public that it's is that we tell the public that it's artificial intelligence. We tell the artificial intelligence. We tell the artificial intelligence. We tell the developers or we tell the investors that developers or we tell the investors that developers or we tell the investors that it's machine learning. We tell the it's machine learning. We tell the it's machine learning. We tell the developers that it's stocastic developers that it's stocastic developers that it's stocastic programming and it's actually linear programming and it's actually linear programming and it's actually linear interpolation. interpolation. 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. chuckled. chuckled. [laughter] [laughter] [laughter] >> But that's it. The joke is not too far >> But that's it. The joke is not too far >> But that's it. The joke is not too far from the truth. There isn't. There's from the truth. There isn't. There's from the truth. There isn't. There's nothing intelligent about artificial nothing intelligent about artificial nothing intelligent about artificial intelligence. Well, actually, that's not intelligence. Well, actually, that's not intelligence. Well, actually, that's not true. There is plenty that's intelligent true. There is plenty that's intelligent true. There is plenty that's intelligent about behind it. It's the people that about behind it. It's the people that about 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 the countries that are running the countries that are running the mechanical Turks behind the scenes and mechanical Turks behind the scenes and mechanical Turks behind the scenes and uh and uh training up the uh and uh training up the uh and uh training up the >> um >> um >> um learning and and all of that.
-
learning and and all of that. learning and and all of that. >> But yes, let me let me talk a bit about >> But yes, let me let me talk a bit about >> But yes, let me let me talk a bit about what I mean by stochastic programming. what I mean by stochastic programming. what I mean by stochastic programming. And I can I can give you uh I can give And I can I can give you uh I can give And I can I can give you uh I can give you an example. I'll I'll start with a a you an example. I'll I'll start with a a you an example. I'll I'll start with a a very abstract example and that is you've very abstract example and that is you've very abstract example and that is you've got a bag of a thousand coins. got a bag of a thousand coins. got 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 your times. Now the question is, what is your times. Now the question is, what is your belief about the question? Do I have the belief about the question? Do I have the belief about the question? Do I have the double-headed coin or not? double-headed coin or not? double-headed coin or not? >> Oh, man. >> Oh, man. >> Oh, man. >> Because [snorts] on the one hand, >> Because [snorts] on the one hand, >> Because [snorts] on the one hand, there's only one double-headed coin. You there's only one double-headed coin. You there's only one double-headed coin. You had a one in a thousand chance. had a one in a thousand chance. had a one in 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. and I still don't know. and I still don't know. >> Flipping a coin 10 times in a row and >> Flipping a coin 10 times in a row and >> Flipping a coin 10 times in a row and having it come up heads happens one in having it come up heads happens one in having it come up heads happens one in every 1,024 times. M. every 1,024 times. M. every 1,024 times. M. >> So since those two ratios 1 in a,000 and >> So since those two ratios 1 in a,000 and >> So since those two ratios 1 in a,000 and 1 in a,024 are almost equal, it's about 1 in a,024 are almost equal, it's about 1 in a,024 are almost equal, it's about a 50/50 chance that you have the a 50/50 chance that you have the a 50/50 chance that you have the double-headed coin, which is a lot double-headed coin, which is a lot double-headed coin, which is a lot better knowledge than the 1 in a,000 better knowledge than the 1 in a,000 better knowledge than the 1 in a,000 chance that you had before you observed chance that you had before you observed chance that you had before you observed those coin flips. Okay, so that's pretty those coin flips. Okay, so that's pretty those coin flips. Okay, so that's pretty straightforward basian mathematics. The straightforward basian mathematics. The straightforward basian mathematics. The question is why do we care as you know question is why do we care as you know question is why do we care as you know professional line of business professional line of business professional line of business developers? And the answer is what we're developers? And the answer is what we're developers? And the answer is what we're actually observing is somebody has just actually observing is somebody has just actually observing is somebody has just joined your social network. There is a
-
joined your social network. There is a joined your social network. There is a one in a,000 chance that they're a real one in a,000 chance that they're a real one in a,000 chance that they're a real person and there's a 999,000 person and there's a 999,000 person and there's a 999,000 chance that they're a bot. And then they chance that they're a bot. And then they chance that they're a bot. And then they make behaviors that are consistent with make behaviors that are consistent with make behaviors that are consistent with being a real person. And so how do you being a real person. And so how do you being a real person. And so how do you update your prior belief that there's a update your prior belief that there's a update your prior belief that there's a one in a thousand chance that there's one in a thousand chance that there's one in a thousand chance that there's that they're a real person to having a that they're a real person to having a that they're a real person to having a one in two belief that they are a real one in two belief that they are a real one in two belief that they are a real person. And in in that example, the math person. And in in that example, the math person. And in in that example, the math is pretty straightforward. But when you is pretty straightforward. But when you is pretty straightforward. But when you start adding in all of the other start adding in all of the other start adding in all of the other statistical quantities, it it becomes statistical quantities, it it becomes statistical quantities, it it becomes quite a quite a tricky problem to solve quite a quite a tricky problem to solve quite a quite a tricky problem to solve these sorts of things in in the real these sorts of things in in the real these sorts of things in in the real world. Uh and so that's what my work was world. Uh and so that's what my work was world. Uh and so that's what my work was at uh at Facebook was helping data at uh at Facebook was helping data at uh at Facebook was helping data scientists build language tools that scientists build language tools that scientists build language tools that allowed them to represent stochastic allowed them to represent stochastic allowed them to represent stochastic quantities in a very clean, quantities in a very clean, quantities in a very clean, understandable way. Manipulate those understandable way. Manipulate those understandable way. Manipulate those stoastic quantities using the ordinary stoastic quantities using the ordinary stoastic quantities using the ordinary arithmetic of a programming language. arithmetic of a programming language. arithmetic of a programming language. feed into the system a bunch of feed into the system a bunch of feed into the 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 observations of reality, and then have a observations of reality, and then have a quantity come out the other end. That is quantity come out the other end. That is quantity come out the other end. That is uh in this principled way, what is the uh in this principled way, what is the uh in this principled way, what is the update to our belief about whatever it update to our belief about whatever it update to our belief about whatever it is that we have under question? Is this is that we have under question? Is this is that we have under question? Is this user a real person? Is this router the user a real person? Is this router the user a real person? Is this router the broken router in the data center, etc.
-
broken router in the data center, etc. broken router in the data center, etc. What whatever whatever the problem was. What whatever whatever the problem was. What whatever whatever the problem was. uh is this uh content reviewer uh doing uh is this uh content reviewer uh doing uh is this uh content reviewer uh doing a good job of classifying content as uh a good job of classifying content as uh a good job of classifying content as uh as spam or ham etc etc. Uh so all of as spam or ham etc etc. Uh so all of as spam or ham etc etc. Uh so all of these kinds of questions where there is these kinds of questions where there is these kinds of questions where there is some uncertainty but we have a some uncertainty but we have a some uncertainty but we have a statistical model that we believe statistical model that we believe statistical model that we believe matches reality and we have some matches reality and we have some matches reality and we have some observations of reality. How do we get a observations of reality. How do we get a observations of reality. How do we get a good update on our priors? So that that good update on our priors? So that that good update on our priors? So that that was the problem that I was working on was the problem that I was working on was the problem that I was working on with uh with stochastic programming. with uh with stochastic programming. with uh with stochastic programming. We're not going to go all the way to We're not going to go all the way to We're not going to go all the way to that level of detail in the book, but that level of detail in the book, but that level of detail in the book, but I'm going to go through the basics of I'm going to go through the basics of I'm going to go through the basics of how do we represent statistical how do we represent statistical how do we represent statistical quantities, how do we compute quantities, how do we compute quantities, how do we compute probabilities, how do we combine those probabilities, how do we combine those probabilities, how do we combine those together, how do we apply basian logic together, how do we apply basian logic together, how do we apply basian logic to them and and so on. to them and and so on. 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 the we you know like I remember the the we you know like I remember the the during the spam wars. during the spam wars. during the spam wars. >> By the spam wars I mean like the email >> By the spam wars I mean like the email >> By the spam wars I mean like the email spam wars. spam wars. spam wars. >> Yeah. I largely don't get spam. I get >> Yeah. I largely don't get spam. I get >> Yeah. I largely don't get spam. I get unwanted PR pitches and I get random unwanted PR pitches and I get random unwanted PR pitches and I get random newsletters. But as a general rule, the newsletters. But as a general rule, the newsletters. But as a general rule, the spam problem in email, at least for spam problem in email, at least for 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. >> 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. >> 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. know, all those kind of things. know, all those kind of things. Why is it is is it that am I seeing the Why is it is is it that am I seeing the Why is it is is it that am I seeing the 001% that sneaks through and it's just a 001% that sneaks through and it's just a 001% 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 bot random username this is obviously a bot random username this is obviously a bot >> yes >> yes >> yes >> why is that not solved when smart people >> why is that not solved when smart people >> why is that not solved when smart people like you were working on it 10 years like you were working on it 10 years like you were working on it 10 years ago. ago. 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. >> Indeed.
-
>> Indeed. >> Indeed. >> The reason I don't work for Facebook >> The reason I don't work for Facebook >> 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 laid off. The entire division was laid laid off. The entire division was laid off. off. off. >> That explains why my inbox is messed. >> That explains why my inbox is messed. >> That explains why my inbox is messed. [laughter] So, number one, it's a hard [laughter] So, number one, it's a hard [laughter] So, number one, it's a hard problem. problem. problem. >> Okay. >> Okay. >> Okay. >> Number two, uh a lot of the people >> Number two, uh a lot of the people >> 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 billions and billions and There are billions and billions and There are 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 make mistakes make mistakes and humans make mistakes make mistakes and humans make 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 a computer makes a mistake once and but a computer makes a mistake once and but a computer makes a mistake once and you're like it's garbage, you're like it's garbage, you're like 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. >> Yeah, >> Yeah, >> Yeah, >> there's no way. >> there's no way. >> there's no way. >> I remember when I was a teenager, what >> I remember when I was a teenager, what >> I remember when I was a teenager, what one of my friends who was also a one of my friends who was also a one 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 we sold, right? We were we were sold we sold, right? We were we were sold that there was going to be a that there was going to be a that there was going to be 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, for lack of a better word, of course, for lack of a better word, of course, 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 user friendly is not loving and user friendly is not loving and user friendly 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 if you if you make a >> But it's also that if you if you make a >> But it's also that if you if you make a mistake once, the human pattern matching mistake once, the human pattern matching mistake once, the human pattern matching brain goes, "Oh, this is garbage. That's brain goes, "Oh, this is garbage. That's brain goes, "Oh, this is garbage. That's 100% of the time it's wrong." Because 1% 100% of the time it's wrong." Because 1% 100% of the time it's wrong." Because 1% wrong means it's wrong for me and not 99 wrong means it's wrong for me and not 99 wrong means it's wrong for me and not 99 of my friends. And that's where you get of my friends. And that's where you get of my friends. And that's where you get into anti an ane data, into anti an ane data, into anti an ane data, >> 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 for listening to you to paper methods for listening to you to paper methods for listening to you to paper towel brand you use. Yeah.
-
towel brand you use. Yeah. towel 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 confirmation bias. into confirmation bias. into 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. 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. You just came out fabulous adventure. You just came out fabulous adventure. You just came out with chapter 7, which is category with chapter 7, which is category with chapter 7, which is category theory. But I can see the pretty theory. But I can see the pretty theory. But I can see the pretty printing one that you just said you're printing one that you just said you're printing one that you just said you're working on. That's only a couple couple working on. That's only a couple couple working on. That's only a couple couple chapters ahead. Uh, so I'm going to get chapters ahead. Uh, so I'm going to get chapters ahead. Uh, so I'm going to get that automatically because I own the that automatically because I own the that automatically because I own the live book, right? So when you finish live book, right? So when you finish 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. One of the things I wanted to do >> Yeah. One of the things I wanted to do >> Yeah. One of the things I wanted to do with this book is have a good balance of with this book is have a good balance of with this book is have a good balance of code that is useful for solving business code that is useful for solving business code that is useful for solving business problems. And a great number of the problems. And a great number of the problems. And a great number of the algorithms and data structures in this algorithms and data structures in this algorithms and data structures in this book were ones that I had to learn about book were ones that I had to learn about book were ones that I had to learn about to to solve a business problem in my to to solve a business problem in my to to solve a business problem in my business domain of building developer business domain of building developer 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. the the chapter on the the game of life, the the chapter on the the game of life, the the chapter on the the game of life, there's a famous cellular automaton there's a famous cellular automaton there's a famous cellular automaton called the game of life uh created by called the game of life uh created by called the game of life uh created by the uh the late mathematician John the uh the late mathematician John the uh the late mathematician John Horton Conway Horton Conway Horton Conway where you you have a grid of cells that where you you have a grid of cells that where you you have a grid of cells that are either living or dead and the cells are either living or dead and the cells are either living or dead and the cells evolve over time and there's an evolve over time and there's an 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 where you can have uh an clever way where you can have uh an clever way 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 are business cases that cellular automat are business cases that cellular automat are business cases that cellular automat are useful for. Cellular automata were are useful for. Cellular automata were are useful for. Cellular automata were invented to do things like fluid flow invented to do things like fluid flow invented to do things like fluid flow modeling and and things like that. And modeling and and things like that. And modeling and and things like that. And you you find them in in modern special you you find them in in modern special you you find them in in modern special effects too where they're doing like effects too where they're doing like effects too where they're doing like volutric uh analysis of uh of fluids or volutric uh analysis of uh of fluids or volutric uh analysis of uh of fluids or explosions or or things like that. Uh so explosions or or things like that. Uh so explosions or or things like that. Uh so there there is some usefulness but not there there is some usefulness but not there there is some usefulness but not for me. For me the game of life was just for me. For me the game of life was just for me. For me the game of life was just just an amusement from from my just an amusement from from my just an amusement from from my childhood. And when I found out that childhood. And when I found out that childhood. And when I found out that there was this incredible algorithm uh I there was this incredible algorithm uh I there was this incredible algorithm uh I I had to tell more people about it. I had to tell more people about it. I had to tell more people about it. >> 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 JSON JavaScript object didn't invent JSON JavaScript object didn't invent 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, Conwayy's game of life is an >> You know, Conwayy's game of life is an >> You know, Conwayy's game of life is an amazing thing. You could say John Conway amazing thing. You could say John Conway amazing thing. You could say John Conway 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 these algorithms. invent these these algorithms. invent these 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 contact they find that contact they find that 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 or whatever. It's just like gone before or whatever. It's just like gone before or 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 out into the grid than we can see. And out into the grid than we can see. And it like spells out you found me and it's it like spells out you found me and it's it like spells out you found me and 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] So, the family's away. [snorts] So, the family's away. [snorts] So, the family's adventures of uh in data structures and adventures of uh in data structures and adventures of uh in data structures and algorithms is up on manning.com and you algorithms is up on manning.com and you algorithms is up on manning.com and you can also check it out at your blog can also check it out at your blog can also check it out at your blog ericipard.com and fabulous adventures in ericipard.com and fabulous adventures in ericipard.com and fabulous adventures in coding. You've actually got an early coding. You've actually got an early coding. You've actually got an early access discount code up there that I access discount code up there that I access discount code up there that I think just expired until uh it was going think just expired until uh it was going think just expired until uh it was going till November. I'm going to talk to the till November. I'm going to talk to the till November. I'm going to talk to the folks at Manning and see if we can get folks at Manning and see if we can get folks at Manning and see if we can get folks who listen to this podcast a
-
folks who listen to this podcast a folks who listen to this podcast a discount as well. Not so we take money discount as well. Not so we take money discount as well. Not so we take money out of your pocket, but so that we can out of your pocket, but so that we can out of your pocket, but so that we can put more copies of the book into put more copies of the book into put more copies of the book into people's pocket because I think you can people's pocket because I think you can people's pocket because I think you can feel the joy and the fun that you're feel the joy and the fun that you're feel the joy and the fun that you're having in your uh in your retirement or having in your uh in your retirement or having in your uh in your retirement or your fun your fun employment that you're your fun your fun employment that you're your fun your fun employment that you're experiencing. Are you enjoying writing experiencing. Are you enjoying writing experiencing. Are you enjoying writing this book? this book? this book? >> Oh, I'm I'm having a great time. Uh I >> Oh, I'm I'm having a great time. Uh I >> Oh, I'm I'm having a great time. Uh I mean, all all kidding aside about my my mean, all all kidding aside about my my mean, all all kidding aside about my my people who thought uh who I thought were people who thought uh who I thought were people who thought uh who I thought were my friends who who convinced the my friends who who convinced the my friends who who convinced the publishers to make me write a book. It publishers to make me write a book. It publishers to make me write a book. It it is work. It is certainly work to it is work. It is certainly work to it is work. It is certainly work to write a book, but I'm I'm having a great write a book, but I'm I'm having a great write a book, but I'm I'm having a great time doing it. A lot of the topics are time doing it. A lot of the topics are time doing it. A lot of the topics are topics that I've explored in my blog topics that I've explored in my blog topics that I've explored in my blog before. A bunch of them are new, so before. A bunch of them are new, so before. A bunch of them are new, so longtime readers of my blog will uh will longtime readers of my blog will uh will longtime readers of my blog will uh will have uh something uh new and interesting have uh something uh new and interesting have uh something uh new and interesting to check out. And a lot of the times I'm to check out. And a lot of the times I'm to 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 understand a topic more deeply than understand a topic more deeply than 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. I'm only on chapter five right now, you. I'm only on chapter five right now, you. I'm only on chapter five right now, but I'm having a blast reading the book but I'm having a blast reading the book but I'm having a blast reading the book and I appreciate you and your service. and I appreciate you and your service. and I appreciate you and your service. We have been chatting with Eric Liippard We have been chatting with Eric Liippard We have been chatting with Eric Liippard 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 you again next Minutes and we'll see you again next Minutes and we'll see you again next week.
Summary
The main theme discusses Bayesian mathematics using a coin flip analogy about a double-headed coin. Key subjects include probability, observation, and rational belief updating, with practical takeaways emphasizing how accumulating evidence can significantly improve our understanding from an initial low probability to a near certainty. The discussion also briefly touches upon its relevance for business developers and introduces a sponsor, Mail Trap.