 All right, we should be streaming and turn on audition. We can just start. It's Monday, July 9th, 2018. I'm rim. I'm Scott. And this is Geek Nights tonight. Microservices. Not nano services. It's not funny. Actually, I pull up the Wikipedia on microservices. There's this whole bit about the criticisms of microservices and how nano services is the anti-pattern. OK, sure. Yeah, oh, yeah, nano services. That's right. Yeah, it is the anti-pattern. Yeah, there's this little thing to be said there. All right, let me look at the streaming dashboard. Let's go. You said you have a- Yeah, stop watching the show. What's wrong with you? Oh, Luke's there hanging out. Cool. What are you doing? Go play some PUBG. You don't need to lie to me. You got better things you could do right now. Later this week, I will finally have time to play PUBG with you guys. I've been too busy. Not just playing Overwatch. I was working on some stuff. It's weird when I played with them. We didn't do very well with Luke and Dazzlet. We did not do well. But then I went and played with Rando's. And I came on. We got as far as third place. Like our team was in third place. There were three of us all pretty close in a tiny circle. And then some super person came and killed us all. Yeah, I don't know how to get good at the circle. So that person was in second place. Or first, I don't know. I don't know which one. All right, I'm just going to start. So you can start with your opening bit, whatever it is. Whenever you're ready. Oh, OK. So, you know, bike at home like you do, like you do the source of all opening bits, the bike home. Yep. In the subway ride home. In the summer, it's us traveling through the city. And in the winter, it's me skiing. And because I live at the center of the universe, I bike past the United Nations on the way home. Yep, which is often a problem. So, you know, they really need to make a bike path behind the UN. They're going to event 2030, whatever. Anyway, and I passed by, you know, there's the Japan Society and there's the park across the street. But one of the nice places you can hang out there. Well, what's her name? I know that I know the place you're talking about. What's her name? I can't remember her name. The actress Hepburn. There's the Hepburn Park with the flowers you can walk through. Anyway, so that's that particular spot next to that little outdoor snacky restaurant place. There's usually people protesting. It's usually people protesting there. It's usually anti-follower. It's pro-Fallon gang. No, I haven't seen them in all year. Really? No. So I haven't biked past there yet this year. OK, anyway, my favorite guy that I see, who I haven't seen in a few weeks. I've only seen him maybe three times. And that was like last month is a very orthodox Jew guy who is protesting against Israel because they're doing inhuman things to Palestinian people. That's my guy. I'm with them. I saw some people protesting something last week. I didn't know if it was, you know, what they were doing was good or bad. I couldn't tell because it was in some other language and I don't know enough about it. I have multiple times just recently, like in the last couple of years, run into protests in the city where I can't tell if they're for or anti whatever, like scub, like whatever. I don't know what their position is. I know they care about scub, but I cannot tell if they're for or against them. Right. So not at the UN, but last week outside of your apartment building because the Ecuadorian consulate is right outside RIM's apartment and there are people protesting and I figured out what they're protesting. All right. The former president of Ecuador, Correa, right, was arrested or was at least, I think a court ordered his arrest. I don't know if he was actually arrested yet, but a court ordered his arrest because they were claiming he was involved with a failed kidnapping of a political opponent. And I don't know if Correa was a good guy or a bad guy or if he kidnapped anyone or not. So I don't know which side of this is right, but the people who were protesting outside, they were, they had signs that were like, I am Correa. They were pro-Correa. They were upset that he was being attacked by the current government of Ecuador in some way. But today, outside the UN, was a very easy to understand protest. It was a pro-immigrant stop locking up children protests. All right. And as I'm biking past, I give them a little, bring my bell, ding, ding, ding. Yeah. You know, just remember my bell. Yeah, I keep going and I'm just biking. And behind, the guy biking behind me. So it's a guy who's progressive enough to bike. I'm assuming that the where the story is going is that this dude is a piece of shit. His dude is a piece of shit. All right. Did you punch him in the dick? No. Okay. I was biking. I feel like punching someone. I was, I was, I tried to goat him into punching me in the dick, hoping that he would end up in jail, but that did not happen. Anyway, he just, I hear behind me. And why don't you come here legally? And I say, hey, shut the fuck up, asshole. Yeah. I should take your children, lock them up in a concentration camp. Right. So, you know, we'll just do some yelling, but then here's the part where I failed, yet I also learned. All right, because I remember my similar story where I told that Nazi guy to shut up. Because basically I'm busy biking, right? On 1st Avenue. Try most of my concentration is on don't die. Right. And 1st Avenue ain't the most dangerous, but it ain't the least dangerous. We're in a bike lane. Anyway, my concentration is on don't die, first of all, right, from cars, not from this guy. I'm not worried about this guy killing me. And basically, you know, he, his argument was right. He was obviously skilled in these, the art of street arguing. It's almost like this happens. I know he said, do you leave your doors unlocked at night? Right. Trying to imply that letting people into America from other countries is like leaving our doors unlocked. You know, what really amazes me the most about these pieces of shit people is that it's like they all go to the same website and memorize like the same six talking. So since I'm just trying not to die, my I just yell some things like let them all in. I don't believe in countries. Yeah, you want to cover to my apartment? I'm like, that's the right way to go because I'm like, I'm like, oh, you're, I'm sure your grandparents, they're from America, you Native American bro. You know, that kind of shit. I realize long ago that pretty much anyone who has this kind of opinion is already beyond reason debate. So you might as well just double down on a position that's important to them and go. But anyway, this guy did not continue following me to continue the argument. And it's a good thing he did not because when I was on the bridge, of course, then you think of the best rebuttal when you're on the bridge. So if anyone encounters anyone who uses the argument, do you when you're talking about immigration of do you leave your doors locked at night? If anyone uses that argument, here's what you say. You're ready? Here's what you say. You say, yes. But if someone knocks on my door because they're the victim of domestic violence and they need help and you're trying to rescue them, you open the fucking door. Yeah, that's your argument. There you go. So if anybody runs into that asshole, making the same argument, now you can say that right away and not think of it when you're on the bridge and the assholes far gone. Considering where that asshole roams, I feel like we're both likely to encounter him again. I might encounter him. I don't I didn't really look at him because he was behind me and he didn't catch up. I can say he could only catch me with his yell. That that Nazi piece of shit guy that I yelled at a while ago never saw him again after the cops showed up. Oh, so also a side story. I saw a tweet of a photo from Anime Expo of a Deadpool Nazi cosplay. Why is there no video of Deadpool Nazi being punched? Yeah, this is a problem. Anime Expo, get your shit together. At least kick them out. I don't fucking know. But if I see if you are wearing a day a Nazi cosplay at a convention that I go to, right? You are now going to be punched by me and everyone I know who is at the convention. I mean, I'll even punch you at Pax and get kicked out of Pax. It'd be worth it. Yeah, I would sacrifice that. So I guess the even though one of the rules of Pax is no punching and kicking, but they're breaking the rule of don't harass anyone. Exactly. So it is OK to punch and kick more. Importantly, one could argue that the advocacy of far right positions is effectively violent. I'm sure Pax will love to when there is a video of an enforcer punching lights out of a Nazi. Yeah, I'm just very or attempting to possibly family. I'm very much OK with the current stance of basically everyone reasonable. I might like go. I might I might go take my enforcer shirt off and then go punch them. Yeah, that would Pax doesn't get in trouble. That was just or take the enforcer shirt off and strangle them with it. Well, or you just you just make a note of him. You'll see him around the counter if anyone knows any defense lawyers that will let me go to court, admit guilt and ask for a notification. Let me know their number, because that's my plan. Yeah, important point in the era where we have to fight fascists. We used to talk about this a lot on Geek Nights back in like 2006. Bring it up again right now. Jury nullification. There's an episode on Geek Nights about jury nullification that is probably stupid wrong. And we are not lawyers. Yeah, we are not lawyers. However, if you have the opportunity to be on a jury, because I just got a jury questionnaire. Oh, because there are not you can fill it out online now. And the Nazis are being bold. If you happen to be on a case where someone punched a Nazi, you are perfectly within your rights to just say not guilty. It doesn't matter what the judges' instructions are. It doesn't matter if the person actually punched the Nazi in this video of it. And you do you are on a jury. Why would they send you into the room with the 12 angry people? Yep. All right, to deliberate if the evidence and everything is beyond a reasonable doubt. Why would they still send you into that room? It's because you have the right as a juror to say guilty or not guilty as you fucking please. So if somebody just you do the video of someone just mowing down a KKK rally with an assault rifle and you can see that they didn't murder any innocents, then you can say not guilty. Whatever the fuck. Yep. Now what you can't eat really do is say why you said not guilty. No, just say just go be on the jury. And then when it comes to just sit there quietly and watch the case. And then when it comes time to be on the jury, go into the other room and say not guilty. And maybe you'll hang them the jury, not the that's maybe you'll hang them to that's the only salute care for Nazis and we know it worked one time. So in news that's less fascist related, you might have noticed that so Europe has a lot of pros, like generally European government is better than our American government, etc. But kind of the one thing sort of has always been in some ways. Yeah. But if I had to choose between the Internet and health care. But anyway, it's not the EU that gives people health care. Yeah. But every individual European state does it to a better degree than us. But I digress. I don't know me. There's a lot of me. I don't know about all of them. Yeah, pretty much all of them. I mean, it's probable, but I can't definitively say that. Yeah, our health care. I don't know about the health care systems of every single European nation, but I can at least say this. The one thing that all European nations and the EU have been bad at for as long as I've been alive is regulating the Internet. Well, because it's not theirs. That's why they want to mess with it, right? They all they constantly want to bring in American tech companies and beat them up because they're trying to. That's the way they can attack America economically. And the vast majority of the time they didn't invent the Internet, but European legislation and regulation around the Internet tends to be really, really bad. Yeah. Really poorly designed. Has lots of adverse consequences. Well, that's because the Internet was actually made with, you know, American sensibilities. Well, earlier and bad. Well, even even current Internet was is architecturally American. Yeah, it's it's designed around, you know, freedom of speech and such and such. At least for now, which is a corporate except in China, where they built a digital wall. But if you didn't notice, this is the kind of thing we would have talked about a lot more on Geek Nights a decade ago, but there was basically this European copyright law that was going through like the European Parliament. And basically this law was utterly ridiculous. And most people have phrased it phrased it as this would literally ban memes forever. Yep. And it basically required ridiculous, overbearing, pre-filtering of content. Like to the point that the Geek Nights forum, we would probably have had to say that no one from Europe is allowed to visit our forum. Okay. Or in the very least, we don't even have the cookie warning. No, we don't. We're not. We're not GDPR compliant. I'm not I'm not I'm not doing fucking shit. I'm just using the software for the forum as it's delivered, auto updating it. And that's it. Yeah, we have no presence in Europe and we never will unless we flee this country. My server is not in Europe. European people visit our site and that's okay. But if you are European visiting our site and it turns out that our site is illegal, that's on you. I will obey. I will keep the website and all of our technology in the country that is most, I guess, convenient. And that's is where it always shall be. So the reason I'm talking about this today is because you'll notice that I have two articles here that have the exact same image. And one of them is new EU copyright filtering law threatens the internet as we know it from June 19th. Let's fast forward less than a month to three days ago. EU sends controversial internet copyright reform back to the drawing board good for the first goddamn time ever. They actually voted no on one of these ridiculous internet law. Well, there was, I think a big push in the EU and also by even European tech companies against this, right? So I looked into it a little more and it seems like sort of how we managed to make some sort of push against the CVD TPA type things. Yep. The fact that I can still say CVD TPA and I can't remember exactly what it stands for. The sopas and the pipas and all those things we've managed to defeat every time somehow except net neutrality which we couldn't defeat because that wasn't a matter of Congress. Yep. But it's easy because all those times that we beat those things in the US, it was a matter of making Congress not do something which is surprisingly easy. But now in order to fix net neutrality, we have to make Congress do something and that is very difficult. So basically this was at least temporarily shot down. So if it comes back and left to come back in a very different form, best I can tell tech companies were pretty much entirely against it. The general populace once they heard about it were generally against it and the only people I can seem to find that are for it are major content producers like publishing firms. Yeah. But specifically there's all these articles that seem like they're astroturfed that are basically a what was it? I found one specific one this article. It was blah blah blah blah the National Book Council is really really mad that this failed and I can't really they don't make an argument as to how I guess the National Silent Film Council is upset too. Yep. Perhaps the National Horse and Buggy. But there are there are articles making the rounds is unsuccessful EU copyright vote inflicted irreparable damage. You're not any worse than you were at using the argument that they make for getting rid of net neutrality. You're not any worse off than you were yesterday. Yep. But we actually won one in Europe and I'm kind of happy about that for now because we do their need to edit it and bring it back. There needs to be massive copyright reform but this law in particular would have made basic things that any lay person using the Internet expects to be able to do owners to the point that they just would not happen in Europe and I think a big part of how this was shot down was that this is one of the first times that like even GDPR a lot of Western tech companies the smaller ones cut off their service in Europe or shut down services but the big ones generally complied with it. The big ones in this case seem to be implying that they would just literally cut off Europe rather than comply with this ridiculous. All right. So here's the news ready. So valve the steam valve right. It's not a gaming news the tech news right. So you know if you go on steam there's a little chart that shows you like current game with the most players right now stuff like that right. And they used to be steam spy which use the steam API to get various data about games that was invaluable especially to developers to see what was popular. Oh God. I suddenly remember I found I was looking for slides for a panel. I'm going to write for packs and I found an old panel we did we have all these screenshots of player like the top 10 games on steam. Those are so old because it was literally counter strike go counter strike one six for number one and number two not anymore. Still up there though anyway so because if you don't know recently like maybe months ago valve got rid of the API's that use steam spy. And I think there were rumors they were going to do something different. They were trying to protect privacy or something. I don't know. There's a bruja but people are upset because now steam spy will be much less accurate or perhaps so inaccurate. It's useless or whatever so you can't get accurate data now about which games are selling how much if you are just like a developer who's going to do market research or stuff like that right. I'm sure the big players are still paying market research firms to get that a kind of info but little indie devs don't know anymore. You need they needed steam spy. It was valuable to them anyway so here's a new news somebody went on the steam API and it tells you in the steam API to a show or at least it did until just now it tells you to an extremely precise degree as in 16 decimal places. I want to point out that is way more than almost anything I interact with in Wall Street. That's right. It tells you it did at least until recently tell you to 16 decimal place accuracy how many players of the game have achieved a particular achievement. So you could look at any game on steam that has achievements and you can say oh here's this really hard achievement like beat the game and it'll say X dot da da da da 16 places percent of players have reached a beat in the game. You look at that number and you say well wait a minute the number of people who bought the game right must be an integer. It must be. It cannot be a non integer. It can't sell half of it can't be it can't be negative. It can't be zero. It cannot be a fraction. It must be a positive integer right and therefore we can deduce right by looking at this very very precise percentage and just sort of doing some math and also accounting for you know the way computers calculate floating point numbers got maybe got to add one or subtract one or you know one decimal place at the end or something like that I love a counter strike go and counter strike source right are still there so you can tell by extrapolating from those percentages what is that number like how many total people got that achievement because you just keep saying well if this is the percentage what integers would there be this percentage of that would break evenly because you know the number of people achieved it must also be an integer right. And it's like so it's like so it's like right it's like what what big integer divided by what smaller integer will equal this or what bigger in it right equal this number so then from that you can say well if that's 8% of this total people who bought the game then the number of total people who bought the game is X and you get a shockingly accurate number of people who own the game at the time that the person did this and as soon as they collected all the info and all the top games on steam and published it then valve remove this info from steam but we have the info which is what's important but bear in mind this is not saying how many people are playing the game. No it's it's how many people have owned the game and have it in their steam account. So yeah 50 million people own team fortress right. You've got to take into account that a lot of these games are like free games. You've also got to take into account this only accounts games with achievements games that don't have achievements aren't counted at all because there's no info and also notice like one of the biggest games on steam which is do to to is not even there right which is I don't know does do to not have achievements on steam. No idea why don't it wouldn't be there. Yeah. So there's there's a lot of ifs and ands and whatnot but once you even with all those sort of you know ifs I guess and whatever this is still shockingly accurate if you're interested I find it interesting that Slay the Spire and Necro dance are like right next to each other. Yeah. Well I feel like they target the exact same demographic. I feel like we should just look at games with that number of sales figures be like those that are the good games are going to be. But I guess the interesting part of this from a Monday perspective is when you're doing data security micro services you know all the techie stuff we do and you're worried about data leakage metadata can leak very complex information without you realize you can figure one thing out from another thing. Yeah. Right. You know or even if you can't completely figure out this is a case where you can almost completely figure out one thing from a seeming unrelated thing but there are times where it's like you can just guess and be very accurate if people know it's like for example everyone knows the percentage of English names on average that start with whatever whatever letter so it's like you can sort of get really good guesses about things like public information like that. All right. There's the news is see the main bits of Ecuador. Okay. Microservices do do do do as much people in the chat go home. Dota 2 has no achievements. There we go. That's interesting because it's a game made by Valve. We think they would put achievements in it. I don't know what's really interesting is actually people like slay the spire and stuff like people really care about the achievements. I always been the case. I ignore achievements. Achievements were invented on the Xbox right. Yeah. Pretty much. I remember the first time we ever saw them was on Xbox. I'll admit I thought they were dumb then and my opinion has I have only gotten more negative. I have completely ignored it. I've been around longer than achievements. I've been playing video games longer than achievements. I've always completely ignored them and never gave a shit and turned them off. So I don't even know what achievements I have. Every now and then one pops up in steam and like I turned off the pop up. I left it off. Sometimes it can happen if I get like a new steam installation. I haven't turned it off yet. I saw one and I go get I'm like stop covering up my game. I'm trying to get S G D Q's like things started popping up from steam and it messed up a run. Yep. Yep. Yep. That's what you gotta do. All right. I don't want to mess up my speed. But I don't do. So we learned a decent amount about Ned Kelly some time ago. I don't know who that is. We've talked about Ned Kelly multiple times on Geeknites. Why would I remember that? You have no idea who Ned Kelly is. I mean I probably will as soon as you start saying who it is. So I will say I'll give you a clue. He is orthogonally distantly related to far lap. The horse. Yeah. Ned Kelly is a horse. No. Ned Kelly is the person who rides a horse. Technically. Ned Kelly is the Australian gangster guy. Ned Kelly is the Australian weeaboo gangster. That's right. So I remember now we do. We went to a Ned Kelly Museum when we go to the first pack. We did. Okay. And we saw his fucking armor. I remember who it is now. The guy who made the armor. That guy. Yes. I know who it is now. So even then I really only had a superficial understanding and basically in my mind he was just like an Australian Billy. All I remember about him is he's like a he's like a you know a Western gangster who was a weeaboo who had armor in Australia. The weeaboo part is very important and very hilarious. But he was much closer. You know you could to be a weeaboo in those days you had to live much closer to Japan. Yeah. But I found this extra credits like history thing because they have a pretty good show on history. They did a good one on Catholic in the grade and I watch these occasionally but I never noticed that they have one on Ned Kelly and it goes into. Are you sure it's accurate. Yes. It looks pretty accurate. Didn't we go to like a prison where they kept Ned Kelly or they had a fucking museum. They had his gold or something there. We saw like I remember we learned a lot about Ned Kelly and we'll forget most of the legend of Curly's gold. I forgot most of it but this video series is fascinating because I the one thing I mistook is I thought Ned Kelly was in it for the money. No he was in it for the weeb. He was in it for revenge revenge against to it's kind of the anti basically against the squatters and as far as I don't know a lot about Australian history because it's not doesn't really it's not relevant to my life but basically as best I can tell I'm probably really wrong about this. The squatters were basically this like land owned they were the McCoys that like squatters like he was a half field. He was a basically he was a sovereign citizen. He was a present a peasant farmer who got fucked over by the squatters. He was at the rest of his life to getting revenge on those squatters and the cops that were in their pay. So kind of good guy also a murderer didn't want to be a murderer. The first copy shot kind of made him shoot him. It's just a really fascinating story and this will tell it to you in excruciating detail. So he got. Oh so the to the front is happening right now. It is right and it's not the easiest thing to watch really even though it's like I kind of want to care about bicycle racing because they care about bicycling but it's still so tainted with drugs and also still so not that exciting to watch most of the time honestly like to watch highlights. Yeah anyway so in honor of that here is a video of it's actually a series of like the most legendary cycling accidents but this is the first in that series and basically this dude he's in first place during this race and he goes over the edge. Oh boy and it's like it's not the kind of cliff where it's straight down and he dies. So it's not it's not an unwatchable video. It's not the squeamish or anything. That guy's fine. I wouldn't post it if it was like that because I would also probably vomit. But he it's so steep though that he has a hard time crawling back up and his bike just keeps on going starts sliding. You're like that doesn't look that steep. And then you see his bike. If I just go. No one's going to save it. Nobody's going down to get the bike. So he has to wait for his replacement bike to come which is way in the back which means he went from first to finishing like many minutes back. Yeah it's a shame. So there's like a legendary moment from the I guess the past but if you go through the series there are many other bicycle accidents but I can't guarantee that none of those are squeamish so continue this video number two at your own risk. I mean I guess bike sports are kind of for me they're kind of like baseball and that I like doing them don't really care about watching them. Yeah like basketball. Yeah. Also you know bicycle racing is way scary. It's like it's like bicycling is fine bicycle racing is gets closer to skiing which I don't do these guys are going these guys are going 40 miles an hour. If I get to 30 I'm like oh I hit the brakes. The fastest I've ever gone on a bike at least based on my bike computer was about 48. Okay that was when I was in high school. I think I maybe got to 38 going down a hill and was like oh shit. So that was we were in high school and I was like with my family doing this like Jeep Jamboree and we were going around doing like mountain biking and off-roading and all this nonsense and I just took my mountain bike and my family stopped the car because there was that we're going to take an exit ramp that goes way down the mountain and I just rode down on my bike and my family caught up in the car and it was terrifying. I'm not going to pretend it wasn't but I bike like I like pretty fast on a regular way. I really got to put some effort and maybe tonight and find this chart I saw once that showed the elevations of the Tour de France and it's like you it's like you bike. We bike over hills here and it's like you go with the Queensboro Bridge and it's like it's easy but it's still it's a hill. It's like you notice it right like I slow down. Yeah it's like it's a hill. I gear down right these guys on Tour de France. They wouldn't even know it's flat to them for that so they don't even notice that they their elevations that they climb the steep the grades that they go up. It's like the bridge here would be like a speck like you would look flat compared to the mountains they're climbing and this is why they're all on fucking drugs because no human would be able to get my Strava the other day because I noticed something. I have like the hundredth best time ever going across the Queensboro Bridge like anyone was driving me. Maybe I should. Did you like Huff and Puff and try it all the time. Oh OK so maybe I should Huff and Puff just one time to see if I could I could probably beat you. So I don't have a Huff and Puff one time. I don't think you could beat me one time. Huff and Puff. You know what a better way to do it. We should just race. That's dangerous. It's I have to do it at night when no one's there. So yeah we do we do the race at night. There's no I have to do. No I just do it on myself and then you do it by yourself and then we look at the time or just go next to each other. No that's as dangerous. So go. I'll have you'll someone will fall over the edge. That is not it's a straight bridge. There at no point does it turn. No there is no way we could have an accident one at a time. Well anyway so I looked at what the difference was and the difference between like my set like top 100 and the top 20 wasn't that much but then I looked at the like the runs of all the top people. You know the differences I go crazy fast on the downhill and pretty fast on the uphill. They're going the same goddamn speed up and down. I could probably go up real fast. I actually probably be slow on the down. I'd probably be like fast on the up and slow on the down because going up I have no fear. Right. I could just put in the full Huff and Puff and then going down. I hit the brakes because I'm afraid I never hit the brakes downhill on especially on the very end. I wonder where it like I wonder where Strava stops timing you right because like there's that super steep part of the Manhattan side where it's like you got to hit the brakes. But it's like when do I hit? Well if we're doing it so if we're doing a race we would definitely race into Queens because the the exit the output of the bridge is a lot safer there. I think but that feels too easy. It feels like the good race would be with a long uphill going out of Queens. Yeah. The problem maybe we just got to add both times together. We could do that. We got to we got to figure out which Strava route to use to track it. I don't know. I don't know. Or you just do it next to each other. Maybe maybe you just have someone stand there with a stopwatch. Yeah. Oh wait we need two people wait one on each side. Yeah. You know we need we need all those all those side characters initial D who are standing there with the stopwatches and the walkie talkies. I don't know. We can do that. We can live stream it. No. Just have a boat mount our phones on our bikes and live stream our race. Hmm. Well that's what we can do is you just put a GoPro on ride and then you put the GoPro on and ride and then we can use the GoPro's to get perfect timing by comparing the video. That is possible but that seems much more work than just biking up and over at the same time. It's dangerous. How is it dangerous. How it's not like you're going to move left and right. You just take one line. What if someone's coming at us. If we do it like 3am. No one's coming at us. Someone will be coming. It's New York. There's always someone that we stationed someone on the other side of the bridge and they'll like to the horn. We'll get in trouble. We'll get in trouble. I don't think anyone would care. I think you're just afraid you're going to lose because I'm real fast. I think the downhill is what would kill you though because that's where I get my most speed and I feel like you would touch your brakes. I would definitely touch your brakes. It's over. I never touch my brakes on a downhill. But what about when you're coming to the end? You're going to just crash into the wall. I just stop really. But there's a reason why I keep popping smoke. But then your rear wheel will go to go over the top. No, I don't touch my rear brake. I know I'm saying if you hit your front brake your rear wheel will just go. Now I have my front brake the right way and my rear wheel lifts up by about an inch and then I just come to a really fast stop. Yeah, that's too much. My wheel would never come off the ground. I must accelerate and decelerate smoothly. I very often let my rear wheel come off the ground. That's how I stop. I do not do that. I'm always smooth. You know, I think the real difference is it's not just like I'm not afraid. I think it's literally just that I mountain bike my whole life. So I learned a very different kind of biking. I must I also drive smooth and you drive. You hit the brakes in the last second whereas I break them year in advance. So it stops smooth. No, we got to be smooth. We both know comfortable. No rapid acceleration. See, high velocity isn't really the problem. It's rapid acceleration or deceleration. Yeah, on a bike, accelerate as fast as possible. Maybe if I you maybe if I get up to speed on the bike path and then get and then get on the bridge. I'll already be going fast. I won't need to accelerate. Yeah, you think about that. The problem is that bridge has a U-turn to get on the uphill. Got that hard U-turn to actually get to the uphill. It's not a U-turn. It's more like a chicane. Yeah, you do a U. You go around once like a S. I guess it's arguably a really long chicane. Anyway, in the meta moment, the book club book is the Odyssey. Oh, crap. I think we can finish it by Thursday. I'm going to read it this weekend. When am I going to read? If we miss it, we'll have to do it. What should we? What should we do the Thursday show on if we don't finish the Odyssey? The part we read already. I read more than half. We could do a Thursday show on reading. I don't think we're ever going to show on just reading. Every book club is about reading. Yeah, but like favorite books, least favorite books. We already did all my favorite books as the book. Oh, except for one. I got so we did we ever maybe I should make my favorite book. My second stone. No, no, so in the stone isn't a book. That's a Disney movie. Well, yeah, but the book that the sword in the stone is loosely the ones in Future King. Yeah. No, you don't want to read that. No, I read it. The last time I read it was ninth grade. I read it also in the ninth grade ish. All right. What's your favorite book? Just the Prince of Nothing again. Oh, I didn't even think about that. Yeah, it's a problem. Anyway, anyway, we'll probably do it soon. Read the book. It's good. We will unfortunately not be at Connecticut, which is this coming weekend. Oh, well, go to Connecticut. If you're anywhere near Connecticut, it's probably still worth your time. You can play mad board games there. Yep. So if you didn't notice, we we are no longer the heads of the panel's department. We just do not have time to deal with. I don't want to go to Connecticut. I do. I actually kind of wish I was going to Connecticut. But this week. But this weekend is the game developers of Color Conference in Manhattan, which is also a very important convention that we will be at the Schomburg Center. I'm going to go there for like an hour or two in the afternoon. Yep. I will do the same because we went there last year and we saw some awesome games. There are real good games there. Like the average quality of games at Game Devs of Color is well above the average quality of games at most other indie game conventions I've ever been to. I agree. Like legit. In fact, that's what I said and you stole it from me. Yeah. But I'm saying it again because it's it's shockingly true. And that says a lot about the inherent problems in the game industry. But Connecticut, if you live nearby, like if you can drive to Hartford, Connecticut, despite the fact that we are not there and thus there will probably be a learning curve year for the people who have taken over for us as happens in these situations. You don't need to go to any panel. Just go and do the other stuff. But the con has a lot of stuff going on. It's a bigger gaming convention than most gaming conventions. It's an everything con. It doesn't pretend to be a not everything con. It's we aren't everything con. They got sci-fi. They got superheroes. They got animes. They got pretty much everything nerdy. They got it there. Yeah. If you're a nerdy person, you will have a good time. You can play video games. They got lands. They get everything. And also, I'm pretty sure whether you're a Grogner who wants to play a war game or a kid who wants to get hype on the free parade or whatever is good time. Yep. And also, if you've all you hear us talking about conventions a lot and you want to like join a convention, pretty sure that apartment we left behind is going to be needing chill people. If you want to be a convention staff person and you live anywhere near Connecticut. Yep. Especially if you want to like you want to be a force or someday, but you can't get to taxes yet. Like and you live in Connecticut. Connecticut will never sell out. You can go there real easy. And this is a con where you could learn like how to staff because full disclosure. Also, even if you just attend, you get so much bonus shit for attending Connecticut. And there's like free movie screenings like this. Like you actually Connecticut is actually a ridiculously good deal content wise. Yeah. And rest assured, there's a good chance gig nights will be returning to future Connecticut to do panels just not to be running the show anymore. We'll see one day. Yeah. I would easily go like sleep. Like it's mostly just because in the summer, if it was in winter, I would not hesitate at all. But I'll probably do that. I'll start doing the thing like it. You think I kind of where I roll in like Friday night, do the count all day Saturday and leave pretty early on Sunday. So I get like the con experience, but also still have my weekend. Hmm. It's not really worth it to go all the way to Hartford for just that unless like a do maybe a visit my mommy. I don't do it just for that. We'll see. Also, Connecticut is one of the only cons. I can do some of the content I like to do. All right. We got any other meta action? Otherwise, the next cons will be at are going to be the real packs. Packs real. It's letting stone. I got the hotel. I got the plane and I got back up to our crew. Oh, we got back up. Okay. So nothing can fail. We'll be there. Yep. We might. We don't know if we have a panel yet. We've done. We've done panels literally every every single pack since oh wait, we've had a panel. I can't imagine they wouldn't give us one, but it could happen just in case. Yeah. Looking forward to this packs in a big way. I'm skipping packs dev. I don't want to, but I got a lot of shit going on. It's for the best kind of need those vacation days. I'll probably go to packs dev next year. But the thing that sucks is this year. We actually had a really good panel I wanted to do at dev and I had to back out of it because I'm not going. So there's a chance I'll do that panel at regular packs. That panel does not involve Scott. It involves other people. So if that panel happens, then you'll be able to see it at regular packs without having to buy like a $400 badge to go see it. All right, let's go. Let's go. Let's do it. So microservices is a. It's a fad. It's a fad, but it's also somewhat legit sort of. It's a good idea. But like, you know, the more I've realized there's a fundamental theme and all this kind of show that Geek Nights does. And the theme is here is a design pattern. It is useful when it's useful and it is a bad idea when it's a bad idea. I think the main problem is that it's actually, it's one of those things where like, you know, you look at something like other fads, like containers or no SQL, right? And those are things that became fads or blockchains. Cryptocurrency. Right. They're fads, technological fads that are really only useful for a small number of applications like machine learning, only useful for a small number at least now, right? There it doesn't have this wide application, but like everyone starts trying to use it because it's a fad and then it backs off to the point where only the people who need to use it use it. But actually most companies that have software development where they're building tools and systems for the company to use, which is the kind of places that I work. You know, I don't work for tech companies. I work for companies as an engineer building software the company needs. Microsurfaces are actually usually a pretty good pattern for most places because a lot of people make the accident of they build one custom system that's like for their biggest application, right? Like the thing that does the core of their business and then they start building more stuff. And rather than build separate new systems, they just keep putting all the code in the same code base on the same platform on the same hardware on the same and is they get this one giant monolithic application that does everything. And that's usually a bad idea for any software architecture no matter what your application is. And microservices, which means in general, splitting things up into separate programs. You don't have just one program that does everything is usually a good idea to some extent. The problem is not that everyone's doing this fad, which is usually the problem. The problem is is that people are very, very bad because they've never built microservices before usually. They don't know how to design systems make the splits in the wrong they cut the services in the wrong places and they end up making a lot of work for themselves because now maybe you've got two services or more that should have been part of the same service. They went to micro and now you have to build a lot of glue because those services are constantly talking to each other. When if you just had put them in the same service, they would have been fine. Yep. Or they don't they don't cut enough to get enough of the benefit and they've got still things that could be cut down more. So it's like you have to actually be very intelligent have a big understanding of your systems and have a really strong understanding of technology to be able to cut and separate your systems into the right pieces that make sense to gain the advantages without causing yourself more problems. I think the real source of a lot of the problems that's really the whole show that I was saying but people I guess we can get a lot of examples. I got I got the best example in the world. Oh, the one you told me before. Yeah. Yeah, that's a pretty good one. I don't know if it's true, but it's good enough whether it's true or not. But like my as many of you know, I have a very different job for what I had before. But so I'm in the position of managing like many different engineering teams and areas that are working on different things like a bunch of different silos and because you can't have if you have unless you're a tiny company, you cannot expect every engineer in your company to know about everything your company does like that. That design pattern like that management design pattern seems to happen when small engineering startup gets big and is not managed well. Yep. But so in that situation, microservices are a very good way to be able to maintain silos of expertise without having the opposite IPM problem of you've got a bunch of silos. They're basically independent development teams that literally know nothing about it. Yeah, not only does it help technologically because you can separate all these systems, you know, hardware wise and software wise, but you can also separate your employees. Right. It's like someone can work on one service and not have to know about other services. If all your code is in together in one big system, then that means you have to get all your employees. No matter what they're working on all coordinated in a perfect unison to be able to deliver a product and put out a release and you'll never release anything. But instead you can have a designer or a product manager on each one of those silos and then have a separate person or a separate group whose job is to do things that combine all those services. Right. And if your services are designed well and you made the cuts in the right places, then there isn't going to be a lot of communication between those services. They're going to be so independent of each other that it will be super rare where any one of those services actually needs to like do something because another service did something that should really happen all like a super rare case. So the best example of micro services that I ever seen and I'm not sure how true this is because this was told to me by an Amazon engineer over five years ago. So it could be that's ancient history. Yeah. It could be completely not true now as far as I know, but it doesn't matter how true it is as to the reality of what Amazon does. What matters is that if it is true, it's still a really good architecture and is still a good example to follow true or not. That is it is a very good example of the right way to do this. So go to Amazon.com and shop for something. Go to a product page. Yeah. Pick a product. Go. Ram, go buy something. How about a Geek Nights t-shirt? Oh, yeah. Actually, that's probably a bad example because no one there is one and you can actually buy. In fact, I have two more t-shirt designs and I can now make hoodies. I'm going to make a Geek Nights hoodie. Right. The point is that nobody's buying this. Go to a popular product like four stars. Yeah. What's something that we would recommend people buy an Amazon this fancy Geek Nights t-shirt that comes in two different colors? How about something that's actually popular and nice? Too late. I'm on the t-shirt. I'm not moving. There's not enough stuff there for me to talk about. Yeah, there is product description, reviews. Right. So if you look at an Amazon product page and you scroll down this page, like if you don't think about it when you're just shopping, but there is a lot of fucking stuff on this page. There's the photos. There's product info. There's the actual e-commerce part where you buy the product. There's the reviews. There's the Q&A. There's related products. There's people who bought this also bought this. There's like, you just keep scrolling and the page keeps loading new shit. And it's like there's so many features on this product page. It is insane. And if you try to think about it, like if you're a software engineer, how do I make this? Like try to fucking make this even just like as a WordPress plugin or just as a Django app. Dude, just try to make it as hard coding the CSS. Try to make it as a PhD page. Like this would be so, how many databases queries do you need to make this page? It would, like if even if you had no visitors to your site, if you tried to make an e-commerce site that did all of this, it would load slow as fucking hell. Even if you have no visitors. Here's a better example. This is a camcorder I'm looking at buying. That's a good one. So look, you got like, so let's see. We got the images, which is like their area. There's videos they got. There's a whole video feature. Scroll down after the frequently bought together and customers reviewed this also viewed this. Here's just a whole bunch of fucking like product information from the manufacturer. Like images and their own design. Yeah. There's some system somewhere where the manufacturers and sellers go in and put that in there. Yeah. Right. It's like, look how many features. So the secret is, is that each part, as far as I've been told, each part of this product page is a completely separate microservice, right? They somewhere at Amazon are a bunch of computers that are just the Q and A system. That's all they do is Q and A, right? And there's another system that just the review system. All it does is reviews. It doesn't do anything else. All it is reviews, right? And that review system, that Q and A system that frequently bought together system, they have absolutely nothing to do with any of the other systems. You can take that Q and A system from Amazon if they gave you the source code, which they won't. And you could install it on your own hardware and instead of attaching the only attachment it has to Amazon should be as far as I can tell the product IDs. You could attach that review system to the Geek Nights episode IDs and we could suddenly just have reviews of Geek Nights episodes instead of reviews of M and we wouldn't have to change a single line of code. There is no dependency of that Q and A system on actual Amazon products other than that, you know, the separate sets of Q and A's are together based on the product IDs, right? And have that, but wait, if these are all separate systems, how do they all load them together on this one product page? Well, there's a system, the Amazon.com system that runs the website. And what it does is there's somewhere as a bucket an S3 bucket and in that bucket for every single product and Amazon there's a file and in that file is the HTML of the Q and A section and the name of the file is the product ID of the product. So this Amazon.com system as I was told six years ago goes to these buckets pulls together these already rendered HTML's right of all these different sections of the site and just paste them all together. Now that's the only glue they have is go to a bunch of buckets, get HTML and paste together. Now that part, the specifics, the specifics of that aren't really relevant to microservices. You could do it anyway. No, what's relevant is the fact that they have done it in such a way. It's not that that way is the best way or the right way or whatever for a website. That's a highly scalable way. It's that not only is highly scalable, but it means that the Q and A system can do just if you're working on it, you can do whatever the fuck you want. You don't have to worry about what Amazon.com is doing. If you're doing the review system, you can just do anything you want in the review system, change it up, mix it up, change it and it won't matter because the way it's integrated together with the other stuff is like as long as the visuals are together, right? You're all good. Now one sort of, I don't want to say an anti-pattern, but a problem I see with this microservice architecture with this website is an example. A lot of people will have this page basically hit 20 different microservices to generate all these things and those services all have varying SLAs, varying quality, or one of them loads slowly and then the page like starts rendering in weird chunks and there's actually a really easy solution to that. You have some sort of middle tier or some sort of buffer like in between your microservices. Like if you have a webpage that can hit 10 microservices, have a mid tier of some kind that will hit the microservices and interleave the data into your rendered HTML. I mean the two hardest problems in programming are naming things in cache and validation, right? So you basically, when you have microservices that's one of the benefits actually. It's not a, it's not a, it's not a gotcha, right? It's like a benefit. It's like, oh, because I've separated these services I can actually introduce IT solutions like caching layers and proxy layers and load balancing layers. Like that pre-rendered HTML, that's brilliant. In between all of these different services whereas if everything is part of one application running in the same processes and threads in the same CPU and you want to load balance, you now have to code that inside your application. Whereas if now, if you've got, you know, they're separated, they're on physically separate computers running in separate services, you can now introduce varnish or Amazon load balancers or any other kinds, all kinds of routers, network, you know, firewalls. You can put any kind of nonsense you want in between to solve these other problems whereas otherwise those tools would be unavailable to you. Yeah, because look at this, nothing on this page needs to be stateful in any way. If I, if I refresh the page, if you do a different service. If you go to the Q&A section to actually answer, like if you go to do reviews, it'll often bring you to a separate page that's just reviews and nothing else on it. Yep. When you go to check out, it's just check out, there's nothing else there, right? You've gone and now you're, when you're actually real-time accessing a system, it's like you're only looking at stuff from that one system other than like the nav bar or whatever, right? You know, so it's like you can sort of tell from the interface of Amazon a little bit about the architecture behind the scenes of Amazon.com. So how do you figure out where to draw the lines? Can we come up with generic guidance? Right. So it seems like so many people have trouble with this. So I've already talked about this a little bit, right? But if you want as little talking as possible, right? So if you were to say do the Q&A system, you wouldn't have a Q system and an A system because they would have to talk to each other too much, right? These things are sharing the same database, right? It's sort of, it's a really obvious case here, right? But when you actually get to your real business, it becomes harder to draw the lines because you want to have a lot of talking between systems, right? So one thing is that you got to say, okay, you know, there's probably, you have a monolithic application already. Look at what's already sort of going across, draw the lines where you feel they belong first. And then look and say, okay, when would the, when would something need to cross the lines, right? When, when I need to join tables and these two databases together, even though I drew a line between them, when would this need to make an API call to that? And you know, if you can minimize that as much as possible, you're probably drawn lines in a good place. The other thing you want to do is that a lot of times I notice the times the lines are crossed will be for reporting or for notification or for some certain use cases. Reporting in particular. Right, right. Reporting is usually something that's like everyone has and will go across all systems, right? Cause you, and you want to join all your data together to report and everything. And what you really got to do in those cases is like, hey, you know, instead of having this reporting and you know, instead of keeping things together to make reporting easier or separating them to make, you know, and then making reporting difficult, make reporting its own service. Yup. Right. That's all over by itself. And then query all the things that need to be data. You can't join these two tables together because they're from separate services. But now the reporting system can once or once per report query all the microservices one at a time that all, right, collect all the data from them and then mix it together. And now that's its own thing. And now you don't have reporting code mixed in with all your stuff, right? So you got to think about those sort of, like there's almost like even now you've separated the different parts of your application. There are some features that they all have in common and those features need to sort of come off of everything and become their own service. Yup. Now you also don't want to get too small with these services. I'm looking at the Wikipedia and even call that anti-pattern nano services. Right. That's when you cut too much and now things have to talk a lot. And basically comes down to if you split a service out and you can't come up with any reason for anyone to query that service by itself, like is there literally no one who would ever hit that API without also hitting another API, then you've gone too far. Imagine yourself being a developer and you're working on one of the services and think about how often when you're coding a feature for that new service, like imagine like, okay, I'll draw the cut here. Pick one of the sides of the cut. Yup. Say, all right, this is my microservice. All right. Now imagine a feature you want to add to that microservice and then imagine how you would code it theoretically. If you think that encoding that micros, encoding that feature for that microservice say, would I be able to code that feature for this service without touching any of the other services? Right. Or would I have to make commits to two services in order to get this feature built? If you have to make commits to two services to get that feature built, you either a cut too small and made a nano service and you should combine those two things that you can make one commit to add that feature or that feature that you're adding is something like reporting that should be its own service and it should be somewhat common sense to figure out which of the two it is. Yup. So if you want, like if your career path as a someone who cares about technology is listening to Geek Nights, if your goal is to be like a chief architect or a CTO or a product manager, this is this kind of stuff you need to understand. Like this is the architecture side that makes you very valuable to a company, even potentially irrespective of your actual raw computer science coding ability. Yup. But having computer science coding ability will make it easier for you to, you know, implement techniques and know where to, you know, separate services and things. Yup. Which again comes down to how big is your cut? Like some companies will have functional programmers separate from developers. You also have to really have to understand the application architecture of the different services like, oh, this one has database. This one has some sort of caching mechanism. Yup. This is how the network is arranged. You have to have this sort of holistic understanding of Well, someone has to. Right, of how the, how, you know, the hardware and the software works, right? On a not granular level, but on, you know, broad level so that you can know, ah, well, actually I know that this application is constantly writing over here, you know, to these, to this storage thing, which means it should probably be its own deal, right? And just provide that data out with an API and nothing else should be part of that, right? But again, it also means that someone like me, I need to know what microservices are available in my whole like infrastructure, but I literally don't need to know what's behind those APIs. I can trust them. They'll do what they say they do. And I can use them as a menu of services to build the thing I want to build. Mm-hmm. Uh, yeah. That's probably it. There's not much else to say, but you know. I mean, you can read this Wikipedia article though as I'm saying. There's a lot of, there's been a lot of literature about microservices and it's one of those things sort of like, it's not, you know, testing is one of those things where people like preach it, but they don't, they don't do it. Yeah. And it's a lot of the things they preach are actually not practical. And like you can't actually do all those things realistically and you maybe shouldn't unless you're, unless you're doing medical stuff, then you should. Yeah. But that's a whole different ballgame. But microservices is the thing you can do right. And it's like, you probably should do right. And a lot of the literature is actually right. Most of it. So here's a better, but most people fail at it, despite that, even though they're trying. Here's the last bit. What are the situations where you definitely should not? And I think it comes down to, are you making literally only one thing? Yeah. Like you're literally this, a simple website is all you're outputting. Like don't over engineer it. Yeah. I mean, well, even sometimes where even if you, you know, you look at something like a WordPress blog, right? And somebody will get all these plugins on the WordPress blog. Yeah. And it's like, well, yes, if you were going to make the ideal application architecture, that would be microservices and not a whole bunch of plugins on one WordPress installation, but you aren't big enough. You're a tiny blog. So just fucking use the plugins. It's not worth, because microservices increases your engineering effort. You need teams and you need, you need to be a certain size to build all these separate systems because it adds overhead, right? When you make more systems rather than one system. Yeah. So don't go doing it, even if it's the right thing to make that system the best it can be. If you can get away with a shitty system and you don't have incredible resources to build a fancies system, which also implies don't do this for prototypes, no experiments, proofs of concepts, like the, but I think this is more general good advice of don't over engineer things that don't need to be overengineered. Yeah. Don't preemptively optimize. Yeah. Right. Yeah. Cause if you ever find yourself saying, I'm doing this because in the future, me white, we might want to. Nope. Nope. That means do not do that is not a supporting reason to do that thing. That is the that is the novice mistake. That's right. That's freshman year. If you know that sophomore year, the future, don't worry about what could be possible in the future. Do what is best for the now. What is known to be true things you definitely are going to do for sure design for that. And if in the future it does happen that you might want to then change it. Yeah. Cause it's if you're gonna like the time it'll take you the opportunity cost of doing heavy over engineering very early on compared to what it would take to when you've grown and have twice as many engineers to rewrite something old, you built also the technology landscape might change in those couple of years. I mean, look at how much databases have changed in the last five years. Well, that's another great thing about microservices is that, you know, you can, if when new technologies come around, one service can like that maybe, you know, has time, the developers have time to work on something can start updating to newer technologies and start messing around. Yeah. You got a microservice backed by some old post press, you know, say there's some new hot like give you like an Amazon product page, right? It's like, okay, how much do people really care about the people who bought this also bought this, right? That's probably semi important, whatever's working on that and don't kid yourself. There is someone whose job is I work on the something who bought this also bought this. Yep. Like there's someone whose only job is I'm the owner of that part of the page that whoever's working on that can probably have time to experiment and really improve and, you know, work on machine learning type stuff and get some fanciness going on in there, right? Whereas the people working on, say the photos part, they probably can't fuck around because you cannot fuck that up. Yep. So, you know, they can probably have to wait and see and you can have different systems running different technologies. I guess one other concern is it does mean that you need because usually depending I mean it depends on how big you are, but you might have people doing QA in each one of those silos like for each microservice. If you have something that's written by microservices, you need a holistic quality assurance solution. You need something or someone that is testing the integrated final page. Right. Irrespective. Well, usually usually the services that integrate the other services and call their API. That's where that QA is. They're usually that usually is also a service and usually has its own QA. So that's where that happens. Yep. Right. You know, so like, you know, a lot of times, even if your own QA will say that your own service is all good, you know, the other, the consumers of your service might be like, oh, you guys just mess up and up and then you, you fix it. All right. I think it was a good show. No.