Coding Blocks - Big Data – How Far is Too Far?

Episode Date: April 27, 2020

We gather around the water cooler at 6 foot distances as Michael and Joe aren't sure what they streamed, we finally learn who has the best fries, at least in the US, and Allen doesn't understand evenl...y distributing your condiments.

Transcript
Discussion (0)
Starting point is 00:00:00 You're listening to Coding Blocks, episode 131. Subscribe to us and leave us a review on iTunes, Spotify, Stitcher, and more using your favorite podcast app. And send your feedback, questions, and rants to codingblocks.net. Just keep going. Follow us on Twitter at Coding Blocks or head to www.codingblocks.net and find all of our social links there at the top of the page as well as show notes examples discussion and more don't forget since joe didn't get that part in yep yep he lost his ability to read this evening and with that i'm alan underwood
Starting point is 00:00:37 i guess i'm joe zach and i'm michael outlaw uh in this episode we're gathering around the water cooler we're taking it easy. We're all tired. And we're also all pumped, super pumped to be here speaking to you today on this great, fantastic generic time of the day. So come on, y'all. Hang out. Let's social distance alone together. What podcast have you been listening to that you're like talking about generic time of the day?
Starting point is 00:01:03 That's right. And we are all at least six feet apart, just so everybody knows. So we're all safe. been listening to that you're like talking about generic time of the day that's right hey and we are all at least six feet apart just just so everybody knows so we're all safe first up a little bit of news here uh take it alan yeah so as we like to do you know thank thank you to everybody who took the time to leave us a review and we actually got quite a few this time so i'll start off with the itunes ones we have braver 1996 summer i i'm not sure if this is ellen schecter or elaine schecter and then there's this one for joe yes see i told y'all if i just was honest about why i want to reviews on stitcher we got this one for joe again thank you so much uh this phd was a mistake um uh anonymous uh please help and uh nick p so thank you very much uh we we really enjoyed reading all that and uh it's been keeping us up. So thank you very much.
Starting point is 00:02:05 Yep. Uh, and speaking of, um, of stuff being awkward and awake and sleepy all at the same time. Wait a minute. Did you say that the please help was the way it was capitalized there? Uh,
Starting point is 00:02:19 please. Hype is IP. No, it's please help, but it's PHP. Oh, well, no wonder. The P's are capitalized and the H is capitalized. That's awesome.
Starting point is 00:02:30 Yeah. So I assume that they were making a joke like, help me, I'm doing PHP. Oh, no. That's excellent. Oh, man, we just got a one-star review there. Yeah, thanks. Now we're going to get dinged because of your joke. Every time we make a PHP joke, it happens. Because I caught your joke, that's why I'm're gonna get dinged because of your joke every time we make a php joke it happens because i caught your joke there that's why i'm gonna get dinged yeah all
Starting point is 00:02:51 right well we're we're feeling a little goofy today uh so um sorry about that but we're talking about uh doing an ama style streaming video we've been dabbling with a little bit of streaming collaboration and so we're gonna try and do this sometime next couple weeks we'll we'll have some uh some better uh i don't know information when that's going to be coming out soon but we're going to try it so be thinking scribble scribble your questions down and uh we're going to try and uh answer all those uh anythings hey i've got an observation to make here and i I think all three, actually, I think me and Joe do it. I've never seen Mike do this. When Joe's talking around a point that we have in our Google Doc, he's constantly arrowing left and right and up and down and all around it.
Starting point is 00:03:35 Like he's highlighting the line that he's working on, right? I'm terrible about that. I do the same thing. And when I'm reading, I have a really bad tendency to drag and highlight the text that I'm reading, right? Like I do it all up and down the page. And my wife goes absolutely crazy when I do it. She's like, can you please stop that? I'm like, what are you talking about?
Starting point is 00:03:54 I don't even realize I'm doing it. But it's funny. It's like you're fidgety, reedy, like keeping your mind engaged by doing stuff with your hands. I don't even know where the cursor is. So I couldn't tell you. Like if I were to do that right now, let's see. Oh yeah. I was, I was off the screen. Yeah. That's why I knew you didn't do it because I'm always saying like me and Joe Zach look like we're playing video games on the, on the screen the whole time. The only time I do that where like, if you see it fidget, it's because I'm trying to get your
Starting point is 00:04:22 attention. Oh, like I'm trying to like call out like hey jump to this or jump to that or whatever or something like that but like without like writing it in the notes like now we're getting really meta about how we make the show but yeah that's funny i'm bad about that like watching a movie or something like if a jamming song is on the soundtrack then i'm over here playing the drums while watching the movie while i was like stop it i will say so you, you know, as I think Joe or Alan, one of you guys that introduced it, the show already, like, you know, this is going to be more of a water cooler type episode that, you know, we've talked about, well, maybe we haven't talked about it on the show.
Starting point is 00:05:02 We've definitely talked about it on the Zoom. So if you're not already on the Slack, you should definitely become a part of the Slack. So head to codingblocks.net slash Slack, and you can find out the information there. But we've had some Saturdays where we've had get-togethers with people from the Slack, and it's been kind of awesome. And one of the things that we were talking about was the, um, I think it was Forbes that put out an article and I'll include it in their resources when we like, but Forbes had put out an article about how the, as a result of COVID-19, the internet bandwidth usage globally was up like 70%, right?
Starting point is 00:05:46 And part of that, like 12% of it alone was just on streaming services like Netflix and Disney Plus and Hulu and whatever, right? But you consider how many people now are having Zoom. The popularity of Zoom has exploded in the last few weeks, right? And how many people are having Zoom calls now? And so like, that's kind of thing leading up to it. I bring all that up because as it relates to this episode, I've already noticed a couple times where you're going to hear us talk over each other and it's going to be totally by accident because there's definitely, I've had some internet glitches here while we were just preparing for this episode where I wouldn't hear or see either of you guys for a momentary blip.
Starting point is 00:06:32 And then you come back. And I've noticed a couple times where it's like, okay, there's definitely a gap in the conversation. Try to say something and then, oh, no. I think I lost him. Do you hear it? Yeah, exactly. Are you guys there? I don't know what happened. I'm just telling you know, so. I think I lost him. Do you hear it? Yeah, exactly. Are you guys there? Yeah.
Starting point is 00:06:46 I don't know what happened. I'm just telling you to be prepared. Outlaw's working on some 566 modem stuff. But that's good, though. He's very efficient, so he can make that work. That's right. Hey, so we do have a couple other pieces of news before we jump into our just on chit chat and sort of round table thing. So plural site is still free through the end of April,
Starting point is 00:07:10 which means that by the time this episode lands, you've got a couple of days to go binge, learn whatever you can. It is a great opportunity to get tons of really quality content that you may be interested in. So I would highly recommend we've got a link. You can go to codingblocks.net slash portal site. It'll take you there.
Starting point is 00:07:30 Definitely do that if you can, because it's just a great way to learn for free. And then the other thing, see, is that we just talked about Zoom a second ago, and we had to eat a little bit of crow, even though we didn't last episode, because we said, yeah, it kind of sucks that the security is so bad, but we're going to use it. So, I mean, look, in all honesty, again, it is the best of the services, whether or not the security was great or not.
Starting point is 00:07:58 But they honestly have answered the call, right? Like they took all their hits on the nose. And we've got a link here to zoom.us slash security. And you can see all the stuff that they've been doing to try and improve their service and, you know, answer all those things that came out that people were not so happy about. So, you know, not always great, but some good things came out of it. So, you know. Well, I mean, they could have just taken that stance of, hey, not our problem. Or, you know, like, oh, what problem?
Starting point is 00:08:30 No, it's fine, you know, or whatever. But instead, they just owned it and started putting out fixes to correct it. Yeah, totally. And that's not easy to do, right? Because that's not necessarily a moneymaker. That's where you spend a lot of time and effort trying to round out a platform that works. So, I mean, that's really good that they did take that approach. And that actually makes me want to stick with them even more. Yeah, they had a lot of scaling going on at the same time.
Starting point is 00:08:59 So it's not like they didn't have any work to do, right? Right. Their numbers were going through the roof. So it's pretty crazy. All right. So let's dive into the topics so basically what we did this time is we each just kind of picked a couple things we wanted to bring up and uh so uh i guess uh looks like i'm starting so um one thing i tried uh because i noticed that our youtube traffic was up a little bit so i thought maybe i would try streaming just doing some like online coding stuff because uh you know it seemed like the traffic was up like i've been kind of wanting to dabble anyway and so i
Starting point is 00:09:30 just kind of hopped on and gave it a shot and it turns out that i super liked it it was way more fun than i thought just having someone to kind of talk to it kind of reminded me of like back in the day like as a kid like playing video games like with somebody else on the couch you know, just kind of having people there to talk to or whatever, kind of see what you're doing. You're engaging in the same activity together. It's so weird. It's like one person's talking and everyone else is kind of like chatting. So, you know, it's not, it's definitely not the same as kind of being there, but it's just so much more engaging and it's so much more fun than like doing like leak code challenges on your own, just sitting there for hours quietly solving problems. Just having people to talk with is awesome.
Starting point is 00:10:10 Talk being in quotes, right? Because it's kind of one-sided, right? You're talking, they're listening, but they're writing and you're reading. Yeah, exactly. I found as a Twitch watcher, I don't really watch for too long usually, but I do enjoy it. And I'll, I'll actually have a recommendation here for my,
Starting point is 00:10:27 uh, my favorite person to watch, uh, as a, as a streamer. Um, we'll have that, uh,
Starting point is 00:10:32 link in here. I'll tell you. Oh, you're so nice. Thank you. I appreciate that. I'm so honored. So that's what I wanted to bring up.
Starting point is 00:10:39 Um, I did a bit, a bit of pair programming with Michael outlaw who, uh, up until like last year is when I learned this about Outlaw. Wait. He is actually super social. Wait, what?
Starting point is 00:10:55 He hides it. You learned last year that I'm super social. I think down at Orlando Code Camp, right? All of that. Exactly. Outlaw, Mr. Oh, you know, I don't know. I don't want to get up in front of anyone. I don't want to talk.
Starting point is 00:11:08 I don't know if I want to be on a podcast. I don't want people to hear me. I don't know if I should do this. Man, you give this man a microphone and he goes, goes, goes. And yeah, so Orlando Code Camp was like my first kind of eye-opening experience with that. And be like, you know what? Outlaw does pretty well with this stuff. We managed to drag him onto a stream.
Starting point is 00:11:29 And we did some pair programming with Apache Beam. Which is... No, no, no, no, no. Tell me, Outlaw. Not Beam. Yeah, yeah. Okay, wait a minute. Hold on.
Starting point is 00:11:37 Oh, somebody else. Sorry. Never mind. I take it all back. Yeah. So, I'm so offended. First of all, you got all of this wrong like like the whole thing about about uh you know me being like in front of an audience or whatever or even like
Starting point is 00:11:54 on this show it's like have you heard this voice do you do you want to hear this voice is this the voice you want in your ears right now for hundreds of hours, yes. come learn Apache Beam with us. So, you know, I totally want to do that one because I have zero experience with Beam and I would like to get, you know, a head start on that. But Apache Drill, you know, basically the idea was, I mean, we talked about it a little bit in the last episode. Actually, it was Alan's tip of the week last episode if i recall correctly and um you know based on some work that alan and i are doing we've had to use um technologies like apache drill and as well presto was another one that we've been experimenting with and of of a whole set of technologies that we've been exploring with drill i think it's fair to say we both kind of fell in love with Apache drill.
Starting point is 00:13:08 So easy. So it started with, so, so my goal in, in this streaming session was I wanted Joe to fall in love with it as much as Alan and I have, because it is incredibly simple to, to, to set up and use. and yet you can do some really awesome stuff with it. And so what Joe and I did was we thought, okay, let's be related to everything that's going on in world news or whatnot.
Starting point is 00:13:42 We'll pull down some COVID data and see what we can explore using drill with it. And, you know, I mean, we weren't going at it from like a crazy data science kind of approach, um, in, in the amount of time that we spent on it. Cause more, it was just about like, Hey, look, here's some cool things that we can do a drill. And like, here's, here's things, how this work and going over the nuts and bolts of like, uh, what is columnar storage mean? And you know, what kind of efficiencies are there versus, cause, cause I bring up columnar storage. Cause we also, uh, talked about like parquet formats and, and whatnot, but you know, so we downloaded some data from Kaggle, explored that a little bit and
Starting point is 00:14:21 they were, and then one of the really cool things that i wanted to turn joe onto though was that you could take some other random data set that's you know there is no relation to it in terms of like something predefined but you could just download something else and also you know join that data and be able to do cool queries on it. So we downloaded a second data set that was just like, um, population count by country. Right. And then started doing cool metrics about like, well, I hate to say cool metrics because considering the topic of the, the data that we were looking at, but we were, we were trying to pull up like, okay, you know, considering the population density, what, what areas, what countries are worse in terms of COVID-19 in regards to population density,
Starting point is 00:15:14 right? So that way you're taking into consideration the landmass as well as the population count to figure out like, okay, here's the, here's the really bad spots, right? So, so you got them started on streaming and you couldn't stop the man because apparently you guys went for three hours. I didn't even know this happened. Yeah,
Starting point is 00:15:33 it's nothing, man. Three hours, nothing in stream land. I got to know that. Tell me true. I'll, what'd you think of streaming?
Starting point is 00:15:39 I mean, I had a blast. I can't wait. I can't wait to do the Apache dream, uh, patchy beam. Um, we'll, we'll have links to that, uh, by the way, I had a blast. I can't wait to do the Apache Dream. Apache Beam. We'll have links to that, by the way, because it's all up on YouTube.
Starting point is 00:15:53 We've been streaming on YouTube because it's a little bit more work-friendly than Twitch. And you can also just get to our YouTube channel at youtube.com slash codingblocks, and we'll have that link there. But yeah, it was a lot of fun. I don't know if we really described it, but Apache Drill is an open-source query engine where you essentially bring your own data storage which is something we've talked a lot about on past episodes no coincidence there that we're reading books that kind of align with the things that we're trying to get better at and and learned about but um the deal is you can bring a database and a csv file and a parquet file which is like a columnar oriented file format
Starting point is 00:16:23 and join these things all together in one standard SQL query. And it's got really nice SQL tools that you're dealing with, like limits and aggregates and group by and CTEs and other advanced features of SQL. And it just kind of works. You just kind of pop the stuff in there and boom. And it's not just this query thing that will query different data sources. It's what do they call it?
Starting point is 00:16:48 Ridiculously parallel or something like that. Embarrassingly parallel. Embarrassingly parallel. So basically, it's not just, hey, oh, cool. I can connect to some database over here and some file over here, right? This parquet file. It'll also parallelize that across a number of workers. So if you've got 10 workers out there, it actually knows how to do this directed acyclic graph type breakdown and figure out exactly what the most optimal way to go get that data
Starting point is 00:17:14 and then stitch it all back together is. And each worker goes off and does its own bit of work. And then it stitches it all back together up at the top so that you can query the terabytes, petabytes of data in seconds. And it's really crazy. So yeah, man, Apache Drill was a newfound love. And when I told, when we first started on this thing and I wasn't even part of the stream, but I told Outlaw, I was like, look, our mission is to actually investigate Presto.
Starting point is 00:17:41 But look, dude, we're going to put that on the back burner for right now because Apache Drill is going to make our life so much easier and we'll back our way into Presto afterwards. So yeah, really cool stuff. Yeah. And I also gave Joe an overview of the UI that comes with Drill. And we talked through the various uh tabs and the different pieces within each page of what's there and so yeah like i mean you're describing on this but like the visual the query visualization on it that you get on every query is like second
Starting point is 00:18:21 to none because even in a sq server, you have to like click a button to make sure that you get it if you want it. And then you take a hit for getting it. So you're like, well, I got to really want it so that I don't take that hit, you know, if I don't really need it. And then, you know, the fact that it's like, oh, what was that query I did yesterday?
Starting point is 00:18:42 You can't go back and see that in SQL server, but hey, in Drill, you can go back and see a history of all the queries that were there. And it's like, it's so awesome. Hey, so real quick too, Joe, I know you're about to say something. One of the other things too, is we had asked on the last episode, and I don't think we're going to wait until the survey says we're going to do that at some point, but we had said, hey, would you rather on YouTube or Twitch? And actually a lot of people overwhelmingly came back with YouTube because I think Mike said at the top is it's more work-friendly. Like Twitch is blocked at most jobs.
Starting point is 00:19:16 But also I guess just people are like already have an account there. Like I don't want to have to – and I already know the platform. I don't want to have to go learn another platform. So it was really interesting, right? Like it does seem like there's a divide between professional developers and people that are like more hardcore gamer type thing. Yeah. Yeah.
Starting point is 00:19:35 And you know, you asked what I thought about the, the live streaming thing. I mean, just to like circle back for a moment, you know, I did really super enjoy it. I do think that maybe in the particular case of the subject matter and like the tools that we were using, it wasn't in that particular case. So like pair programmer, like, you know, it wasn't like we were able to use the same, you know, terminal to execute commands on the command line or whatever. And so I did find it difficult personally to keep up with some of the conversation that was happening in the chat, as well as watch what Joe was doing, and also try to do stuff on my own screen to follow along and or figure out something like, oh, if there was a problem that we
Starting point is 00:20:25 ran into, like, Oh wait, what was the syntax for this query? Right. So that was the one part of it that was kind of like, there would be times during the course of the conversation where like, I kind of got out of sync with what was going on, you know? So, um, yeah, but, but that, that was, and maybe that would be different if it was like hey we're both using the same ide and we're doing a live code share session or uh you know there's just the one ide and that's it yeah i i don't know man maybe it would be different otherwise but i was curious joe like what was your takeaway from being like when you, when did you leave thinking like, Oh,
Starting point is 00:21:06 beam is the greatest thing ever. Or wait, you talking about drill? I mean, drill. Yeah. Yeah. That's what I mean.
Starting point is 00:21:16 Do you guys even know what you talked about all that on that particular stream? I'm just curious. Life is just a blur now, man. I don't know, man. I don't even leave my house anymore. What? So I think that you talked about drill.
Starting point is 00:21:28 So Joe, what did you think about it? Did you walk away with anything? Yeah, it was super awesome. Like if I had like a dollar for every time I like got some sort of spreadsheet or something that I took some time to import into a database and write some queries and send it in the email and somebody sent it back. And it's like, man, it would have been nice if I could just like dump that file somewhere and just immediately start querying
Starting point is 00:21:45 or just have those tools set up and be able to work with other people so we could just like quickly iterate there with that file, which is just really nice. Being able to join stuff all without having to like load data and have these kind of weird back and forth steps.
Starting point is 00:21:56 So yeah, it was just a really cool tool and I was excited to see it work, especially with the columnar stuff. And it was just a lot of fun on the stream too because like if you think about like all the stuff we went over, yeah, it was three hours,
Starting point is 00:22:05 but like in that time we were like, we looked at Kaggle, we downloaded data, we converted files to Parquet. We talked about what Parquet was. We got a drill set up. We looked at the UI. We did some stuff with Docker.
Starting point is 00:22:16 It's like, we covered like a lot of stuff. It was just cool. Like, I got to learn a couple of tips, even like, like with a commander, you know,
Starting point is 00:22:22 like just little tips like, Oh, did you know you could kind of, you know, use this key combination to just swap stuff and so um just a lot of stuff and of course the chat was fantastic definitely got to see uh some some people that uh had just great ideas and kind of helped us with stuff and was it um i think it was nico uh mentioned like a like a logical error we have we kept going over like monk uh monaco having like the same like a logical error we have we kept coming up with like monica monica having like the same like a like a really high um like a covet case and we're like what the heck is going on in monica but it turned out it was just a logical error though the way we queried and he called that out
Starting point is 00:22:55 oh okay this looks a lot more sense now yeah so that was good yes i love beam it was great do you still use commander? You still like Beam. It was really great. So who are you asking? Me? Yeah, yeah. Do you still use Commander? I still do. In Windows, that is my go-to. So here was the
Starting point is 00:23:18 tip that he was referring to. When you want to create a new... Let's say you already have one command prompt, for example, shell open, and you want to open up a new one, which inside of the same commander window would be a new tab, right? And how do you go about opening that? It depends on what I'm trying to do. If I just want another shell, then I control T, just like I would in a browser, and it'll open up a new tab. If I want to duplicate everything that I have, so like if I change the palette on it, if I want to be in the same directory when I start, I'll right-click on the tab and say duplicate. And then depending if I want a
Starting point is 00:24:06 different type of shell, I'll actually, so like, let's say that I have the default commander shell that's running, but I want to open up a PowerShell or I want to open up a Git Bash or something like that. Then I'll go down and hit the plus at the bottom right of the screen and then choose my options there. And then it also depends on whether or not I want to split it out to the right or to the top or to the bottom, and then I'll go through the plus. So it just depends on what I'm trying to do. Okay, so I just learned even new tips
Starting point is 00:24:32 because I didn't realize that you could control T and it would just create a new browser. But is it creating a new shell of whatever type you're currently in? So like if you were in Git Bash, and you control T, it yeah yeah so i believe if you're in bash and you hit control t i believe it opens up a new i could probably test it pops up a little window and it's like you can select so i think i actually did on the stream when you're like hey there's a better way
Starting point is 00:25:00 to do that because you have to kind of hit okay there's an extra click that way so i'll tell you right now well the way that i told i told joe that he didn't know and wasn't one of the ways you listed alan um but if you're in commander and let's say let's say you're using just a default vanilla commander install then on that plus menu that you mentioned right the very the very first entry in there which is going to be at the bottom of the list but it's going to have a one if i recall will be command prompt and then you can open up that menu and it'd have you know two options in there the first one will be a the one when i say first one the one that would have the number one by it would be uh an admin version command prompt. And then the one that would have a number two by it would be just a regular command prompt. And then, and then going back up a level in that menu, the one that
Starting point is 00:25:55 would have a number two would be PowerShell. And when you expand that sub menu, again, you'd have a one, the first item, you know, one would be an admin version of PowerShell. And then the one that would be marked as two would be just a regular PowerShell. So basically, you get the idea that like, the the one each sub menu for each command, each shell type, be it a command prompt, a PowerShell or get bash or whatever. Those things are going to be labeled one, two, three, for example. But inside of their sub menus, the first one will be the admin version of it. And the second one would be the not admin version. Right.
Starting point is 00:26:34 Right. So if I wanted to open up a new command prompt, then I shift to and that opens up the command command prompt and if i wanted a powershell instance a non-admin powershell it would be alt shift 4 okay so basically the way it works out is the alt shift odd numbers are the admins and the alt shift evens are the not admins yeah that's that's good. I've never done that. And to figure it out, you would just add, you know, a power of two to whatever number it is.
Starting point is 00:27:12 Because, you know, when you look in that menu, right? Well, I shouldn't say power of two, but, you know, you're going to add, you're going to keep adding two to whatever the last one was at, right? Yeah, that's really cool. So just so you know, if you do command or control T, like what I said, Joe was right. It pops up a little window, basically asking you, um, what type of, oops, what type of shell are you trying to open? And then you have the ability to say, split it to the right, split it to the bottom, whatever. Here's another tip. See, that's how we're talking about about commander so that talk that i did in london
Starting point is 00:27:46 one of the things and you guys have seen me do several of these streaming talks where you know i've got like six shell windows open right one showing what kafka is doing you know three or four of them showing what the streaming um processes are doing or whatever well when you're trying to show that on screen it takes a lot of time to open up a tab, split it to the right, open up another tab, split it to the bottom, right? Like do all that kind of stuff. There's a way in commander that you can go into settings and they have what are called tasks. If you go underneath startup and tasks, you can actually set up your own thing. So basically the bash, the PowerShell, all that stuff, all those commands are in that list. And so what I did is I set up my own task that was my KStreams task. And then that way, when I click that plus button, and I still
Starting point is 00:28:40 have it on mine, when I click that at the bottom, I can actually say, hey, I want to start up a KStreams thing. And it will open up a grid of six of those things, all with the settings that I wanted. So the directory I wanted them in, the display I wanted them in, and all that. So if you find yourself commonly opening up Commander and then cd over to your development directory you can actually set up a task that would be the shell that you want the directory you want the palette you want and that way you only ever have to do that and you're good to go that's really cool i just put a link to commander in our spreadsheet there and i'll have it in the show notes but one thing that's like misleading is they do talk about the alt shift number option that I just said,
Starting point is 00:29:29 but their documentation is misleading because they, according to their documentation, they're say, uh, all shift two would take you to, into a PowerShell, um, terminal,
Starting point is 00:29:39 but it doesn't, it takes you into a, a, um, non user, yeah, a non admin versionmin version of Command Prompt. So basically, you've got to manually add. You've got to manually do the math in your head on those menus
Starting point is 00:29:54 to know what number is going to be what number. But like I said, if you're using the default, it'll work out the way I described. But yeah, Commander is pretty awesome. I love Commander. All right, yeah. I learned some even more stuff there. So cool. And the other thing I want to hit on is just the other kinds of streaming.
Starting point is 00:30:11 So I'll just focus around streaming. I've been doing code challenges. There's LeetCode, which is now my new favorite site for doing code challenges. Code Wars used to be my favorite, but now it's LeetCode. You do have to sign up before you can see any problems. And it's the same kind of deal.
Starting point is 00:30:26 They have a premium plan where you can pay and get better results and stuff. But my favorite thing about LeetCode is that after you solve the problem, you can see how well you did in terms of runtime compared to other people in your language. And you can actually click. And Ryan Kizogo showed me this. You can click on your item in the bar chart and see like a sample of that solution so for example like say you have a like a middle of the road solution when you're done it'll show you like here's your runtime and here's how much memory you use compared to other solutions and you can
Starting point is 00:30:54 click other bars in the chart so you can go all the way to the left say show me the best solution and we'll show you like a sample of someone else's code that ran faster or you can go the other and say let me see one that's slower so it's just a really cool way of learning. And so that's been really cool. I've been doing a 30-day challenge there on day 23 of it, which I still need to do tonight. So I'll be doing that after this recording. Hey, wait, you don't have the link up here, do you?
Starting point is 00:31:19 No, I don't. You should get that in there. Not until LeetCode. All right, yeah, I will. LeetCode would just be L-E-E-T-Code.com. Yep. But Code Wars did something similar, though, where you could see, like, here is the best. Like, once you solved it, right, you could see, like, here's the best or here's the average solution.
Starting point is 00:31:39 So the way they did that, though, is after you were done, you could see other people's, like, there was, like, a forum. And people could kind of vote stuff up. And so people would say, this has the best runtime, or this was best practices, this is a good, clean example. So they had, like, different tags that people would get. So it was community-driven, and people did a really great job of maintaining that, which was really cool. But there's something just kind of cool about actually seeing those kind of stats and seeing, like, oh, my solution is better than 77 of the other percent of the other of you know javascript solutions hey so tell me this is there any reason why you like leet code more than code wars yeah it's because of that specifically and the um the problems that they've got there are
Starting point is 00:32:17 uh on average much harder which uh you know i have kind of mixed feelings about it. So like a medium difficulty problem on leak code is probably like a level four or so on, uh, on code wars and code wars goes up. I think it goes up to like eight or so, or, you know, bigger is actually easier, but,
Starting point is 00:32:37 uh, there's a lot more variance. So like, if you feel like kind of taking it easy, you can do that. But on leak code, like even some of the easies are not too easy so it's not as beginner friendly i mean but uh the interface is really slick yeah because in in code
Starting point is 00:32:51 wars they use the was it i'm not sure if i'm pronouncing this right kaiju yeah because it was all based on like a it was like a uh a martial arts type of terminology that was used for it so like your your practice sessions were like katas, I think if I remember right. Yep. And, and the levels that you were trying to work towards were kayus. So you started out on like a high number of kayu and you were trying to work
Starting point is 00:33:15 your way to level one kayu, right. Or assuming I'm pronouncing that right. I wish I had more time because anytime I see Joe doing things like this, I'm like, man, I'd really like to work some of these challenges. But then on the flip side,
Starting point is 00:33:31 when we get to the topics that I'll be talking about tonight, it's like, man, do I spend time trying to do programmer centric heavy things? Or do I spend time trying to figure out the things that, that I both need and want to figure out for, for what I need to do to push forward with, with other things I got going. Right. And I don't know, that's all, that's always challenging to me because it's, there's only so
Starting point is 00:33:55 much time in a day. Right. Yeah. I'm talking to you about it. You know, I'm doing the 30 day challenge where a day 23 and like, uh, I've been recording all of them. Right. So I can see that there's days when I spent two hours or three hours even one day and some days when i spent 20 minutes but you still look back at the end of the month like wow i'm gonna spend like 40 hours on this this month that's a whole work week did i get 40 hours with the value out of it and you know it's like at some point it does become kind of tiring you get tired of like every day it's like oh i gotta go do the hour worth of you know hard thinking and programming so uh you know i it's definitely a trade-off there and um i definitely am not going to do another 30 days in a row of leetco challenges for sure on top of
Starting point is 00:34:33 this but i do think there's value and kind of staying up on that stuff because um definitely if i look back at like the first couple days where i just kind of had started doing them again i'm so much more and i'm in i'm swole with that skill right now so it's so much easier for me to hop in and solve a problem quickly than it was when i first started even a month ago and like that's stuff that i've done before plenty of times so it's not like uh it was a new thing to me but just hadn't done it in a while so i was rusty hey so tell me this just out of curiosity and i'm sure other people will find this interesting. Do you find that doing these challenges is more math centric or is it more data structure centric type of challenges?
Starting point is 00:35:14 Because I mean, you know, I've seen interviews where they just want to see how well you think mathematically, which kind of stinks. And then there's other like interview type things to where it's more like, hey, does this person, are they familiar with the different types of data structures, right? Arrays, lists, hash tables, whatever. Like what do you find to be, is it a balance? Is it heavier on one side? Definitely data structures.
Starting point is 00:35:40 Like as far as the math goes, there's definitely basic addition, math, division, math, plus uh plus minus and modulus like that's it there's no calculus there's no tangent there's no cosine there's not like none of that stuff no uh no fancy algebra you know the most thing i have to do is like if you've got an array and like uh that represents a tree you need to figure out the parent or the children you might have have to figure out, and the formula will be like 2 times n plus 1 or something. So really kind of minor, which is still, I know, rough for some people, but I recommend having it kind of in your back pocket in case you ever need to pull it out. So basically what you're saying is that series that we did
Starting point is 00:36:20 with the, oh man, Outlaw, I know you're going to know the name of the book. The something. How to be a programmer. Say, which was it? How to be a programmer, Robert L. Reed. No, not that one. The other one, the one that was basically the handbook.
Starting point is 00:36:35 They're the guide for people that didn't have a background. Oh yeah, imposter's handbook, yeah. Imposter, yeah, the imposter's handbook. So what you're saying then is polishing back up on those graph chapters and the various different data structures and stuff. That's probably the biggest help for doing this kind of stuff. That is big. But also, LeetCode, their mediums will get into dynamic programming problems, which is, I think, the toughest kind of programming challenge. Because it's usually ones where there's, there's some sort of, like, recursive
Starting point is 00:37:06 number of steps, but if you actually did it recursively, it would just take too long. So you have to, like, figure out how to reduce the problem to some sort of, like, minimum set of operations, and you almost, like, keep a table that represents. So there's, like, kind of a pattern there. But it just can be so hard to figure out that pattern. And they call
Starting point is 00:37:22 those mediums in some cases, which I would never call a dynamic, any dynamic problem a medium. You were talking about, like, Alan, you were talking about just finding the time to do this kind of thing. And I'm so there with you where, you know, it's like, how do you balance these things, right? Because you have, I do have personal interest to do, like, coding challenges, but's like, how do you balance these things? Right. Cause you have, I do have personal interest to do like coding challenges, but I never find the time. Cause like, you know, I have work, I like to do stuff for the show. And then I like to try to find time to like go mountain biking or play guitar or something like that. So it was like, well, how much more time do
Starting point is 00:38:00 I have to devote to writing code? But there have been like one of the challenges, one thing that I've wanted to like code for a long time just for the fun of it is Conway's Game of Life. Have you heard of that? I mean it's a well-known kind of thing now. I forget how many decades old it is. And it's kind of sad that given current state affairs. Cause the guy who invented it, um, what's his name? John Horton Conway died,
Starting point is 00:38:30 uh, a couple of weeks ago because of COVID compilation complications. Um, but yeah, I, you know, that's just an example of like something that always comes to mind. Like,
Starting point is 00:38:42 you know, if I had, you know, some free time, I'm like, Oh, you know what? I want to like code up a Conway's Game of Life.
Starting point is 00:38:47 You know what's funny about this? I've seen you do it outlaw at conferences we go to. I find that I get more time to actually try things out when I go to a conference. We had all gone to the one here in Atlanta, and I can't think of Connect Tech or whatever it was. And I mean, dude, you sat there and did like a view app in a couple hours one day. Because when you're at those things, you're hyper-focused on learning what the things are,
Starting point is 00:39:20 and so you have the time to sit there and put your head down and do it, right? Whereas it seems like, like you said, work, uh, you know, side hobbies, family, there's just so many things that eat up time that it's like, well, I mean, it's now 11 o'clock at night. I suppose I could go sit down and do a problem, but it would be really hard to make my brain want to do this. Yeah. And that's the way, that's part of where I struggle with it too, is that like, it actually, it actually, I think it feeds into the imposter syndrome because it makes me feel a little guilty if I don't. But then there are times where it's like, well, I want to like learn how to play guitar better. There's a song.
Starting point is 00:39:57 I want to learn how to play this song or I want to learn how to play it better or whatever you know and it's like i i want there to be other things that i know how to do besides just pick up a computer and bang out code on it you know i mean so like but if but i do get this guilt when i don't you know yeah was that weird though no i only do it because i feel guilty. That's the only reason I do anything, actually. That's hilarious. Yeah. So, yeah, I don't recommend solving challenges like this every day. Definitely not. You should enjoy your life and get well-rested and attack the problems that you actually need to solve in your life that are important for making your life better. That's way more important than solving coding challenges.
Starting point is 00:40:41 But I'm incapable of doing any of that stuff, so I'm just working on code challenges. But this came at a good time, too, though, right? You're locked up in your house for the most part, so it was like, well, I can't go do any of these other things to make my life better. Yeah, and so, strangely, streaming these programming challenges has been my social interaction, so seeing, like, Abdul and Vic
Starting point is 00:41:00 and Greg and Nico and the people who pop by the channel, like, that's, like, that's 100% of my social interaction lately. That's hilarious. Mixing my peanut butter and my chocolate. Yeah. Alright.
Starting point is 00:41:17 Did you mention this one though? The interview cake? Did we talk about that yet? Yeah, I was just going to throw a link in here for maybe I should put this in resources. It would be like just for some code interview tips that I like from Coding Interview. They've got a really big in-depth write-up that has like really good tips for if you have like an interview, which is kind of like these coding challenges. But it's really long, which is – you know, it's good.
Starting point is 00:41:38 You should read it. But the way I kind of have been solving the problem, like I keep trying to keep remembering to do when I'm having a tough problem is basically just remember to thoroughly read the problem, solve it manually by hand, make sure that whatever rules you come up to code actually works when you walk through an example by hand
Starting point is 00:41:58 and to test small chunks because it's much easier to find a bug in one line of code than it is in 40. So that's my little thing is RST. Read, solve manually, and test. Man, we actually covered that exact same – I think we even called it a recipe back when we talked about interviewing tips. This has been a couple of years back.
Starting point is 00:42:23 But those were almost identical to the ones because i always remember that was like stop trying to write code right off the bat figure out what you're trying to do put it down in words put it down in a script on a piece of paper you know whiteboard it somehow and then go figure out how to solve it with code man we could have just done a whole episode just on this one article that you sent here, man. There's a lot of good tips in here. Maybe you'll do it next time.
Starting point is 00:42:52 They're just talking about like, hey, even at the start, just chit-chat with them, like a pro, nerd out about stuff. This site is super awesome. Although I don't know if you guys ever looked at Interview Cake, but it's a website that's got a bunch of programming challenges but they also have like the background info so you can kind of like click on a link and go read more about it but here's the thing that they tell you to do that's different than all the other sites interview cake encourages you to solve
Starting point is 00:43:15 all their programs with a notebook so you don't have to code it in the editor they literally kind of guide you through actually solving it by hand, like as if you were doing it on a whiteboard, not a computer. So they don't have this kind of big IDE integration like LeetCode has or CodeWars has or something like that. It's all geared towards like, no, you do this pencil and paper, and then you can check your answer and see if you've got the right algorithm. And they're less cared about if you're off by one or whatever.
Starting point is 00:43:42 It's all about figuring out the solution, which is cool. Pseudocode. Yeah. Yeah. Huh. That's cool. about figuring out the solution, which is cool. Pseudocode. Yeah. Yeah. That's cool. I like it. Yeah. Maybe we'll do that here in an upcoming episode.
Starting point is 00:43:52 It's a great topic. Heck yeah, man. Yeah. I like their advice about don't be boring. So I guess I'm up to creak. Oh, please. Please. Yeah. So that's pretty Oh, please. Please. Yes, that's pretty cool, man.
Starting point is 00:44:10 Yeah, so I've been happy with that. But hey, so it turns out I did a little too good last time. I asked y'all to leave a review. I did a little whisper whisper, a little secret, and we got so many great reviews. Thank you so much. But now the problem is Outlaw and Alan want me to make up for all the times I did really crappy at the bag here. So I got to ask you again to bail me out and leave us that wonderful six-star review. I know it's a pain in the butt, but we try to make it easy for you. If you go to codingbox.net slash review, we got some links there.
Starting point is 00:44:41 I know it's annoying and that you know that's just that's the world we live in it's annoying and if you could do that we'd really appreciate it because uh outlaw and alan are giving me that look i do love it though that several of the views were like okay i've been sitting here for like two or three years meaning to write a review and it's awesome like it's still like we see it's like oh man that's killer so you know I think Joe did an alright job last time I just want to know what's this
Starting point is 00:45:10 whisper conversation what was that you don't remember that don't worry about it you don't listen to the episodes after you record it he does like 12 times but that's fine alright so with that, we will head into my
Starting point is 00:45:28 favorite portion of the show. Survey says... Alright. So, a few episodes back, this one is going to be so super fun. We asked... I can't wait. Which fast food restaurant makes the
Starting point is 00:45:44 better fries? And your choices were Arby's. We're going in alphabetical order, as you would. Arby's, Burger King, Checkers, Chick-fil-A, Hardee's, In-N-Out, Jack in the Box, McDonald's, Popeye's, Steak and Shake, and Wendy's. All right. So let's say that Joe goes first. Okay.
Starting point is 00:46:15 And he's really good at math. So all those leap code questions that he's had with asking him all the math that he's been practicing, you heard him say he's swole with that muscle is strong now. So here we go. So what's your pick? And by what percentage do you think it won? Well, I'm doing a little math here. We got some crossy signs and some parentheses.
Starting point is 00:46:39 And I'm going to go with McDonald's French fries with 85%. 85%? Man, that is commitment. It happened. I'm loving it. 85% of the vote for McDonald's. All right. And if you're going to say I'm loving it, don't you have to kind of sing it?
Starting point is 00:47:00 I'm McLoving it. Yep. Wow. Okay. 85%. So I can't lose on the percentage. I'm pretty certain. But man, so I got to tell you a little bit of my thought process here. So I've seen maps of favorite fast food chains across America and Chick-fil-A is one like 48 of the 50 states, right? So that gives me pause here because Chick-fil-A french fries are not the best unless they just came out of the fryer and they've been salted properly, right?
Starting point is 00:47:34 Never happens. And it almost never happens. Like I can, you know, it's a 30% hit on that. So I'm trying to think where people would go next. And I hate to say McDonald's because I just, I don't want to. So I'm going to go with Arby's, Arby's curly fries, and I'm going to say 25%. All right. So we have Joe with McDonald's at 85% of the vote and Alan with Arby's at 25% of the vote.
Starting point is 00:48:16 Do I have that correct? That is correct. And we got to apologize to all the international listeners that don't have all of these restaurants within like a quarter mile of your house hey wait in france there were five guys and there were mcdonald's i saw those oh we didn't even put five guys in there oh they're good too all right well the winner is neither one of us. Nobody won the answer. Nobody...
Starting point is 00:48:47 Because of my percentage. Okay. So here's the deal. One of you did pick the right company. That's Joe. And it was Joe. Yeah, yeah. So McDonald's was the winner but with uh just under
Starting point is 00:49:08 34 of the vote okay so that's a third of people which i'm like okay i mean take me back 10 20 years ago i'm right on board with you you you got it you nailed it mcdonald's what are you wendy's man? But now you go to a McDonald's and it's like they've forgotten what they were good at. And they just give you like, here's some random potato crap. Some lippy. Yeah. It's not good at all anymore like it used to be. How are you going to talk smack about McDonald's whenald's when steak and shake is on this list i see i mean you know all right what was number two tell me it
Starting point is 00:49:53 wasn't chick-fil-a that's gonna upset me a little bit then i guess we're done no was it of course of course it had to be chick-fil-a, because Chick-fil-A fries are awesome! No, dude. No, I completely disagree. And the only reason why they're number two on this list is because that's where everybody goes for fast food. Like, they forgot what good French fries taste like. No. That's really what it is.
Starting point is 00:50:21 No, listen. Listen here. what it is no listen listen here it's basically it's like a a mechanism for bringing condiment into your face right because to just take a ketchup bottle or a mustard bottle or whatever your condiment of choice is and you just like squirt it into your mouth that's unacceptable in society and i'm speaking from experience so yeah chick plays the only fast food to actually ask you if you want condiments and like they really want to know if you want to have condiments and if you say yes they will actually give it to you you know what's so awesome is i can see because i've seen outlaw with french fries right like i might have mentioned this years ago on the show
Starting point is 00:51:00 like we're in a barbecue joint and outlaw lines up his French fries on the plate, like side by side, all the way across the line up. And he salts them. Right. And he's like, what, what? Like, how else are you going to get it on there? Distributed properly. Okay, dude. So now I can see him quadranting his plate with four Chick-fil-A, you know,
Starting point is 00:51:24 waffle fries of the size of his hands. He can salt them properly. I'm just trying to make sure there's an even distribution of condiment across the fries. I don't understand why you find this so humorous. To me, it's perfectly logical. It makes all the sense in the world. I can't believe other people don't do this. Why would you just pick randomness as a way of getting your condiment of choice
Starting point is 00:51:50 onto your fries? That's all. No, no, no. Hold on. I think it's perfect. Hold on.
Starting point is 00:51:55 Do you guys like cool ranch chips? Cool ranch Doritos? Yeah. Yeah, sure. Okay. So tell me this isn't true. Like every chip you take a bite out of it's almost like this
Starting point is 00:52:08 this joy building up for that time that you reach in the bag and you pull out that one that you can't even see chip because there's so much spice on it right yeah that is that is the joy of randomness all right that is the joy of pulling the perfect chip that you've been waiting for the entire time. Here's a tip of the week for you. Because if I'm going to eat Cool Ranch Doritos, the only Cool Ranch Doritos I'm going to eat are the ones that you're describing. So you dump the entire bag out? I really just want the Cool Ranch dust. If I could buy that alone, I would.
Starting point is 00:52:49 But unfortunately, they don't sell it that way. So the way that you have to get this thing is through a chip. But have you not seen now – I don't know when they introduced this, how long this has been a thing now but they have the the version of the bag where in like the upper right hand corner i forget the exact wording of it but it's like now with more uh cool ranch flavor on it and so if you get that bag then there's more chips that are like that right where they're just like super coated in it and you in like you just dig through that and that is the only and then throw the rest of the bag away because you're done dude that would be amazing but my tongue
Starting point is 00:53:28 would be raw it's oh yeah it does it messes you up man scrapes off it does yeah what the cool ranch dust scrapes off something on your like burns your tongue yeah it's like sharp it's like sand yeah it's so good so it's amazing so that that's beautiful
Starting point is 00:53:42 that was awesome yeah yeah i just bought some some cool ranch dust did you really my collection is my cheese i'm sure it is somebody's got to have done it right okay well i know what's going to be on my developer uh build this year nobody cares about the cheese dust anymore it's's all about the cool ranch dust. Yeah. Yeah. You remember though, like it used to be like when you were a kid and you would find those particular potato chips,
Starting point is 00:54:10 it was always like an accident. Like it was a manufacturing accident, but you loved them. Like, like especially like, remember the ones where it would be like with cheese and it would be like, you ever get the one where it was like really coated on, like there was a serious manufacturing problem and it would just be like an
Starting point is 00:54:24 inch thick of cheese on top of this potato chip. you're like oh my god i'm gonna die but i'm gonna eat it yeah yep yeah so uh as i was saying chick-fil-a with 19 of the vote which i mean just makes sense it should have been number one, really. And then number three? I mean, it shouldn't be, but it is Arby's, which I take issue with. There's no way it should have been Arby's. Totally should have been Wendy's. They are good. It totally should have been Wendy's as the number three. Actually, Chick-fil-A should have been number one.
Starting point is 00:55:05 Wendy's should have been number two because ever since they introduced the version where they have some of the skin still on the- So it tastes like dirt? Yes. You don't like potato skins? What is wrong with you? And then they used the sea salt to salt it with?
Starting point is 00:55:20 Ever since they switched to that years ago? I mean- The sea salt's good. That's where they overtook. That where wendy's overtook mcdonald's yeah i agree with that sometimes there's a little bit too much potato but let me tell you please let steak and shake be last and you know i apologize if you like steak and shake because you know i know some people do but you gotta be it's like it's it's the PHP of French fries. I'm sorry. It's okay to like it.
Starting point is 00:55:46 I know you can do amazing things with it, but you're going to get some crap for it. Yeah, I know. There goes the one-star review. I take issue with that. You've got to be used to people making fun of you. I'm sorry. Hold on. For all the PHP developers listening, I will defend you here and support you here because
Starting point is 00:56:03 there is no way that you can say that, that steak and shake is the PHP of French fries because it does nothing to help SQL injection attacks. Oh gosh. And if you're a PHP program and just know that I love you. And we're just kidding because it's, it was unfortunately you're the, you're the,
Starting point is 00:56:22 the, the target of all our jokes. Yeah. We did get a one-star review from one episode like 60 episodes ago where we made some jokes about PHP. And it was the first time some person had listened to it. It just went off on us. And it was like, well, I guess you didn't get our humor. What are you going to do? I feel like I'm going to have to include a link to that Reddit post to explain my PHP joke because somebody is going to be like – think that I made it up that it was like a SQL injection attack thing for PHP.
Starting point is 00:56:57 But that's actually a reference to another joke. Just repeating it. We didn't make the jokes. That's right. So what is today's survey, sir? So today's survey is with all these stay-at-home orders, are you staying sane during these stay-at-home orders? Yes. Or so the voices tell me.
Starting point is 00:57:17 Or no. But was I ever sane? I love it. Wait, did you say that i just imagine it i think the only reason outlaw did a two answer question though was to hear joe's math again like i'm pretty certain oh i didn't even think about that from now on they're all two answer questions. That's it. I just can't wait. It's going to be like 47%. And I can still win with that.
Starting point is 00:58:01 Technicalities. Alright, so the things that i've been thinking about lately actually i'm gonna i'm gonna reverse this so first is i ended up picking up a horizon 3900x cpu which is super exciting because you know like when you open up task manager i swear this is one of the first things i did when i popped this thing in this open up task manager and i went over cpus and i right clicked i said show me the logical cores right because i don't want to just see this one graph i need to see them all yep and dude there's just so many little boxes on the screen it is it is crazy exciting to look at that it never mind that I wasn't taxing any of them.
Starting point is 00:58:45 I just wanted to see them all, right? So that's one thing. Are they all made of tiki-taki and they all look just the same? Yep, yep. And I have to tell you why I actually did this. And this is sort of embarrassing, so it kind of hurts to even say this. So when I built my rig a couple of years ago now, I think it's been two years ago because it was the 7 series Intels or 7th generation Intel i7. So it was a 7700K, right?
Starting point is 00:59:13 Well, I don't remember how much time I spent putting this thing in the case, wrapping all the cables around, getting everything perfect. And I finally get down to the processor and I'm like, I want this thing in here and I want to turn it on. Right. So I put it in there. I don't pay attention to where the notches line up. Hold up. So I pull.
Starting point is 00:59:31 Oh, go ahead. Finish this last thought. So I don't pay attention to it. Look like it's not in there pretty good. And so I pull the lever and it doesn't go the way that it's supposed to go. And I'm like, oh, that's not good. Right. And so I pick it up and I look at it and I look down and I'm like, oh man. And so here's the thing. I don't
Starting point is 00:59:52 know if you guys remember. So we've all been building computers for a few years, right? It used to be all the processors had the pins on the processors. Yes. They were amazing when they did that because they made the most amazing beard scratchers when you would change processors. You had like a thousand little pins. It was so awesome. Wow. So that's not the way the i7-7700K
Starting point is 01:00:16 was. The pins are in the motherboard, right? It's like that on all modern processors, though. Say what? It's like that on all modern processors for the last several years. The Ryzen's aren't. The Ryzen's are the best processors. Sorry.
Starting point is 01:00:31 All of the Intel processors for the last, what, decade or more? I mean, it's been a while. Yeah, it's been a while. But, so here's the thing, right? Like, I looked down at the motherboard, and these things are tiny, right? Like, you know when you're looking at processors and all these like they've their their manufacturing process got down to 14 you know nanometer and all that kind of stuff right like these things are itty-bitty well i looked down at the motherboard
Starting point is 01:00:55 and i could see that something doesn't look right and in the pens on the motherboard i can't see what to fix but i can see that it doesn't look right. And so I call my wife in who has Eagle Vision and I'm like, yo, can you try and do something with that? Because I really don't want to have to go buy another $200 motherboard because I was impatient. And worse than that, I didn't want to have to take it all back apart again. I probably would have showed off the $200 just to not have to deal with it and not have to worry about it. But I didn't want to have to go through it all again. So, at any rate, long story short, she got in there and she tried to do what she could with it.
Starting point is 01:01:35 But we didn't really have any good tools or anything to be able to do that with. And so, I was like, all right, well, we'll just see how this goes down. And I put the processors in it. And everything kind of worked fine. Well, recently, I don't know if there was some update to Windows. I don't know if there were some programs I had on my computer, something addressing that portion of the CPU that was hitting that off pin that was causing it to just crash. And when I say crash, I'm not talking about, oh, we're shutting down. I'm talking about the power would shut off and it would be gone.
Starting point is 01:02:10 And I'd be like, well, what happened? I'd turn it on, look through the event view, and it's like, hey, we shut down improperly. I'm like, no kidding. Like, what happened, right? Yeah, it was Windows patch 1807 that uses pin 132. Right? No, 1032. But so, at any rate, that's the long story of it, right?
Starting point is 01:02:31 You can't see the number on it. You don't know which number it was. No, I really don't know which number it was. Man. So all that, like I said, it's embarrassing because I usually don't get in that big of a hurry when I'm doing things, especially like that, where I know that I have, you know, a freaking $500 component sitting on top of a $200 component. So embarrassing, didn't want to admit it at the time, but it all ran fine. And recently it stopped and I was just like, man, and I got my wife again to come look at it. We got better tweezers and stuff now.
Starting point is 01:03:03 And she's like, I can't get my arms down in here to work on it. And I told her, I'm like, look, if I pull this motherboard, I'm going to get another one. I'm not getting back in here and putting this all back together, hoping that it's going to work. Right. So my first option, just so you know, is I was going to be like, hey, why don't I just go find the same motherboard and buy it? Dude, that same motherboard used was over $300. And I was like, no. Why would that thought even cross your mind?
Starting point is 01:03:35 Why would you not immediately jump to, I'll get the… If I can get it for $100, I'd do it, right? That's kind of what I was thinking. Like, the thing's two and a half years old now. Maybe there's one laying around that people are just try to get rid of. No. Instead, the price went up by, you know, 100 percent. And it was like, OK, yeah, I'm not doing this. Yeah. So then it was like, all right, well, I got all the other stuff. I'm just going to go to Ryzen. So at any rate, that's how I ended up there. And so far it's been glorious. But so before this call started,
Starting point is 01:04:03 Outlaw's like, go ahead. You have a finger up. Okay. Well, hold on. Outlaw's like what? Go ahead. Okay. So right now I'm using my gigabyte laptop to do the Zoom call and do everything else here, right? And I even said at the beginning of the call, I still love this gigabyte. It does everything I want. It does it well. Minus being able to do the Windows Zoom thing that at the conference really messed me up. But other than that, I love this thing.
Starting point is 01:04:34 But he asked me, why aren't you using that monster desktop right there? And here's what I'll tell you. The 3900X amazing, right? Like it hasn't broken a sweat. Can't make it slow down whatever but what does stink is i pulled that noctua or i've heard some people say noctua i call it a noctua right that cpu cooler i pulled it off of my i7 the brackets for the amd it didn't come with AM4 socket brackets.
Starting point is 01:05:09 So I wasn't able to put that Noctua on the CPU. But there's been all kinds of talk about, hey, the 3900X ships with this Wraith Prism cooler, which is absolutely gorgeous. Outlaw, you would love the way it looks. It has RGBs all over this thing. It's beautiful. I'm sold. I'll go. It has RGBs all over this thing. It's beautiful. I'm sold. I'm going to buy one tomorrow.
Starting point is 01:05:28 Here's the thing. And this is why I bought the Noctua in the first place. I could be cruising along, not doing much of anything. You hear this thing go. And I'm like, what? He just deafened everybody. What was that? Right.
Starting point is 01:05:46 And I'm like, wait, I was on a web page. Why is that thing spinning up like it's working? Have you seen some JavaScript apps? Dude. But here's the thing, right? Like, especially for recording, this is why I'm so hypersensitive to my computers being dead silent. Like, right now, my laptop, you can't hear it. My desktop, when I had that Noctua in it, you can't hear it. Like you'd have to stick your ear down next to the holes on the computer to
Starting point is 01:06:11 hear it. And I can't be doing a recording like this and half the thing halfway through. So, so I did, however, and this is a tip for anybody else that has uh noctuous coolers and if you upgrade your cpu or whatever you want to reuse that thing you can actually buy the bracket so i was able to go on amazon buy the actual mounting brackets for like seven bucks and i'll be able to reuse that cooler on my amd i just i haven't had a chance to put it together yet okay so i got three questions number one is you're saying that that that the cpu cooler that you bought didn't originally come with the amd uh mounting bracket it did it had amd mounting brackets but it was for sockets am2 am3 and i forget whatever else the am4 wasn't out yet and it's just a little bit wider than the am3
Starting point is 01:07:00 that makes sense yep okay number, what kind of madman puts the machine together, like, wires everything up and doesn't, like, first just connect everything to make sure everything's working properly before bothering to, like, do clean wiring? Uh, yeah,
Starting point is 01:07:21 Joe's raising his hand, I'm raising my hand, like, dude, look, it's perfection the first time except for bending the pins no no no i mean like i've showed you pictures you've seen my build i think in terms of perfection that's that's there that's like ultra clean i do it all before and mine's glass on every side so i had to make make it clean. Yeah, dude. But I at least put it together, make sure the thing fits, boots, whatever, and then I will do the wiring, make the wiring clean. I didn't have problems until recently. So this thing's been running for a year and a half, almost two years,
Starting point is 01:08:01 and I had no problems. But it's just been lately that something changed that's using those addresses in the CPU that caused it. So yeah, everything actually did boot up back then. Yeah, except now you put it on a new motherboard. I still would have done it. Yeah, no, I've always done it that way. For whatever reason, it usually bites me, right?
Starting point is 01:08:24 Because I'll be like oh man i didn't get that a thing in there i didn't connect that or whatever and then i have to go back and do it but okay and then you had a third one so fine so number three is you have this new machine this new awesome you know machine when are we playing overwatch oh i can make that happen i'll buy it because i'm just saying right now that's another reason for you to get on slack because you get on that gaming channel we've been playing with everybody working from home and staying home we've been playing a lot of overwatch lately that's's pretty awesome. And so along these same notes, one of the things that I wanted to bring up too,
Starting point is 01:09:11 AMD is killing it lately. Yeah, they really are. And here's the thing. So they're about to come out with the, I guess, the fourth generation of Ryzen stuff on the desktop. Well, they're also releasing their fourth generation Ryzen stuff in laptops. And these things are killing it. They have eight core two-thread CPUs now coming out.
Starting point is 01:09:39 So you got 16, you know, logical cores hitting laptops. They're the 4800H and the 4900H. And these things are competing with some desktop type specs, which is absolutely nuts. And here's the crazy part is they haven't gone into the high end of laptop costs. We're talking mid-range costs with high-end laptop specs, basically. So these 4800H, 4900H, they're what they call APUs, so not a CPU. They're accelerated processing units, and it combines a CPU and a graphics chip. However, these things are also shipping with things like GTX 20 or RTX 2060s and other, you know, discrete graphics chips. So at any rate, if you're in the market for a new laptop,
Starting point is 01:10:40 wait probably a couple of months because a lot of these things are going to be hitting. And AMD is absolutely giving Intel all they can handle with this stuff at price points that are even better. Yeah. I was actually wondering, with everything that's going on, is it even a good time to buy a laptop this year? Because didn't all of this started right at around the time CES was supposed to kick off, wasn't it? Yep. It got canceled. Right. So I don't even know, like I haven't, not that I've been looking, but I haven't really seen a lot of, uh, you know, reviews about like, Hey, this is the thing you got to buy this year or whatever, you know, but I don't know, maybe it's just cause I haven't been paying attention to it. Yeah. I mean, here's the crazy part, right? Like, I don't know if you guys have ever walked through Best Buy and looked at, like, laptops or whatever.
Starting point is 01:11:29 All the time. It's the only reason why you go to Best Buy. Yeah, exactly. Like, I don't need one, don't want one, but I'm going to go look at them. But here's the thing. All the Intel processor ones would be the ones that are sitting in the primo spots, right? Like, it's like if you walk up to a car lot, all the prettiest cars are going to be in the front. And then all the stuff that, you know, other people might want,
Starting point is 01:11:49 it's going to be tucked away in the back. That was AMD forever, right? Like, it was always on the budget shelf over there where, you know, maybe things were plugged in properly. Yeah. But now, like, I believe it. Asus is actually putting several of their high end ones up there and they're kind of getting featured spots in, in their showrooms and their showcases and that kind of stuff.
Starting point is 01:12:16 So it's a, it's looking like a really good time coming up here in the next month or two. If you're looking for a laptop and you want to get good, a good value for something that will last a long time, AMD is no longer that thing that a year in, you're going to be like, dude, it won't even boot anymore,
Starting point is 01:12:32 right? Like it takes 20 minutes to do anything. It'll actually be something that will perform on par with an I seven or an I nine right now, which they're comparing it with in a laptop form, which is amazing. Okay. I'm in as long as the trackpad is centered to the keyboard. I don't even know how you can say that. I've got a brand new Mac where the light,
Starting point is 01:12:56 where the trackpad is centered to the chassis. It's as wide as the freaking laptop. Yes. But here's the thing. Here's the thing. Like I was about to say, one, I don't need a num pad on a laptop, which is one thing that Apple got right. So now that means that you only have the, what is it, the 84 key or whatever that you have for the rest of the keyboard. And then you center. So obviously that's going to be centered,
Starting point is 01:13:22 but I guess I should not assume this can be obvious. So obviously that's going to be centered. But I guess I should not assume this can be obvious. So center that keyboard. And then center the trackpad to the keyboard. Because these ones where it's like, okay, they're going to squeeze in a numpad on it that I don't need. So now the keyboard is shifted to the left of the laptop. And then they're going to have a trackpad that's now shifted or too big. And so it's like,
Starting point is 01:13:52 maybe it's center of the chassis while you have this 104 keyboard on it. So now like your right palm sits entirely on it. That was the most depressing thing because there was the MSI laptop that came out last year that you and I both were drooling over. The GS65.
Starting point is 01:14:09 Yep. All the way up until I went, of course, to a Best Buy to get some keyboard time with it to see how well I liked it. And within like the first five minutes of typing on this thing, I'm like, this is awful because it would pick up my, because I had nowhere else to put my wrist except on the stupid track pad. And so then every time I'm typing, it would like suddenly move the, the mouse or, or the, you know, whatever window had the, um, uh, focus, it would change it because it was picking up those as mouse clicks as I'm trying to type. And I'm like, forget it. This is done. I will never buy one of these. Yeah. They definitely haven't gotten it perfect yet. Most of the companies haven't. And that brings up something. So we have these conversations in Slack all the time, by the way.
Starting point is 01:15:02 Like if you go into our gear channel over there, there are a bunch of people that are hyper opinionated about their, about their hardware and stuff, but some of them are right. And some of them are wrong. Yeah, true. So the new MacBook pro, right. As, as somebody that uses one for work now, I can say, here's the deal, right? $3,300 and you basically get what should be already the laptop that you want. It's got 32 gigs of RAM, a terabyte of SSD space, and the discrete graphics card, whatever. It's only good for a Final Cut Pro. So the problem is it's $3,300. It's a really good machine. It truly is a great machine.
Starting point is 01:15:52 The trackpad is stupid big, which is kind of irritating, but whatever. They do it better than anybody else in the market. And you know what? It's centered to the keyboard. It's centered to the keyboard. It's the same width as a keyboard, so that's not really fair. That's fine. But here's the one thing that's not really fair. That's fine. But here's the one thing I can say, man, that touch bar. Oh, my God.
Starting point is 01:16:10 I have absolutely about lost my mind before, because if you reach up and hit the escape key with your little pinky finger, you might accidentally brush the touch bar with your ring finger. And guess what's there? The F1 button. So because you accidentally touched it with your skin, you have applications toggling all over the place. And it's like, what, what just happened? It took me like two days to figure out.
Starting point is 01:16:37 I thought there was something wrong with the Mac book. And then I realized that I was just barely grazing this touch bar. And it made me want to try and find a piece of like electrical tape to put over the top of the thing. But yeah. Anyways, I hate what they've done with the keyboard and that touch bar. Like I, please just go back to a regular keyboard.
Starting point is 01:16:58 Apple, we're the community is begging you, man. Like, what do we got to do? I'll tell you this. This keyboard is light years better than last year's. Oh, yeah.
Starting point is 01:17:09 Yeah. With the butterfly design, the original butterfly design they had problems with. This one is so much better. It actually has a bit of a tactile feel. It's not as good as what, like, the 2012 and the 2011 Chiclet keys were. That's the thing that kills me, man. They knocked it out of the park with the chicklets originally on the laptop. They didn't need to change anything.
Starting point is 01:17:28 And this is a perfect example of, you know, somebody going along and mucking with something that they already had right. They didn't need to change it. But they, like, in their desire to make everything super thin, you know, they're like, oh, no, we're going to spend years of research and trying to figure this thing out, make it smaller. And then we're going to like, as a result, well, we spent years of research and, you know, we got to make that money up. So we're going to bump the cost up for something that nobody wanted. Right.
Starting point is 01:17:58 And it's like, I love my Apple products, but this is ridiculous now. Yeah, I agree. So overall, I'll say it is a fantastic machine, especially if you're a developer. It's really good for development, but you better buy what you plan on using for the next five years, which means that you're probably going to go
Starting point is 01:18:15 for that $3,300 model, which after taxes is going to bump you up closer to $3,600. I can't do it, man. It ain't cheap. I can't do it. The last time I needed it for Mac for, sorry to cut you, but if I needed it for like any kind of,
Starting point is 01:18:30 uh, you know, if I needed a Mac for any kind of development like that, I think I would just go with a mini and I will get a, a PC for the laptop now because there's just, it's just as much as I, as much as I used to rave about the Mac laptops, and I still think they are very well made, they're just extremely overpriced. And now they've reduced their value in my mind because everything is soldered in. You can't change anything.
Starting point is 01:19:00 Even if you had to replace the battery, the battery is glued in with so much glue that you know you're going to bend the frame if you try to do it by yourself oh it's a 300 fix if you take it to the store too yeah i would just rather you know what forget it i'll just buy the mini and yeah they've soldered all that into but whatever at least then it's done and you know i'll go buy this ryzen laptop and I'll probably be able to buy both of those things and still come out cheaper than the one MacBook Pro that you're talking about. Oh yeah, totally. You would. So that's all I have for the hardware stuff. It's always fun. I love hardware. I love the gear channel. It's my favorite channel in our Slack.
Starting point is 01:19:40 So the last thing is the stuff that Outlaw had alluded to earlier with Apache Drill and the stuff that we've been doing. This is kind of where my passion's always been, right? Like I'm a full stack developer, but I love data. Like data has always kind of been what drives me because it's where all the interesting things in business are, at least in my mind, right? Analytics, machine learning, AI, all that stuff, right? It's all because of data. And the stuff that I've been looking at, it is so frustrating, man. Like I can't even begin to tell you, right?
Starting point is 01:20:14 Like we all know that my stuff needs to scale to a babillion users. But, right, Jamstack could maybe enable it, but then you'd have to create a bab billion pages because nothing runs from a database. So here's the thing, man. Like, here's some of the challenges that have come up, which, typically key-ordered and all that. Do you guys know which massive database system out there uses those for its storage? Uses sorted string tables? Yes. I mean, didn't we talk... I guess based on the notes.
Starting point is 01:20:56 Which one? Bigtable? No. Cassandra. Okay. Cassandra actually uses SS tables for its underlying storage. The entire system is based off that and it is one of the most scalable document database systems in the world. So pretty impressive. I found that as I was doing
Starting point is 01:21:20 some research. But here's one of the things. We've been talking about data intensive systems and whatnot here doing some research, but here's one of the things, right? We've been talking about data, you know, data intensive systems and whatnot here lately. And what's very apparent in that book is there's trade-offs. No matter what you pick, you're trading something off, right? If you want, let's just go with a simple case of a, I don't even want to call it NoSQL, but let's call it a document database versus a relational database. Your trade-off there is in a relational database, I can put, you know, Joe Zach as a user record, and then I can reference his user ID and 50 other tables.
Starting point is 01:22:00 And if I ever want to change Joe Zach's name to Joseph Zach, I got one record to change, right? In a document database, if you have 50 tables and you want Joe Zach in those tables, you don't put a reference to his ID there unless you plan on doing some application level joins. No, you put Joe Zach in those 50 tables in every single record he appears in. And the trade-off is you're trading speed because you have no join.
Starting point is 01:22:29 When you go to table A comments, let's call it the comment table. When you pull that back, it already has his information in there. You don't have to go anywhere else and look it up, right? So that's the trade-off between the document database and the relational database? Or said in another way, in a document database, you have denormalized data, typically. And in a relational database, you're relating things. So you have some level of normalization so that you can have one copy of data that's going to be repeated. Whereas in the denormalized, when you're just going to repeat the data, like Joe,
Starting point is 01:23:07 you mentioned Joe as an example, right? And you're looking for a date. How about your boy? Oh boy, that got weird. So here's the thing, man,
Starting point is 01:23:24 like in this big data world, when you start in, in big data is one of those terms that kind of stinks, right? Because what we're going to call big data in 10 years, they're going to laugh at from today's standards, right? Like I know that I've spent a lot of time reading Uber engineering articles because they are really good about posting the problems and the challenges they faced as their business scaled up. Right. And they, they get into 20, this was as of 2017, they had over 20 petabytes of data that they churned through. That's a lot of data, right? In 10 years, 20 petabytes. I mean, what's the next one after PETA? I don't even know what it is,
Starting point is 01:24:07 but that's where we're exabytes. Yep. So that's where we're going to be. Right. Like people aren't even going to be talking about this stuff, but here's the thing that's frustrating. This is where like the Apache drill, the Presto DB,
Starting point is 01:24:19 all this stuff comes in is you can't put 20 petabytes in a relational database system. Like somebody says you can wait. Google Spanner. They're saying they can do petabytes. I don't know how to do it. So we've talked about that. Postgres can take that much.
Starting point is 01:24:41 Is it going to perform right? So that's, so there's a difference between can you shove all the data onto the disk and can you actually use it? So this is where things get really frustrating, right? And this is where I've been spending a lot of time lately is looking at big data solutions. So like Hadoop and the way that Uber has solved a lot of their scaling problems is they use HDFS and Hadoop for their data lake. So that's where they put a lot of their scaling problems is they use HDFS and Hadoop for their data lake. So that's where they put a lot of their data, right? And then they use tools like Apache
Starting point is 01:25:10 or not Apache drill. They use PrestoDB, which was originally created by Facebook to be able to query that thing in parallel. So very much like we said with drill earlier to where, Hey, you want to query a bunch of data and join it. You could have, you know, a hundred workers out there doing this stuff and it will go parallelize that and then bring it back. Presto DB does something very similar. Well, you start looking at that and you're like, well, that's good if you want data back in, I don't know, two, three, four seconds, right? Maybe five. Is that fast enough?
Starting point is 01:25:45 For a lot of use cases, no. You know, it depends on what you're talking about. If somebody's, I don't know, if it's a regular site that somebody goes to, that probably won't cut it. If it's for analytics purposes, maybe it does, who knows. But then you start looking at, okay, well, how do you speed that up?
Starting point is 01:26:04 And it could be, all right, well, you put all your data lake data into something like Hadoop where you can get second response times, right? Like, you know, maybe sub 10 second response times. But now you need to serve that up to users and applications on their phones or on their laptops or whatever. Now you need sub second response times, right? And typically what you talk about doing there is taking that same data and putting it into different formats like Cassandra, like Google Big Table, like other solutions out there, because now you need people to get that stuff back much faster and they're not going to wait four seconds for their search for restaurants near them to come back.
Starting point is 01:26:47 You know what I mean? So I think the part that is that is so crazy and so hard to wrap your mind around is we've talked about Elasticsearch on on the show in the past and how we love it. Right. It has a very good use case, which is search. You have, but it's not great at doing analytics type things because you can't join stuff. You can't cross-reference other things, right? If you have data in two different indices, it's amazing if you want to search for data across those indices. It is not great if you need to search data and join those two indices.
Starting point is 01:27:22 You can't, it's not built for that. So then you look at databases and you're like, well, it doesn't answer the search problem. You know, you could argue that something like SQL Server has full text indexing in it. Okay, that's, yeah, they definitely tried to bolt something on top of it, but you don't get the functionality of an Elasticsearch with its horizontal scalability and all that kind of stuff, right?
Starting point is 01:27:49 So you're already at two solutions there, right? You have your relational database, you have your search engine, and then, okay, well, now we need a data lake. We don't just need our transactional system. We need something that the entire company can see data in, right? Because your, let's say SQL server is fronting your e-commerce app or something like that, right? Perfect for that. Transactional system, it's great. You have your search engine over there so that you can do your faceted navigation like Amazon down the left where you search for lens. And it asks you, hey, are you looking for lenses and glasses? Are you looking for lenses and cameras?
Starting point is 01:28:21 Right? Not only that, but you'll say, hey, there are 13 of them that are blue, 12 that are red, 50 that are black. Right. Hey, do you want ones with four star or better, three star or better, two star or better? Like you get all that from your search engine. But now when you need this stuff for crunching data later,
Starting point is 01:28:41 your relational database is not where you're going to pull that stuff for your machine learning. It's not going to be where you have people go get that data to infer other data from. So now you have another storage solution, right? And that's going to be something like maybe Hadoop because it scales really big. If you're not living in an on-prem world, then maybe instead of doing Hadoop, you're using something like Amazon S3 or Azure Blob Storage or Google Cloud Storage. And then you start putting things over there. And that's when these file formats that we've been talking about in designing data intensive apps comes in. Things like the Parquet format or other things. I think Joe Zak was the first one that told me about Parquet and I was like, well, that's interesting. Why not just store it as JSON? Because when we first started playing
Starting point is 01:29:28 with stuff, I was like, I don't want to have to deal with this Parquet format right now because there's a lot of stuff that I got to do to make this happen. Right. So we're just throwing things up in JSON format. The difference in response time for analytical queries or even just regular queries in that column or storage is bananas. Like a parquet file typically is either a 512 meg or a 1024 meg file that is stored that has a bunch of records in it. Big file. It's big, but it lines up with your disk, which is something we talked about in a previous episode, right? It lines up with the size of sectors and whatnot on your disk and what the operating system can handle in chunks. And so it can get to data super fast and analytical grouping queries and,
Starting point is 01:30:18 and, and all kinds of things, right? So just these are the kinds of things that have been bouncing around in my head lately is, OK, so you have your you have your data lake bunch files, right? Parquet files or orc files or things like that, your columnar storage. You have your database, your relational database. You have your search engine because you need to be able to do search. Then on top of that, you have other things, right? You have things like Bigtable or Cassandra, where it's basically just key value pairs that you can sort of index certain ways. But this almost goes back to what you have to do in Elasticsearch to where you have to know how you're querying data, right? So if you need to, an example, there was a video I watched the other day that was
Starting point is 01:31:09 really good on Cassandra and just how you have to model data. So the best example I can think of is if you had something in a database that was like a comment or form, right? Let's say that you had a post in a form. So you're going to have a post table, right? Let's say that you had a post and a form. So you're going to have a post table, right? Then you have a comments table that would also have that post. And then you might have a bridge table in the middle that would be form, post, and common ID, right? So post ID and common ID. That's easy to do in a relational world because we can think about that.
Starting point is 01:31:44 We know that, okay, we, we have the, the post ID and the common ID and these things link over here. And then maybe those things link back to users somewhere, right? The way that you model that type of thing in something like Cassandra or in a document databases, you don't do it like that. You materialize that stuff and denormalize it. So you might have two tables with the same data in it different ways. So you might have forum comments or post comments by post and then post comments by comment. And the reason you do that is because you care about the speed of access more than you do
Starting point is 01:32:27 about the fact that you're taking a hit on storage. The thing that kills me about this, as a full stack guy who's worked in relational databases for so long, we often forget that you're taking that hit in a relational database, too, because oftentimes you're indexing that thing with multiple indexes, which, by the way, are storing that data on disk in another spot pointing back to the main record, assuming that you have a clustered index on disk. Right. So you're already taking a hit on duplication in an index to get back to the data in the first place. So while it seems foreign when you look at these other document databases and whatnot, chances are you were doing something very similar in your relational world and not even realizing it because you weren't aware of what the storage mechanism behind the scenes was, which is why this Designing Data Intensive Applications book
Starting point is 01:33:25 has been so great because it's eye-opening, right? You start learning about how things are stored on disk, how things actually look things up, how they go through these different files. Well, it's easy to take for granted because it's all contained within, say, a SQL server. So you don't think about the multiple indexes that you might have on that table and what that means
Starting point is 01:33:47 under the covers in, in terms of duplicating the data. Yeah. It's not in your face, right? Like it doesn't show you, Hey, it shows you that,
Starting point is 01:33:55 Hey, you have five indexes on this table, but it doesn't show you that. Oh, really what that means is you have five really big files or sets of files on disk. They're all pointers back to this other really big files or sets of files on disk that are all pointers back to this other really big file, right? You can absolutely, in something like SQL Server, get a table that ends up being 10 times its actual size because you've indexed it so many different ways, right?
Starting point is 01:34:18 So... Well, what if you do a with, though? Like, you could actually have real copies of the data in that index right if you if you say like the index on column a with column b and column c and column d right yep i mean what you're basically saying there is like i want all of these things in this order in the index yep yeah so it's copying that stuff everywhere so i mean i guess this is one of the things that that has really, I don't know. I don't want to say it keeps me up at night, but I definitely think about it because I even had a conversation on Slack the other day about some of this stuff. Like the Uber approach, which is, you know, they have their data lake and then people feed off of that. And then ultimately, we should say the company Uber.
Starting point is 01:35:06 Yeah. The company Uber. Yes. That can be interpreted other ways. And one of the things that I found interesting is I was watching a talk on some of their tech stack and they have their stuff go into a Hadoop environment and parquet files because it's queried. I forget how many times they said like 100,000 times, 100,000 queries a day or something. It was a lot, what are recommended restaurants around me? They want to know that pretty quick. And so what they do is they take the data out, the machine, learn it and do all kinds of things to get recommendations. They push it out to Cassandra and then the actual mobile apps and whatever's talking to that stuff is hitting Cassandra, which is being fed from their data lake, right? So here's the thing. At what point have you gone too far? You know what I mean? Like, is the data lake the right approach or do you not
Starting point is 01:36:14 need it? Should you try and work it all in an Elasticsearch? Because you can technically dump a bunch of data in there, but we've talked about in the past, Elasticsearch really requires certain hardware requirements as you scale the amount of data. So it's like you add complexity because you need it, but when do you find that tipping point of when you need it versus I think this is what we should do because it makes sense. You know what I mean? I think it's a factor though of like how many users are going to be hitting your data though and what the use case is for it.
Starting point is 01:36:52 Right. You should probably define some service level objectives and do some testing. Oh, hey, that sounds like a term. He's got fancy words for it. I'm not doing that. I mean, like, you know, the thing that keeps me up at night, you know, related to this type of problem, though, is like, let's say that you do go the data lake Hadoop route for your data. And, you know, like, maybe not even all your queries are going to go against that. But let's say that some of them do. Because there's going to be the cases where it's like, okay, fine, I can't wait for that.
Starting point is 01:37:24 I need it to go off to a Cassandra or an Elasticsearch or whatever that use case is. But some of it, you know, might be fine staying in that Hadoop world. And maybe you front those queries with something like a Presto or a Drill. And then the question is, in my mind, framework or a dapper or one of a billion different ORMs that you could use to help you, uh, have like a manageable way to reason about how you would access that database and a way that, you know, a consistent pattern of how you would, uh, address those queries, right? But if you're going with something like this, then it's like, you have to really be diligent to go after something like a repository pattern on your own, which really means,
Starting point is 01:38:38 if I think about this right, then it's like, well, I think you need to have a good domain model to represent what your data is going to be so that that thing can then build on top of this repository pattern. That's the type of thing that keeps me up at night when we talk about this type of problem.
Starting point is 01:38:57 You do? Mm-hmm. You spaced out. Here's my thing. No, I hear you. I do think that testing is important because otherwise you're speculating. And this stuff can be really hard to walk back and complexity is tough. So if you could figure out some sort of like kind of objectives and then like kind of test your approaches.
Starting point is 01:39:18 But wouldn't it be nice if there's some guidelines so you could just like go on the internet and be like, type in your size stage. And you're like, okay, 120 gigawatts. And they're like, okay, that's too big for for relational you get you're gonna need at least two systems here your choices i mean god wouldn't it be awesome i mean i'd assume that something like snowflake i've never really looked into it that deep i would assume that's kind of what this thing's for but i mean think about that right right? Like, so, so I mentioned Elastic Search. I mentioned, I mentioned Hadoop. I mentioned a database system, whatever it is, Postgres, MySQL, SQL Server, take your pick. I also mentioned Cassandra, right? So a fast look
Starting point is 01:39:58 up type thing. You're not even at everything that you could potentially use, right? Because if you want to start getting into OLAP type stuff, then you're probably looking at something like Druid or Pinot or Kylan. If you want to go further and you just want to be able to model relationships, then you're looking at something like a graph database. And the problem is these all solve different problems, right? And that's, I think that's the part, like when you said repository patterns and all that, in the back of my head, I'm thinking, that's if you've got one app to rule them all. But I think in reality, what it ends up being is you have a bunch of apps that are all looking at these things, right?
Starting point is 01:40:40 Oh, I wasn't even thinking about it from a one app to rule them all. I'm thinking about like any app that needed to access that thing. I don't want it just writing random queries. I would want that application to still have a, you know, some kind of a access layer, you know, on top of that, or, you know, some kind of a repository pattern that's using and maybe if i'm in an environment where it's all like maybe 90 of the code is all going to be in the same language then maybe i can then uh even go so far as to create like a common library that all that code could share maybe that's an option and you know oh my god i just wanted to make video games man you want to make video games he wanted so that's
Starting point is 01:41:27 what i got into this for well how have i gotten so far from that goal you know what's funny is i would imagine they've probably got some of the most complex systems on the planet because i forget i'd read an article at some point about like how do you determine like in a first person shooter right how do you determine when somebody got hit? Is it when it was on the client that was controlling the guy that should have been hit? Or is it from the other side where the person shot and it looked like the person was going to be there? Like, how do you determine when there's latency, when there's all kinds of other things happening? Like that's those are some hard problems to solve and scale right like we know
Starting point is 01:42:05 everybody logs on christmas morning start playing some video games and you know the playstation network's down like things happen and they don't have it perfect and that's why you've heard people complain about hit markers i'm sure hitboxes and stuff is npm install gravity npm install shooty shoot pew pew pew. Shootity shoot. But yeah, so those are the kind of things that have been killing me is just trying to think about when have you crossed the line, right? Like there's, I guess the one part that bugs me the most is it's easy to say, well, you don't build Twitter's infrastructure on day one, right? Like it doesn't happen. And that's totally cool. That makes perfect sense. And by all means, don't ever try and build something to that scale when you don't have the first user, right? On the flip side,
Starting point is 01:43:00 when you know you've got a lot of data coming down the road, how far is too far? You know what I mean? Like, okay, we know today we have 500 million records. We also know that in six months, we plan on having that times 20. So it's like, this is the part where being a professional developer is really hard, right? Because you know that if you go too far one way, then you feel like you're overengineering and you're planning for something that feels like you're going out in left field. On the flip side, if you design it for today, knowing that you're not far out from having to serve 20 X and you haven't built that to handle it. Then you basically failed short term. Right.
Starting point is 01:43:49 And that's, that's hard. No, man, this is why you just build it the first time, the one way. And then when you're ready to do 20 X, just a cube,
Starting point is 01:44:02 cuddle scale, deploy dash dash replicas equal 20 and boom boom, now you're at 20x. End profit. If only it was so easy. Sounds like y'all need a budget. There's someone in your org who's got an idea of how much you should be spending. Find out what the max of that is, and then just try to come up with a system that is less than that. $1 less.
Starting point is 01:44:24 But you know what's so crazy about that, though? Like what you just come up with a system that is less than that. $1 less. You know what's so crazy about that though? Like what you just said seems that seems like that makes sense. Here's the worst part. If you pick a solution, let's say that you decided to just put your head in the sand and you were like, you know what? We're going to build it today because we know that our cost today is a thousand bucks, right? Let's just say a thousand bucks a month. That same solution at 20 X is not 20,000 a month. That same solution at 20X is a hundred thousand a month, right?
Starting point is 01:44:52 And that's another part of the problem is you have to look at costs because storing 20 petabytes of data in one system versus another has massive cost implications, right? Which, you know, again, that's talking about Uber size, but that's one of the things that when you're planning for the unknown, that's the other really frustrating part is, you know, how much data are we going to have? How much do we need to plan for? Who knows? Well, this is similar to a conversation we've had in the past, too, where it's like if you were going to build on, say, you know, a cloud platform of choice, you know, pick an Amazon, for example, you know, but your, your definition of building on that cloud platform is to just build upon VMs. And then you're like manually installing patches or whatever. That's like, Whoa, wait a minute. You might as well not be using the cloud then. Like if you're not taking advantage of the,
Starting point is 01:45:44 the cloud infrastructure that they're providing, then why did you bother? Right. Yeah. It's such a trade off, but I will say probably one of the best values to be had in any cloud is their storage tiers, right? S3, Azure blob storage, Google cloud storage. Like you can store stuff for dirt cheap, relatively speaking. Yeah. But anyway, that, but anyway, that those were,
Starting point is 01:46:08 those were the things I had. All right. Well, all good discussion. Uh, we'll have a bunch of links for the resources we like related to, uh, some of the things we've talked about.
Starting point is 01:46:18 And with that, we will head into Alan's favorite portion of the show. It's the tip of the week. Yeah. All right. It looks like I'm up first. I got to chop, chop because I got to do today's problem before midnight. Oh, yeah.
Starting point is 01:46:32 Good Lord. Yeah. So I want to mention my favorite streamer, Zorchenheimer, who I've recently found. He's on Twitch, and he publishes videos to YouTube. But what he's been doing lately, and he's done a bunch of different stuff but uh lately he's been programming cobalt cobalt uh cobalt a game what a role-playing game in cobalt uh and uh and he's just a funny interesting guy anyway but also uh he uses a modified like a programmer dvorak keyboard so the keys are in strange places so it's just really funny to see him typing nvi doing everything on the keyboard in this crazy layout.
Starting point is 01:47:07 And it's just fun to watch. So we'll have a link there and tell him Joe's accent, yeah. That's cool. Yeah, I can't do that Dvorak keyboard. No way. No, for sure. I figured it. that, uh, Devorah keyboard. No way. No, for sure. Good at, um, I had a friend of mine though, years ago that decided to do that and he like actually pulled all the keys off and then
Starting point is 01:47:29 like rearrange them so that you'd still see the, the letters. So it wouldn't throw them off. And I was just like, no, no, I can't do that. All right.
Starting point is 01:47:38 So, uh, my tip of the week is just more like, so I, I have been, uh, I guess living in a world where I am getting up to speed on, uh, Kubernetes and helm a lot lately. Uh, one of those like sink or swim type situations, I guess you could say. And, uh, the tip is that like, Hey, if you have to do a helm uninstall of your service, um, that does not
Starting point is 01:48:07 remove the persistent volumes, which, you know, may be okay in your situation, but if you were expecting it to know that it doesn't. So in that case, you would have to, after you do your helm uninstall of whatever your service name is, then go in and do a kubectl delete PVC and whatever that persistent volume claim name was in deleting the claim. We'll delete the volume that goes along with it. Very nice. All right. And because we've been talking about Kafka a lot lately,
Starting point is 01:48:41 one of the things I don't know for you, Joe, but has always irritated the ever living heck out of me about Kafka is trying to get data into it, you know, without having to write some sort of program or using their console API, which I absolutely hate. So there's a thing called Kafka cat and it's free and it's on GitHub. And basically what it allows you to do is just pipe code to a Kafka. You can basically tell the broker and just, if you wanted,
Starting point is 01:49:12 you could cat a JSON file to this thing and it'll push it into a Kafka topic for you. So it's a really easy way to get data in there without having to learn 5 million different command lines or writing your own application to do it. So, yeah, that's a pretty cool little utility. I haven't tried that one. Coffee cat.
Starting point is 01:49:32 Yep. All right. Well, with that, we hope you've enjoyed this water cooler episode, and we will be digging back into designing data-intensive applications back with the next episode. But we needed to just take a mental break from it for a moment. But we hope you enjoyed that episode. And in case if a friend happened to point you at this show
Starting point is 01:49:56 or either by just sending you a random link or you're borrowing their device or whatever to listen to it, you can find us on iTunes, Spotify, Stitcher and all, your favorite podcast destinations, which whatever app that might be. We would greatly appreciate it if you haven't already left us a review. If you did, you can find some helpful links at www.codingblocks.net slash review. And that is right. The lawyers came back
Starting point is 01:50:26 and said that Alan's claim was not legit and I am free to use it. Trademark denied. Awesome. All right, I'm going to patent it somehow. So while you're up there at the site, definitely check out our show notes,
Starting point is 01:50:41 all our example discussions and more. There's a lot of good stuff up there. Feedback, questions, rants, and all can be sent to the Slack. Definitely recommend that. And make sure to follow us on Twitter or wherever quality things are found, at CodingBlocks, and find all our social links at the top of the Twitters. Too many uhs in one sentence. I'm sorry, man.
Starting point is 01:51:01 I'm sorry. I'm getting attacked by dogs down here. You can't see it, but I'm literally getting attacked.

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