Coding Blocks - Dev Talk: Django, VB vs C#, and Bash on Windows

Episode Date: April 19, 2016

This week on Coding Blocks, Joe changes a different kind of string, Allen drools over the Hellcat, and Michael shares his random thoughts. We span a collection of topics including GraphQL framework en...vy, bash on Windows, and whether it takes two to Django.

Transcript
Discussion (0)
Starting point is 00:00:00 you're listening to coding blocks episode 41 subscribe to us and leave us a review on itunes stitcher and more using your favorite podcast app visit us at codingbox.net we can find show notes examples discussion and more send your feedback questions and rants to comments at codingbox.net follow us on twitter at coding blocks or head to www.codingblocks.net and find all our social links there at the top of the page. With that, I'm Alan Underwood. I'm Joe Zack. And I'm Michael Outlaw. This episode is sponsored by Infragistics, technology modernization and migration. When faced with the challenge of any technology migration for modernization, like a desktop or web or mobile initiative, product teams often consider
Starting point is 00:00:46 only the obvious technical challenges associated with something like the browser-based display. You need to go beyond the obvious and get to a deeper level of understanding of the pitfalls and challenges in major technology migrations. Infragistics experts can help you with their tools and process to ensure your next major projects are a success. Head over to www.infragistics experts can help you with their tools and process to ensure your next major projects are a success. Head over to www.infragistics.com and get started with your free 30-day trial. All right, so let's get into our podcast news, right? So first off, got to say, lots of love on iTunes, this go-around, lots of reviews. You know how I am about pronouncing some of these names. I don't know if you want me to be the guy to do this because it starts off actually it's
Starting point is 00:01:32 been a while okay thanks and there's one in here in particular i want you to say okay well the first one is the one that has me like a sir i can't even do that one. Sartavious? Okay, thank you. Herp Derpington is definitely my favorite of them. Dre Young, he's in there. Terrence Hall, Bill Kron, Bayrock. Yeah, I'm that cat. Neil Code, J. J.
Starting point is 00:02:00 Guile, Toga. Now you got me on that one. Balchie. Okay, thank you. Benevolently. Well, that one didn't come out right at all. It's in there. And Derek Husky.
Starting point is 00:02:15 Yes, thank you. Yeah, I know Dre Young. Yeah, Dre Young's amazing. He's always in Slack. Yeah, dropping the knowledge. Yeah, if you want to interact with with him definitely come join our slack channel he's he's awesome so i'm gonna make joe do the stitcher reviews all right we got eigensbro which is another one from the slack right yep awesome he's in there uh dominic and ranger yes and by
Starting point is 00:02:39 the way what of those all the reviews were amazing thank you for taking the time to write them up. But I especially like the fact that we were the cheese that wraps the pill that is programming, and that is the delivery mechanism to trick him into enjoying learning. Well, I mean, in this go-around of reviews, and this isn't the first time this has happened, but there were some of these reviews where they purposely installed itunes just to take the time so like that's really going out of your way and we super appreciate it can't and can't express how much we appreciate that and you know there's another place we don't talk about this one as much but occasionally i'll go poke around
Starting point is 00:03:21 to see like what kind of love we're getting on Reddit. There was some action there, too, of people mentioning the podcast. I thought, surely we should mention these guys, too. Totally agree. Alan, it's your turn. All right. We've got Ronage, Carlos Machina, or Machina, depending on how you want to go about that, Blue Jean, Scrambled RK, Tells, and Tom5171. So a big thanks to you guys
Starting point is 00:03:47 for sharing the love out there on Reddit. Yeah, so we got some interesting questions that came in this time, so I thought we would start off with some of those. And the first one I have here is from Chris, and he's got two questions, so we're going to take these in two separate parts, right? So he's just starting to get into programming, and he's finding the nuances about coding that we go over to be very helpful.
Starting point is 00:04:13 That's scary. But he's starting off easy learning Python and hopes to move on to Django and wants to know if we think Django would be the correct framework for him to step into next in his learning, you know, path. Right. And you know, he wants to create a simple reporting tool for,
Starting point is 00:04:37 from a MySQL database that he has set up and, you know, his GUI would consist of drop down menus to run queries on that MySQL database but he wants to hide the MySQL guts of that away from the end user and wants to know our thoughts so my first thought there is just to hearing the problem space my first inclination is just oh Ruby on Rails but I think knowing Python and the little little bit i know about django it's it's kind of like a why not you know ruby on rails has definitely got the uh it's probably the biggest name in that sort of space right now but with django being so similar and even python and ruby being so similar
Starting point is 00:05:15 um you know i i yeah basically why not so i think django sounds like it could be a really great choice i know a lot of people really like it and use it. So more power to you. Yeah, I was going to say, I think he stumbled onto a good pair. You know, like if he's already working on Python, then go for it. Django sounds like a good fit. Yeah, I completely agree. I mean, with that, I guess my take is if he's enjoying Python and he wants to take it to that next level and learning a popular framework like that's a is a huge step in the right direction but whatever's going to make him feel
Starting point is 00:05:50 like going through and finishing his project right so if django is going to help him do that and and he's going to enjoy it and it's going to give him the passion that he needs to drive forward with that then i say that's a definite yes right like choose things that are going to make you want to do them right so yeah i mean i would say that i would hope that that wouldn't you mean that he's not going to focus any time on javascript for example right i mean obviously if it's going to be uh you know a web app then there's going to be some kind of client side focus to it javascript is probably going to come in handy so it's probably going to be some kind of client-side focus to it. JavaScript is probably going to come in handy, so it's probably going to be a good skill to pick up.
Starting point is 00:06:27 And you can't go wrong with it these days. But there's a lot of love for Python. And the people that do love it are very adamant about it. Yeah, and you are going to end up learning JavaScript, so you might as well stick with the server language that you're familiar with. Yeah, and I was kind of curious, you know, where you guys might go with that,
Starting point is 00:06:46 like if you guys would jump on a Node bandwagon from a server-side point of view. But, yeah, I think Python from a server-side would be okay. I don't see a problem with that. I mean, I've definitely shown some love towards Node lately, but there's no reason I wouldn't jump on Python or Ruby on Rails or any of those either. So I think as long as it's something that's a passion that drives you, or if you're trying to learn something to get you into a particular place in your market, you know, as long as those two things align with whatever
Starting point is 00:07:15 you're trying to do, then yeah, straight up, go for it. Yeah. So the second part of his question, though, is, you know, any resume or career is any resume or career advice and helpful tips about being a programmer and what to expect and how to break into the development side, where to go from there, right? User groups, GitHub, podcasts. Done. The user groups are huge. definitely get involved with some user groups not only not only because of the learning aspect of of hearing what the topics are and hearing you know like literally firsthand like people right there in front of your face telling you about the experiences that they're having but but just from a networking perspective, you know, the user groups are a huge,
Starting point is 00:08:07 can be a huge benefit to you, assuming that you have some user groups available in your area. Yeah, and I think what he's also doing with wanting to get into the Django project as well, like, you know, potentially putting that thing out on GitHub. If it's not something that you care,
Starting point is 00:08:23 you know, about open sourcing and showing other people your work, that's a good way to get into it. And having like a resume, an online resume to where you can show kind of what you've done, that's that can be big. And then the other thing I'll say is a lot of times data analysts, I've seen this in a couple different companies, they're really close to the applications already a lot of times so maybe if you spend some some of your personal time trying to write like maybe little utilities to maybe massage that data or something and then and then slowly bring that into the fold
Starting point is 00:08:56 at your job then somebody could see hey this guy's got some skills let's see if we could pull him into a more development centric type role you know i've seen that happen so that's that's not a bad approach either and granted that depends on the company that you're with like who knows we don't know the the insights as to whether or not that is a possibility but you know that's that's something to think about all right so our next question comes in and joe writes in says that he has done 80 percent of vb and vb.net and 20 c i assume he means in his entire career but he wants to know is there a reason he should migrate to c sharp since we've never mentioned anything about vb and would he get more
Starting point is 00:09:45 functionality or performance than what he gets from VB net yep and I am a C sharp snob I'll admit it I you know kind of scarred by old VB 6 I just thought it was kind of really ugly and so even though I know a lot of the problems are fixed with VB dotnet I just can't get into it and i feel like that's a feeling that's shared with a lot of people so i think it's kind of left a bad taste in a lot of people's mouths and so um you know maybe i'm just spoiled i guess but um you know when i especially when i think about things like the link syntax i think c sharp is just really sharp but But performance-wise, there's basically no difference. You know, there's a couple little things like vb.net has checked arithmetic.
Starting point is 00:10:32 And, you know, there's some different language constructs. But at the end of the day, both of them get compiled down to IL. So I would be really surprised if there, you know, if you could even find a couple examples that behaved wildly different performance wise so um you know uh it's it's about what you want to do though so if you know vb.net you're solving problems with it you like it um that compiles down to il it's kind of like why learn c sharp well i can tell you why so if you ever okay so let's okay so let's assume that right now you're doing vb.net and everything's going well for you right career-wise you're happy and all that but there's definitely a lot less demand for vb.net out there than there is for say a c-sharp or a Java. And if you did move on to C sharp,
Starting point is 00:11:25 that syntactically is much closer to a Java that if you ever did find yourself having to switch to Java, then at least it's not going to be as foreign to you. Right. I totally agree on all that. That's actually basically what I was going to say is syntactically. It's so close to a lot of other languages javascript java um c like i don't know it just translates better
Starting point is 00:11:52 well not c because c isn't class c is an object c plus plus sorry okay yeah so how about this how about instead take a look at f sharp which is it's kind of like you know if c sharp's one step in the c sharp direction and i feel like f sharp is kind of like, you know, if C sharp's one step in the C sharp direction, then I feel like F sharp is kind of like a hundred years in the future of C sharp. So you take a look at that. There's a lot of interesting features and you know, it's kind of a complimentary, so it's not so much doubling up and it still compiles down to IL and you can
Starting point is 00:12:21 interact with the VB stuff that you're familiar with. And so, yeah. So it sounds like the answer then is there's no reason why you don't have to. But for your own self-preservation, you should consider looking into a C-sharp-like language just to protect yourself. Totally agree. Okay. All right. you know to protect yourself totally agree okay all right and then seb writes in and says he's currently in a dilemma about which laptop to buy and he knows how we like hardware and wanted to see if we could give him some tips so here's the homework assignment that was given to us basically
Starting point is 00:13:01 right if you had eighteen hundred dollars that you were going to spend on a laptop no more right don't go overboard alan what what was your thoughts what would you do right like what kind of specs would you prioritize right would you go for a processor over ram or you know would you go for something mac based would you go for something windows based or would you just say you know what i know this is gonna be a dedicated linux machine like what what direction would you go all right so i did a little bit of research because i am a bit of a hardware nerd when it comes stuff like this and he did ask what would you prioritize the most and so first i think i need to split this up between mac and a windows based pc if you're going mac get the most you can for that eighteen hundred dollars because you can't
Starting point is 00:13:50 upgrade it afterwards and that's a big thing now that being said yes all three of us have macs i personally love mine i know outlaw loves his i don't really know what joe feels about his love it love it so that's three guys that do windows development that all three love their macs the issue there though is that with the with the budget of 1800 dollars though for the mac you're going to be locked into a 13 inch yes macbook retina that that's about that's about as good as it's going to get for that amount of money. I'm trying to stick rigidly to that budget. So check this out. So $1,500 gets you the middle-of-the-line 13-inch, which is a 2.7 gigahertz dual-core i5.
Starting point is 00:14:39 Right? i5. Now, some might be okay with that, but I just i want to make sure that like that stress that i you're not getting an i7 and that's with eight gigs of ram and a 256 gig uh ssd so on best buy right now looking at it you can actually get one for 100 bucks more than that for 1600 it's the 13.3 inch display like you said eight gigs of ram and a 512 gig right so you're talking about the 2.9 gigahertz yes dual core i5 yeah right i'm going off of like apple's i'm sorry i should have corrected that i'm going off of apple's uh base pricing and not like what you might be
Starting point is 00:15:18 able to find off of some random retailer because also by the way this question comes from the uk so what's the best buy here in the United States might not be available there. Right. Whatever. So, you know, if you were to order from Apple.com, that's where that $1,500 price came from. Now, check this out. While on the same Apple thing, and this is kind of interesting. Now, this is not going to be as fast an i7 as what comes in like the Pro, but they have a MacBook Air now, the latest model, for $1,550.
Starting point is 00:15:49 It comes with an i7, 8 gigs of RAM, and 512 gigs of flash storage. Yeah, and the reason why I didn't want to suggest the Air, though, is that if you need to drive any kind of graphics, that's where you're going to die. And also, by the way, I would completely stay away from the MacBook. As a developer, I would stay away from the macbook as a developer i would stay away from that one oh yeah the macbook not the macbook pro correct yes because that has like the uh it's the m processor processor it's a lot slower so your i5 is gonna smoke it right now as far as priorities though when he asked about that this is where vlad's advice comes in yep yeah you know
Starting point is 00:16:22 your first priority is ss SSD, SSD. Totally agree. So, you know, and that's where, you know, with the Macs, you're definitely going to get the faster, you know, SSD, because they don't use the SATA form factor, they're using the PCIe form factor. But, you know, I guess it really depends on what you want to use.
Starting point is 00:16:40 The one advantage of buying the Mac, and the one reason why I like the Mac hardware, is that it's the only piece of hardware that you can legitimately run every operating system on. Totally. Right? So if today you want to run OS X and you want to develop OS X apps and you want to be able to use everything that Apple creates, then you can. And I'm excluding the Hackintosh because sometimes with the Hackintoshes, there's, you know, in my experience, there have been problems where, like, you can't install some software because when it does its hardware inspection,
Starting point is 00:17:19 it realizes, oh, this isn't really a Mac, and it won't let you install it. But, you know and so you know if you if tomorrow you decide you want to run linux or you want to run windows you can do all that and you can dual boot you can triple boot you can you know however you want to run that mac you can and that's the one reason why i like the mac but with that 1800 budget, if you go back over to, he had mentioned Dell as one in particular, and you look at their XPS line, this is where that Core i5 comes in because not only do you get the same 256 gig SSD, but you get the sixth generation Core i7. Yeah.
Starting point is 00:18:03 Right? So, and that's at that's at 1550 so for 50 more you went up from an i5 to an i7 yeah i mean even if if you were to blow his entire budget and go for the 1800 they have the 13.3 inch uh xps 13 that's got that i7 16 gigs of ram and a 512 gig solid state well the reason why i'm staying away from the the the 1800 limit is because i'm trying to leave some room to like upgrade some things so like i'm just looking at base configurations and that way if he wanted to throw you know 100 in here to upgrade this or 100 in there plus taking into consideration tax and shipping and anything like that i'm leaving a little bit of wiggle room in there for that
Starting point is 00:18:46 so that hopefully by the time all is said and done, it comes out to the $1,800 range. So what you just said, though, and that was high on my priorities, and it may or may not be to somebody else, is upgradable. The Macs are not, period. Yeah, that's the problem. You buy what you get. So if you only buy eight gigs of ram and
Starting point is 00:19:06 you find out later you need 16 sorry guy you're gonna have to go get something else so that's super important in the windows let me ask you this how much memory you have in your machine right now 16 joe how much memory you have in your machine right now 16 oh wow i'm the low man on the totem pole yeah i i have i have eight and i haven't had any problems with it but i'm also not running virtual machines yeah concurrently i typically maybe this is one of the reasons why i prefer to just you know dual boot into boot camp rather than using a virtual machine so there's windows 4 anymore it doesn't have to be windows it could be linux right i actually dual boot both or no i don't't dual boot. I usually do VMs.
Starting point is 00:19:45 But there were a couple other things I wanted to point out here. One, in that same price range, you can get a pretty decent Surface Pro 4, which depending on what you're planning on doing, like that's 12.2-inch screen, I think. The MacBook Pro is only an inch bigger. It's not like world's difference. And depending on your portability needs and that kind of thing. So, wow, you've gone from laptop to tablet.
Starting point is 00:20:11 Right. And that could be something interesting. But then there's also. Because you're not talking about the Surface Book. No, no. The Surface Book, I feel like it's too pricey. But the other thing to consider, and this is, and as he said, there's tons of choices out there. But if you need discrete graphics, there's a lot of laptops out there that have them that fall in your price range.
Starting point is 00:20:37 So, you know, depending on what you're trying to do, if this is truly just a developer machine, then any one of the ones that we just mentioned would more than pan out. If you want to use this for some gaming on the side or something, then maybe you want to look at some of the MSIs out there or any of the Alienwares as well that come with discrete graphics and that kind of thing. So, and just to keep in mind, those MacBooks, those MacBook Pros that we were talking about a second ago do not have discrete graphics. They've, you know, they've basically got the intel chip built in so i can't find it now one of the dells i was looking at though it had a 4k touchscreen on it yeah that is insane yeah i mean there's there really are a lot of options but power prioritization of features we all agree ssd is up there for me memory would probably be next like the i5 or the i7 isn't going to matter that much for development purposes it will a little uh the
Starting point is 00:21:32 ssd you're going to see the most performance out of and then also for me how many external monitors can i push with this thing can i can i hook up to two monitors because if i'm going to set this down on the desk i'm probably going to do that so yeah i would say like what another thing that would be up there on my list though like pushing multiple external monitors isn't as big but definitely usb3 ports are big uh to do for me so i i would want to make sure i had some usb3 on there oh what were you gonna say joe just thinking now why don't you spend 1800 pounds and just buy the best macbook pro you can get and then you don't have to worry about any of this other stuff it's gonna have the ssd um you'll get a terabyte yeah it wasn't pounds dude it was dollars yeah yeah he wants you to spend 3 000 us dollars now yeah man come on up it up no but um the other thing too though just to be aware of
Starting point is 00:22:28 is software needs right the one thing that i really do love about mac software a lot of times if you buy it like you buy it once right like they're not they're not hitting you up for an upgrade every six months if it's stuff from apple if it's stuff from that's going to be the case but you know you're not going to necessarily use Apple for your... So one thing I didn't mention was that he's doing mostly front-end dev. So he's using Node.js for his back-end and Ruby. So it's not like the most process-intensive type of coding environment to begin with. So, for example, you know, he's not talking about running Xcode in a simulator, right?
Starting point is 00:23:13 So he's not having to emulate an iOS device, and he's not talking about, you know, Android know not having to run those emulate those devices already takes some processing power out of the equation because you don't you know you're not worried about that so i mean the core i5s on the mac would you know do everything that he would want to do but you know he would probably be as an editor probably using something like a sublime or an atom yep you know maybe uh webstorm but you know those are all fairly lightweight editors though yeah and the core i5 you're not going to notice the difference well i will tell you this too um if i remember correctly and joe you can correct me if i'm wrong i believe that the standard issue Mac for Amazon employees, Amazon developers are the 13 inch I fives. So,
Starting point is 00:24:07 um, I remember. Yeah. So, I mean, it's not like developers can't use these things. I mean, they're,
Starting point is 00:24:13 they are, they're definitely well regarded. And by the way, if you go to Amazon and just search for that price range and sort by customer rating, that particular 13 inch Macbook with the 8 gigs of ram and the 512 for 1600 bucks has 621 reviews with a 4.9 yeah that's unheard of yeah and there's a reason they are fantastic little computers you typically at least here in the states you typically typically can buy the max from apple and get you know uh somewhat of a
Starting point is 00:24:47 discount compared to apple.com but i don't know what am you uh amazon.co.uk would translate to so that's why i went with you know just apple.com and even dell.com so the prices that i mentioned on the dell those were coming straight from Dell.com too. Yep. All right. Hopefully that helped. Hopefully. MacBook, yeah.
Starting point is 00:25:14 I mean, we all, I would get one for that price. Well, I will say this. Or the Surface Pro 4. Any conference you go to, you're going to just see that, I don't care what the language is, but you're going to see MacBooks scattered all throughout that conference. Yep. Or Meetup or whatever your choice of developer meetup or gathering happens to be. Yep. All right.
Starting point is 00:25:35 So let's get into the meat of this episode, which is really just more of a water cooler conversation. Right. So we're going to, we're going to keep it kind of light and easy this time. And, uh, you know, I,
Starting point is 00:25:51 I've just had like a bunch of random thoughts that have been on my mind for weeks now that I've just been kind of like writing these down and we'll see where this takes us. All right. Cool. So you guys ready? Yep. So I think you're going to like the first one,
Starting point is 00:26:04 especially Alan, but, uh, you ever, as a developer, takes us all right cool so you guys ready yep so i think you're gonna like the first one especially alan but uh you ever as a developer i maybe this may be isolated to us i don't know but like you'll have your your your tools are fine there's nothing wrong with them, but you just have this urge. There's this like urge inside of you. This like, I need to buy something new. And, and you know, so,
Starting point is 00:26:32 so like, you'll just like look around and you'll just get kind of tired of things. Right. And so I'm kind of going through that like now for the past several weeks, my keyboard, I'm like looking for a reason to replace it the batteries died i really am it's like and it's like every time if there's just the slightest little problem where it doesn't respond i'm like oh it's time this thing's got to go let me describe like we've
Starting point is 00:27:02 talked about this logitech keyboard that i have it's though i think it's called the wave yep i forget the model number off top of my head but like k520 or 530 i think it's like an mk something i don't know because that would be mouse and keyboard um so it'd definitely be a case i'm like i don't forgive whatever we even look it up later but the we we've linked to it many times before in in fact in the last i think in the last time we did the uh uh the tools the developer tools when i think we've talked about it both in both past episodes i i liked this keyboard and i've used this thing so much that i have literally typed the letters off of the keys right they didn't start out like you know how you could buy like a code keyboard and one of the or
Starting point is 00:27:46 no maybe it's the dos keyboard where like one of the options is that the keys are are blank right right and they're like trying to be like oh you know cool about it like look it's blank but i've typed mine off mine's blank not because it came that way but just because i've typed them off right and and like there's some of the keys that are like so like the plastic is worn smooth Mine's blank not because it came that way, but just because I've typed them off. There's some of the keys that are so... The plastic is worn smooth and shiny over the time. But I'm just kind of like, man, look at that DOS keyboard. I want one of those. Any of the keyboards that we've talked about, go back to the developer tools.
Starting point is 00:28:24 All of those keyboards, I'm like, oh, man. What was the Ergodox? Yeah. The Kinesis. I totally want to do that, yeah. Especially the idea of the split keyboard. Yeah. Like the Ergodox.
Starting point is 00:28:37 Yep. I'm like, I have no good reason to buy that keyboard, but I so badly want that keyboard. So, I get emails from mash drop all the time which is like headphones do not forward those to me yeah sorry so ergo docs will occasionally be on there for sale for like the entire kit and you get to choose the cherry switches you want and so it's like oh man let's do it i can't. I need to stop looking at this right now. Yeah. Because I totally, I'm the same way.
Starting point is 00:29:07 I have no good reason whatsoever that I need to do this, but it's like, hmm, I haven't bought anything in a while. Right? What is that? Yeah. At least I feel better that it's not just me. What's your latest addiction? I know you've got a stack full of mice over there, Joe.
Starting point is 00:29:27 What's been your latest splurge purchase? I was passionate about the mice for a while, but I don't really get that way about hardware or cars. I just can't. But I do get that way about my hobbies. So if I'm into bike riding a lot, at the time, I'll be looking at pedals and and handlebars and then I'll get into some, you know, board game or something.
Starting point is 00:29:48 And I'm like, oh, I need to get some plastic sleeves for the cards, you know? So I definitely enjoy spending money. I really expected Joe to mention his guitar at this point. So I'll do it for him. Oh, yes. Oh, my guitar doesn't have enough strings. I should buy a seven string.'s right and i've got like
Starting point is 00:30:07 10 different kinds of uh guitar strings to change it to so uh whenever uh you know every two or three weeks is up i change it to try something new i also updated the pickups in it and did uh some other work on it so yeah i i definitely like things to fiddle on you know what i just recently bought because my sit down-down stand-up desk. I was like, man, I really don't like standing on the floor. So I was like, okay, I've got to buy a standing pad. I've used it twice, I think. But, you know, I had to have it.
Starting point is 00:30:35 It needed to be there. Well, that actually makes a lot of good sense there for you. It does. Because you have hardwood floors. So you standing on a hardwood floor is horrible for your feet and back though yeah they hurt and the pad does help it does help but yeah i don't know i definitely get that way i can't i can't help it and for me what joe said is not his thing hardware and cars like those are the two things for me that are problematic oh yeah i know because like every three weeks i hear this rant from alan about
Starting point is 00:31:06 how he wants to buy the hellcat and i'm like it's not a rant it's just been like how many months is that carbon out now a year still doesn't have one yet but like every week it's like every every three weeks because it'll go for a little while where it's like not so like on on his mind but now that i've brought it up oh I'll definitely be hearing about it tomorrow. Look at how gorgeous this car is. It's a family car. I can haul groceries in this thing. Yeah, man.
Starting point is 00:31:33 Fast. So, yes. You're not alone. Yeah. And I'm totally with you on the cars, too. I'm the same way with that. So, okay. So we beat that one.
Starting point is 00:31:46 But how about this one? So we talked about that, the Pluralsight course on, let's see, it was Relay, Flux, GraphQL, and React. And I believe I named everything. Well, I was using Webpack and Node.js. Yeah, that was all of it. I believe those were the four big ones, though I believe I named everything. Well, I was using Webpack and Node.js. Yeah, that was all of it. I believe those were the four big ones, though, that I named. And, you know, so I'm watching this thing, and, like, this thought occurred to me that, like, as I'm watching this, not only am I, like, if you haven't watched this presentation. We linked to it in an episode or two back.
Starting point is 00:32:25 But it really is a great presentation that the guy gives. And so not only am I just mesmerized when you're watching this thing, but you ever have like framework jealousy? Because like you're watching this thing and you're like, man, why can't it be that easy with the tool set I'm working with? Right? Yep. Yeah, totally.
Starting point is 00:32:47 That's how they get you to change. Right. So what framework was it? Just what he said, React, Flux. Oh, that's all right. GraphQL. I was thinking it was like the specific JavaScript framework. Oh, no, no, no, no.
Starting point is 00:33:00 But I mean, just that he was in those frameworks. And it was just kind of like, oh, that looks, just looks so nice. I would like to be able to try that, you know, but you know, in the current tool set that we're using work, it's like, well,
Starting point is 00:33:10 that's not really going to fly, you know, right away. But then at the same time though, you know, because there's also the, uh, Oh shoot.
Starting point is 00:33:20 What's the term for it? Not the, not the framework jealousy, but grass is greener. No, no, no, no, no. There's a specific term within the JavaScript community about fatigue. Oh, yeah. Framework fatigue.
Starting point is 00:33:34 Tool fatigue, yeah. And I was like, yeah, I guess if it was that easy to just switch to a new framework, I could see where fatigue would definitely set in. He's like, oh, great. Thanks for introducing another framework that we all have to learn. Thanks. But we've talked about this before in these plural site courses and anything that you see that somebody is presenting, that's all well prepared because we all know that the simplest of things never is. Right. So, you know, even though that course flowed
Starting point is 00:34:06 incredibly well, like it really did, you know, he wasn't doing all the complex business problems that you're going to have in a day to day, you know, programming type thing. So yeah, everything looked bright and shiny, but you know, he had a few drop downs on the page. Like it was nothing major. Right. Like, well, OK. I mean, but but the course that he was providing wasn't on like, you know, hey, let's build the most complicated app. It was on, hey, let's go over some of the core features of these frameworks. And, you know, we'll use a simple app so that we're not. It's concepts. Caught up in the complexity of the app.
Starting point is 00:34:48 We can just talk conceptually, right? So, I mean, that's done on purpose. And every course that you ever watch or take is like that. But that's where the jealousy comes in, right? Because you look at it, you're like, oh, man, that looks so awesome. And not knowing what kind of pitfalls you would hit in that versus the current framework you're working in. Right. That's what I'm saying is like, and we've talked about it before is it's real easy to feel like the grass is
Starting point is 00:35:12 greener on the other side, not having been to that other side. Right. So, yeah, yeah. There's definitely a lot of truth to that, but I will say this too. And, and so I'm, I'm not sure if I'm going to be in the minority on this one and i'm fully prepared to be in the minority and not only am i prepared to be in the minority i'm prepared to receive my lashings for what i'm about to say but so i know you watched it right you watched this particular course in uh joe did you watch that particular course too not a picture on the spot okay um so then maybe this question is mostly directed to alan but was your feeling on graphql that it was kind of like a javascript version of entity framework no i kind of felt that it was because you had to do, you had to set up your schema.
Starting point is 00:36:07 You even in that course, he specifically had a schema object that he set up and you had to set up all the definitions of it, of like what you wanted it to eventually map to. Right. And you had to set up all this. It was basically like, like an entity framework,
Starting point is 00:36:23 which is, you know, the, the ORM the popular ORM for a C sharp for those who aren't familiar with it um with entity framework there are templating tools out there to where it can automatically create your ob your objects of your it can map your database into objects for you, right? And in this course, he was kind of doing that, but by hand, right? And that's where it felt like, I was like, well, this is really cool. And if you're definitely only in a JavaScript world, like maybe Node
Starting point is 00:36:58 is your backend, right? Then it feels like this is your entity framework answer for JavaScript. But I was looking at that video, watching that video, I'm like, man, how painful would that be if you are in, you know, you're using this framework that he had on the front end, which was, you know, React and GraphQL and whatever. But then on the back end, if all your server-side APIs were, say, in C Sharp, for example, and you had entity framework on your C Sharp side, and oh, by the way, because you're using GraphQL, you're recreating your schema objects in there to match what you want to do.
Starting point is 00:37:43 So I get what you're saying. And I guess if I didn't know about Breeze.js, I would probably agree more because Breeze.js literally is what you just said. Okay. It's almost like Entity Framework in the JavaScript world. Where GraphQL, sure, you have set up your schema and your relationships.
Starting point is 00:38:03 You have to do that. But I think the part that graphql grabbed me was the fact that you tell it how you want the data back right and that's that's why it was so so how is that any different than like okay let's go back to the let's use entity framework as our example here an entity framework let's say you had a products table and it creates a products object and in that products object definition, or class definition, it has, you know, a property for each column that that, you know, that row would have, right? How is that any different than if you in your GraphQL setup, you know, when you're defining how you want the data back, as you put it, because
Starting point is 00:38:41 you're defining how you want the JSON to look like, right? How is that any different? So the big difference is, let's say that if you're doing this on the server side right when you want something like that it's not like you can just issue a link statement randomly from somewhere and say hey give me back the data in this format right that would be amazing if you could just say okay from my ui UI, from the client side, I'm going to pass you a link statement. Now give me back all the entity references. Are you saying link as in like L-I-N-Q? Right. So kind of that's really the –
Starting point is 00:39:12 You kind of can though, right, in C Sharp because you could totally do a link statement. Well, that's what you're talking about when you said link. No, that's what I'm saying. So the equivalent would be with GraphQL, you can basically say, okay, I want products. And then as a sub array, give me the orders that are associated with it. And then a sub array of that, show me the customers. Oh, and then on that same level, show me some other information, right? So you can literally say, I want all these things back in one request and I want it shaped like this. And you can do the same thing in C sharp.
Starting point is 00:39:43 You can in C sharp, but you can't do it from the client to a C Sharp. So the difference is what I'm saying is right now the way that everybody thinks about server-side things is we create RESTful APIs or something. I see where the disconnect is between us. The disconnect between us is that you're saying that hey just because i requested it this way i'm assuming that the back end knows how to do that how to return it back in that way and in his okay this goes back to your point about how this presentation was crafted in a way to to shape what he wanted to show right and so there it was now he was using a mongo db you know so a document database in his uh in his presentation if he had instead been hitting like a c-sharp rest uh endpoint right he's not gonna
Starting point is 00:40:38 be able to just say this is what i want back no yeah because he shows it no yeah so check it out in that same course and this is why i got so excited to bring up the star wars api star wars api so what they did with that is there's an existing star wars api set of endpoints right they created a schema on top of that that is able to relate those right and then he also makes the point of saying that in that if i remember right he made the point of saying that in that case if I remember right, he made the point of saying that in that case, it was still making all the individual queries to come back to shape to return that one thing as one. It wasn't making one query. Correct.
Starting point is 00:41:12 And I don't care about the one query. What I'm saying is the beauty for GraphQL to me, yeah, you got to set up schema. You got to set up things for anything that you want that does things for you, right? That's not what did it. It was the fact that, so in typical web programming or client server type programming things today, if you have like, say an order, right? And let's say that you have an order API and an order detail API. Typically the way things happen nowadays, unless you write custom stuff server side, you're going to retrieve that order and then you're going to, okay, that order came back.
Starting point is 00:41:51 All right, now I have the order ID. Now go retrieve the order details. So you made two requests to get that data back. Whereas with GraphQL behind the scenes, what happens is you tell it, I want the order and the order details back in this one request that I make. behind the scenes what that does is that makes a query up to the graphql but behind the scenes in this case is still client side so it's not really behind the scenes it's still just behind it's still in the yes because in that star wars example no the star wars so the star wars is server side the star wars example though what i'm saying though is that like he wasn't issuing a single request to the star wars ap though what i'm saying though is that like he wasn't issuing a single request to the star wars api and getting back multiple results right if i recall he said
Starting point is 00:42:30 that it was still making like multiple requests play with it no you can go play with it that's what's how you guys losing me what's the star wars api okay so it's it's if you look for swappy sw api and then graph ql it'll pretty much bring up the github page and then from there you can actually amazing dude from there you can actually click it and if you start typing you can make you can shape the data that comes back which is. So you can say query and then open. I can't even remember the syntax now. Okay, so it was, hold on, let me just give out the URL because it was graphql-swapi, so starwarsapi.parsap.com
Starting point is 00:43:17 was the one that he used in the presentation. And then that brings up, so here, I'll walk you through it real quick. Start typing or do control space, just like your favorite editor. And you're going to get query. All right. So do that and then open up a, um, uh, do a curly brace and then do a control space. And you're going to see all films, film, all people, person, whatever. Go ahead and do all films and then do
Starting point is 00:43:45 another curly brace and then from there you can say okay give me the page info and then from that you can say all right open up another curly brace and you don't even have to do colons by the way you can do all kinds of crazy crap but basically then you just run this thing and it will bring back the data in the uh so i might have done mine wrong. But so what it does is it shapes it by making one request to the server. GraphQL goes and calls all the endpoints that it needs to to bring that data back. GraphQL is on the client side.
Starting point is 00:44:16 On the server side. It is not the client side. This page that we're looking at is the client side. GraphQL is all running on the server is basically middleware that is now calling all those various different apis depending on how you want to shape that data and slick that is why it is so sexy it has it's really okay so but still my point was it was still making the multiple calls though no it's making one call it's making one call from the client to
Starting point is 00:44:42 a server and then graphql is wrapping those REST APIs to make those. There's your multiple calls. Okay, so we agree that there are multiple calls. From the server. You're only making one from your client. Fine, fine. So that's a big distinction. I'll concede on that.
Starting point is 00:44:56 That's a big distinction. I'll concede on that point. Okay? Yep. But you're still, though, like, I'm not saying that I wouldn't love to work with this thing. Don't get me wrong. But what I'm saying is that if, let's say that it was an e-commerce project, right? And on your server side, your C-sharp rest endpoints in this case that we mentioned, this hypothetical case, you know, it has its own copy of what the schema looks like.
Starting point is 00:45:27 And now you have another copy of this thing, but in a JavaScript form. And I get that what you're saying is like, and I like that about it, that it is a little bit more looser about it, but it's still like, man, that seems like it could become a nightmare to maintain i i would think that like with anything like with entity framework for instance
Starting point is 00:45:50 if that were the case there's going to be tools out there that map that stuff right well that's the point is that on entity like on an entity framework you do have a generator that would um do that for you right but in the case of a GraphQL, you wouldn't. I think you, I don't know. I mean, again, I haven't. I'm getting totally lost here. Can we start over? So check it out, Joe.
Starting point is 00:46:16 I just pasted in a thing and you can run it and you'll see how it shapes the data coming back. If you paste that into that page. Yeah, I get awesome results and I get that. It goes off and figures out how it needs to query this stuff. And all I care about is the format that I want. And I just, I basically define the data that I want and it's responsible for getting it back. Exactly.
Starting point is 00:46:35 That is the key. Whereas everything else we've always done client server is you build your server side endpoints and then you make everybody conform to those. Right. And that is where I think this is so genius. You have your server-side endpoints, and then you make everybody conform to those, right? And that is where I think this is so genius. You have your UI guy. You say, hey, dude, go write your GraphQL query. You have context-sensitive type stuff here. You just hit control space, and it'll pull up the things you can do.
Starting point is 00:46:58 You tell it what you want, man. It's all on you. I kind of feel like it's like writing a select clause in a query without the from. It's so amazing. No joins. It's just this is what I want. I mean, it kind of is like that, though. I mean, that's pretty cool.
Starting point is 00:47:14 I know you're kind of joking, but I'm always kind of joking. It's my shtick. So, all right. What was the original question, though? Here is a what? what was it what we were what was the topic what we were talking about oh i i was i was uh getting my lashings for saying that uh oh it's kind of like graph ql is kind of like entity framework yeah if you look up breeze js that is straight up entity framework on the client yeah i wouldn't say it was straight i was just saying it was kind of like
Starting point is 00:47:45 yeah now graphql just to me is more of a tool for ui or client centric people to be able to say what they want as opposed to here's what you have access to here's what you want but here's here's where i was coming with that though like because with entity framework you could totally write a link query that could return back an anonymous object that would be like whatever you wanted it to whatever data you wanted to have come back. But you're defining that hard. Like, if you say if you say, for instance, you wanted to create this thing. Well, it's compiled. So, yes, it's going to be a little bit harder than JavaScript.
Starting point is 00:48:21 No, not harder. Not that JavaScript isn't compiled, but it's concrete is what i'm saying is if you want a particular query because it's into a compiled into a binary format that you can't modify sure i'll give you that but i'm not talking about from like you know um trying to be like oh god i wish the words for it i'm not trying to be that specific i'm just saying that conceptually, when you're working in an entity framework environment, you could write queries that are, if you wanted to just return back a random thing
Starting point is 00:48:55 that isn't really a type in the database, you could totally return those back. You project those. And iterate over those or whatever you needed to do. So, whatever. I think we've beat that one to the point enough know enough but well here's what i want to know right this is clearly really cool um we can have a link where you can check this out well what i want to know is is it so cool that we're all going to be working with this three years from now or is this like
Starting point is 00:49:18 cool neat trick you know well i mean it's not going away anyway this is this is out of the facebook lab so this isn't going away anytime soon and they use it yeah so uh you know right react flux graph ql i mean this is all you know in their uh wheelhouse of technology tools that they use so i mean so is this like the future of rust so you it that cool? Yeah, I mean, to answer that specific question, I feel like this is a bigger deal than a lot of the other frameworks out there. Like, you've got React, you've got Angular, you've got all these things, right? This actually changes the way you think about doing things. Where those frameworks are, they're made to help you accomplish
Starting point is 00:50:06 things this makes you think about oh man we can actually enable somebody to do something so in my actually kind of feel it's like not thinking about it because the flip side is oh i got to think about this endpoint and they're going to want back all the specific data and with graphql you're like you know what let them figure out what they want i'm just going to provide a bunch of different endpoints and they can figure out what they want. I'm just going to provide a bunch of different endpoints, and they can figure out how they want to, like, cobble it together. Yep. And that's why I think, yes, this is maybe not this particular technology.
Starting point is 00:50:34 I don't know. But this way of thinking, I think, will start permeating its way into development. All right. So I guess we're going to have to give Alan one, Michael zero. I guess I got beaten pretty good on that one. I still feel like it's kind of like
Starting point is 00:50:53 just because the fact that you're defining a schema and you might have to be doing it in multiple places. You do have to set up your mappings. That is additional work, no doubt. In that example that he gave, it's rather small, but on a large project, it seems like it could become tedious.
Starting point is 00:51:10 So at any rate, we beat that one enough. So we've had people write in before and complain about ReSharper and how they don't like it and how it slows things down. And I even just recently heard you alan mentioned the same thing which kind of shocked me because i was like wait a minute what when did that happen when did alan stop using resharper specifically because he was complaining about it being slow it's been it's been a while like i i seriously got to the point where i was like i i feel like i'm waiting for things too much and as soon as i uninstalled it everything was good so i was like you know
Starting point is 00:51:52 what as much as i love it i'm just not going to deal with it so you feel differently if you were 100 c sharp maybe that that that's a very good. I probably split my time 75 front end, 25 C sharp. So, yeah, if I was doing a bunch of. No, he is totally lying. He is totally lying. He splits his time. His time is probably like, you know, a thousand percent SQL. A hundred percent javascript and like some five percent c-sharp now i'm not a mathematician
Starting point is 00:52:31 so i think i have the percentages i think those add up correctly that might be true but yeah i think i think that's a good point if i was doing doing C-sharp 80% of my day, I would probably go back to ReSharper and just bite the bullet and be like, you know what, the headaches or the slowness and my computer fan sounding like a jet engine are probably fine. Well, now here's why I bring it up, though.
Starting point is 00:53:00 So I think we've talked about this before about how, I believe it was with ReSharper Ultimate or maybe it was with ReSharper 9. But I had upgraded it without even thinking about it, installed it, and then within the first month was like, oh my gosh, I got to get rid of this. And I forget what the specific problem was that I was having. I think there was like a specific bug or something that i was having issue with at that time and and so i was like well i can't work like this so i needed to uninstall it and uh but i forget how many months ago that was but i have since you know reinstalled it long ago and have been continuing to use it. But the one thing that I did different this time. That I have never in the history of my ReSharper usage done.
Starting point is 00:53:52 Is that when you install ReSharper it gives you this option of. Hey do you want to use the ReSharper key bindings? Or do you want to use the Visual Studio key bindings or do you want to use the visual studio key bindings and historically i have always stayed with the visual studio key bindings and my reasoning was because like well why do i need to learn the resharper key bindings i already know the visual studio ones let me just continue with that but because of my growing love affair with webstormorm, you know, I decided, well, yeah, if I'm already using WebStorm so much, you know, I'll just use the WebStorm key bindings. And then that way, you know, it applies to both IDEs, right? Right.
Starting point is 00:54:39 And, yeah, you use the key, the ReSharper key bindings in Visual Studio, and, yeah, it's slower. Really? Yeah. You use the key, the ReSharper key bindings in Visual Studio. And yeah, it's slower. Really? Yeah. And that's why I'm wondering, like, is that how you've set it up? And I'm wondering for like other listeners that have complained about it. Is that how they've set it up? Because there have been times where like I want to do something as simple as comment out a file. And ReSharper will pop up a little window saying ReSharper is thinking. And I'm like, thinking about what? Right. Add two slashes to the front of the line and move on pal right no i definitely went with the uh visual studio key bindings because i was in the same boat at the
Starting point is 00:55:16 time i knew visual studio so i was like yeah i don't want re-sharpers so that that's most definitely what i used are you still using re-sh, Joe? No, and it's a similar reason to you. Basically, I figure I'm doing about 30% C Sharp right now. And what I kind of told myself is if I get back to 50% or if there's at least a week-long period where I'm doing it over 50%, I'm going to reinstall it. But for now, it's just not worth the slowness when I'm doing JavaScript or SQL. Wow. Listen to you both. Wow. I never thought I would would say that i feel like i've just been deserted i'm here on this little island all by myself this little island of resharper well you remember jim breens
Starting point is 00:55:55 is never going to sponsor us now by the way so way to go guys way to go well you remember though back i think it was version 7 i absolutely version 7. There was no real discernible difference between speed with or without it. But the tools were amazing. And then it seemed as it progressed, it just got slower and slower and slower. And I was like, okay, I can't hit. It's like you say, go to comment out of line and wait for 20 seconds. And it's like, I don't have time for this. Yeah, but that's literally the only problem that I've noticed though is with the key bindings and and i haven't
Starting point is 00:56:29 tried it yet but i've been meaning to i just haven't had the the downtime to mess with it but um i have been wanting to uninstall resharper and then reinstall it but go back to the visual studio key bindings and see if i noticed that and in in fairness to resharper when it does that you know resharper is thinking crap then it's not um it's it's usually like after i have just recently opened the solution or something like that and yeah um and it'll do that so it's building up its caches and everything so i'm like okay fine you know i this is stupid, but I'm willing to kind of give you a pass because at least once you get running, then it's fine. I don't have any problems with it.
Starting point is 00:57:14 But to say that you're not going to use it, how do you do unit testing without it? Copy and paste. Oh, Visual Studio runs and unit tests now yeah but come on man like i gotta have my dot cover in 2015 oh yeah well the the plug-in yeah i mean i just did that today as a matter of fact like i don't know i mean there's some things that i miss about resharper but there was nothing the the refactoring was really good in it right but? I'm a big fan of the refactoring capability. The formatting was also very nice.
Starting point is 00:57:49 But the testing, though, that's a deal breaker for me, though. There's no way I could not have my dot cover, resharper and dot cover in there. Yeah. I felt like the pains of living with it were worse than the pains of living without it. And you know what? I'll say that i still have a license and i still use it for like pretty much any personal project i'm doing in c-sharp and i think that it has to do a lot with the size of your project so if you're in a small project
Starting point is 00:58:14 you'll never notice the difference if you're in a ginormous you know bazillions of lines of codes project then that's probably when you're going to notice the problems at least that's what i have yeah that's an interesting point though but i think the problems. At least that's what I have. Yeah, that's an interesting point, though. But I think I've seen my key binding problem on smaller ones, though. I think. I could be wrong. Now I want to go back and test that.
Starting point is 00:58:37 Maybe I'll give it another shot here soon. I just haven't had the desire. Blasphemy. It really is, because I loved it. I absolutely loved it until I didn't. Crazy talk. It's kind of like the X, right? Yeah. All right.
Starting point is 00:58:51 Visual Studio has also added a lot of features that I really liked. Yeah. 2015 stepped up its game a lot. Yep. All right. So let me just say first off that everyone that has already taken the time to leave us a review like i know that we've said that we appreciate it but we are not lying when we say that we do truly truly mean it it really does mean a lot to us and and if you haven't
Starting point is 00:59:21 already left us a review, now's your time. Pause. No, you can keep listening. There's no reason to pause. Because the next piece of important information might help you. So you can head over to www.codingblocks.net slash review. And there's some helpful links there to send you over to iTunes or to Stitcher to, to leave a review for us.
Starting point is 00:59:49 Um, if you don't have iTunes already installed and you install it, Hey, thank you. Right. That, that's a huge effort on your part and we truly appreciate it. But,
Starting point is 01:00:01 but do know that it really does, uh, put a smile on our face when we read those reviews though. Yeah. And for all you guys who have actually requested Slack invites and, you know, left us,
Starting point is 01:00:11 you know, nice little reviews in those as well. We appreciate them. If you wouldn't mind just copy and paste those, but no, seriously, thank you for the kind words for everybody who spent the time doing it. It's,
Starting point is 01:00:23 it's huge. It's been a Slack. Uh, you all should join Slack. It's a lot of fun, and there's a lot of really interesting characters in there that are always dropping excellent knowledge. And I feel like I'm learning something new every day and definitely getting lots and lots of chuckles. Yeah. Which brings me to another topic,
Starting point is 01:00:44 because my Slack invites are better than yours. Absolutely. Mine is invite sent. You know, if you have been a lucky recipient of one of the responses from me on your Slack request, you can understand what i'm getting at because if you simply received a uh you know invite sent from alan or joe there's an exclamation it's awesome but what i mean though is it's like it's kind of like just boring then then you understand because i because even if i do like now admittedly like some of my first ones when we first started doing it were rather lame like that. But I quickly grew tired of that.
Starting point is 01:01:30 But there have been times where like even if I have said something as boring as invite sent, I've tried to put like little Easter eggs elsewhere. And I don't know if you've caught any of those. Have you? Joe, have you? I've seen a few, yes. There have been some awesome ones. Here's an example of where it'll say, sent from Alan's iPhone. Shh, don't tell him.
Starting point is 01:01:54 That's actually the one I was thinking of. My favorite is still Absolute Slack and Lootly. Absolute Slack and Lootly. Yeah, that was a good one. I started doing that one for a while. Yeah. But you know the problem about you making this public now? Everyone's going to expect it?
Starting point is 01:02:07 Yeah. So it's almost like when somebody tells you that, man, that movie was so amazing. You get there and you're like, I didn't really get it. I thought you were going to say the movie had some awesome scene after the credits and now every movie has to do that. Yeah, you're setting yourself up now. Everybody's going to expect higher. You should have just kept the bar the bar low yeah i probably should have but honestly though i've had fun trying to come up with like creative little things to put in there and then sometimes sometimes i'll really be like and it's stuck i'm like ah man what should i put there but yeah and and also
Starting point is 01:02:40 too like sometimes like a joke will come to mind like something i should say and i'm like you know i probably shouldn't say this because i don't exactly know what part of the world this person's from. Right. And, you know, not every joke in text form is going to translate well. So maybe I won't use that. So this is also his public apology. Yeah, it's just the inner thoughts of my head you're getting to listen to, so sorry.
Starting point is 01:03:07 It's me and Joe with the boring Slack replies. Yeah, no, I have to apologize for being boring. Thanks, Michael. You're welcome. Well, actually, that's my way of helping the listeners or anyone who does future requests because now I'm kind of throwing the gauntlet like you guys got to
Starting point is 01:03:24 step up your game here. I actually know what I'm going to do now is I'm just going to wait for you to reply to them all. You're going to leave it as homework for me? Thanks. Wow. So you guys want to guess how many people we have who have joined our select channel? 250.
Starting point is 01:03:40 Oh. No. 212. Wow. And you guys should join too because uh it's awesome it is growing fast it's pretty amazing and there are just incredible people more than 200 other like-minded developers for you to chat with yeah what's your favorite channel oh dev talk yeah i think dev talk is probably my favorite too yeah i also like dieting too that's a good one too yeah yeah hmm yeah dev talk's probably my favorite and i like general too because even though we have a random channel that's where most our random stuff goes yeah it does it does like like the michael
Starting point is 01:04:19 one drive i believe happened in in general yeah Which if you missed that, then you missed some awesome humor there. But all right. So what we got next? Oh, sorry. I was playing Stardew Valley. Didn't what's going on? No, I think it's time we do an ad spot. Oh, okay.
Starting point is 01:04:43 Yeah. It's your turn, right? Thinking about becoming a software developer? Check out Dev Bootcamp, the original short-term immersive software development program that transforms those new to coding into job-ready, full-stack web developers. Learn front- and back-end web development,
Starting point is 01:05:00 teamwork, and leadership skills in a rigorous and inclusive environment. Dev Bootcamp has several locations around the country and is accepting applications now. Visit devbootcamp.com slash codingblocks to learn more. All right, so in the last episode, we have fun with our surveys as always and the survey was related to get one of my favorite topics squash or not to squash now alan's already got a smile on his face does that mean you cheated alan i have not looked but apparently i won all right wait what what are you doing all right so here were your options okay i squash because i, meaning that you do squash.
Starting point is 01:05:47 Or everyone can learn from my path. I don't squash. Or, wait, what are they talking about? Or, I suppose, but only if it's convenient. Now, Joe and Alan, you haven't cheated, right? You haven't already looked at't cheated right you haven't already looked at the results i haven't even looked at the emails that come through okay alan or i mean joe i have not but i did want to point out that since we started that survey so github has actually added the feature to do this well as well via checkbox okay well we'll come back to that hold on so of your four options squash don't squash what or i suppose
Starting point is 01:06:30 which one do you think was the overall winner do you want to or do you want to do like a one two three four like you want to rank which ones or you just want to give the overall winner overall i know the winner is already oh my god joe did you cheat no i just know oh everyone can learn from my path all right what percentage do you think it is you think it's you think everyone 60 wow you think it had a commanding lead at 60 okay 60 of the vote joe which one do you think i think that if it's convenient, got 75%. Really? Yeah. Wow. Both of you guys are confident in your answer. Yeah. If you weren't lazy, you wouldn't be a programmer. That is true.
Starting point is 01:07:12 That's kind of true. That's a Larry Wall quote, too. Yeah. Well, you're both wrong in your percentages. I'll go ahead and I'm going to bring you down easy. But, Joe, you're more wrong in your percentages. I'll go ahead and, like, you know, I'm going to bring you down easy. But, Joe, you're more wrong than Alan is. I'm not surprised. I hate that he won.
Starting point is 01:07:36 I'm going to go ahead and say that. I'm going to take my ball, and I'm going home. Alan, two. Outlaw, outlaw 0. Dang. So that really makes it hurt even more. So everyone can learn from my path. Don't squash.
Starting point is 01:07:56 One with 34% of the vote. I wasn't super high. Okay. No, that's why I was so excited that you both were so confident. Everyone thinks the way I think. All right. Okay. No, that's why I was so excited that you both were so confident. Everyone thinks the way I think. All right. So Joe's was second place, I suppose, but only if it's convenient, is 25% of the vote. And then tied for third place was I squash because I care at 20.5%.
Starting point is 01:08:24 But then, wait, what are we talking about? Was equally tied with it. Like, what? What? Oh, that's amazing. Why is that equally tied? What percentage of people, working developers, do you think are not working with the distributed version control system?
Starting point is 01:08:40 Oh, I'd say a large. That's an interesting question. I'd say a large. I'm going to guess 22%. So, yeah. them oh i'd say a large question i'd say i'm gonna guess 22 so yeah so at any rate alan to michael zero well if you ever want to feel better we can go play tennis oh my god that would make me feel a lot better it would actually actually you and joe sure i feel good i feel comfortable with that actually I feel comfortable with that yeah 34% agreed with Alan
Starting point is 01:09:09 yeah baby that's never happened it's usually 60 wow walking around the puddle or through it so to Joe's point that he brought up though so GitHub recently introduced a feature where when you merge in a pull request,
Starting point is 01:09:30 there's now a checkbox to where you can squash the commit as you merge the pull request in. And Visual Studio Online also has this feature, and surprisingly, they introduced it before GitHub. Boom. So that's one way to squash your commits, but I kind of have my own reservations about that. So I don't know what your thoughts are on that scenario but because if you aren't the author of that if you're the author of that and you just and you are the one who gets to push the button to to merge the pull request in it's already been approved but you get to merge it in and you get to squash the commits then i'm okay
Starting point is 01:10:20 with that but if somebody else does that behind you then that's where I kind of take issue with it. Because now if you're still the author of it and you start merging in things, you're because they squashed it, it's going to be different commit IDs. And now in your local repo, it's going to look like your commits have never been merged in. Yeah, that's interesting.
Starting point is 01:10:43 I agree with that. So you should never merge other people's pull requests? No, I'm okay with merging other people's pull requests. I feel uncomfortable about squashing their commits. That's the part that I'm not so crazy about. So I guess it depends on the repo and what the rules of it, of that community are and everything. But I don't know, just my random thought on that one.
Starting point is 01:11:09 Yeah, that's interesting. So Joe had an idea for our next poll. Joe, do you want to intro that one? Yeah, so a recent announcement from the Build Conference that's been making some waves is that Bash is coming to Windows. And there's a lot of talk about what that means for powershell and windows and docker and all sorts of stuff and so what i want to know is um what you guys think about this and uh specifically i want to know if this is the next big awesome thing or if this is just a bunch of hype and no one's going to use it and i I've seen things go both ways.
Starting point is 01:11:46 I've been right and wrong about things like this in the future. So I want to know what you guys think. Bash on Windows. So can I sway the jury? Or nothing. You can try. Well, because I was so successful last time. So, dang it.
Starting point is 01:12:04 But if they were to do it right, if it was a truly compliant Bash environment, like what you would get on any other Linux environment, this could be amazing for me. I don't know about you, but it'll be amazing for me. For me. That part's key for me. Yeah, no more Git Bash, right? Well, yeah, because it's like, well, Alan's converted me over to Connie Mew.
Starting point is 01:12:34 But, yeah, I would totally, I wouldn't have to install anything else. It would just already be there. Yep. Right? Well, I'd have to install a Git client. I like the idea a lot and and i'm not necessarily a bash lover but i really like the idea of having something that would be consistent between my environments but my thing that i'm afraid of is that it won't be consistent it won't
Starting point is 01:12:58 be a full-on okay because like for example if you're in powershell and you do an ls it'll try to act like it's doing a listing the same as what you would get in any kind of unix environment right right but the flags don't work yes exactly it's really just an alias for a powershell you know for a shortcut you know in powershell so it's not the same thing and that's what i don't want them to do if they're going to do it then be all in and do it so is this going to kill sigwin oh is it already isn't it already dead like i don't know i mean it i i mean i know where you're going with that but but yeah i mean i haven't been using that for a long time. Only because Git Bash is good enough. And then some of the other ones are.
Starting point is 01:13:50 It's that 80% rule, right? It gets 80% done of what I need to do. So it's good enough. I would be interested in how well this turns out. It would be nice to have the same type terminal everywhere. My prediction is that it's going to be really good. Because even right now, primarily for years now, I've developed on Windows. But I still think in terms of LS and Cat and Curl. And I think these things have kind of entered the programmer vocabulary.
Starting point is 01:14:17 So if someone tells you to curl something, you probably know what that means. But if you're working in a Windows environment, you might you know, invoke dash web request or whatever it is in, in PowerShell. See, that's the thing is like, what do they mean when they say bash though? Because bash isn't all of these other commands that you're talking about. Right.
Starting point is 01:14:35 So, yeah. So, cause the bash is just the shell, right? I mean, you know, corn shell is another one that,
Starting point is 01:14:41 you know, some people are, you know, adamant about, but those other commands that you mentioned are not part of either. Right. And so that's what I'm talking about.
Starting point is 01:14:50 I want all those other commands to go along with it. I want to be able to type in a tail minus F on a log file instead of some stupid PowerShell get content dash wait dash whatever, and then half the time it doesn't even work right. I hate that command. But they don't have to do any string processing which is nice but so i do love powershell don't get me wrong but i do think this is ultimately a good thing but i also if my understanding is correct and it may not be it's often not uh i think everything is gonna kind of work like you might expect upon hearing it. And that's because they've basically swapped out some lower level calls with the Windows API.
Starting point is 01:15:27 And so while it may not come with like, say, curl or some of the bashier type things, or, you know, ZShell type things, I think you're going to be able to get those things and they're just going to work because the stuff that they rely on just kind of works. That's awesome. So fingers crossed. Yeah. Yeah.
Starting point is 01:15:44 So hopefully we haven't swayed any opinions there. And if we did sway any opinions, I hope we swayed them in my direction. Yeah. Well, I know for a fact that each one of us is going to find one thing about it that drives us nuts that isn't quite perfect
Starting point is 01:15:57 and we're going to complain about it. Well, of course. We never. Of course. Programmers don't complain about anything. We're the nicest group of people. Actually, hold on. I think the one thing that almost every programmer will complain about is what we talked about with ReSharper earlier.
Starting point is 01:16:11 Performance, right? We can get by with a lot of nitpicky stuff, but if you kill the performance of what we're working in, we can't take it. Right. Well, speaking of announcements from Build, what about the new version of SQL Server coming for Linux? That's pretty neat. Yeah, I don't really care. Really? No, that was...
Starting point is 01:16:37 I did not expect that. Yeah, I mean, if I'm going to be dropping the money on the SQL Server, then what's a Windows license, right? Yeah, put it on the box, right? Yeah. I think it's more about the it on the box, right? Yeah. I think it's more about the portability though, right? Yeah, so it's cool. Whatever.
Starting point is 01:16:51 Whatever. I was thinking of it more from the point of view of simplicity to access it. Right? Start executing your queries from a bash shell. Wait, does this mean they're going to be replacing that terrible installer where it's got all these icons and how do I just install SMS?
Starting point is 01:17:10 I don't know. Oh, gosh. And it's like you go through 15,000 steps and each time you think, okay, I'm done. And then you realize, oh, no, that was just a checklist for the next step. Yeah. Oh, and by the way, I don't know if that's going to include
Starting point is 01:17:24 actually being able to run queries from a bash shell. I would imagine it would. You can run queries from a command prompt. Oh, that's a big imagination. Yeah, maybe not. Yeah.
Starting point is 01:17:33 I'm curious to see if it's actually going to work. I mean, that's a pretty big undertaking. Well, I mean, they demonstrated it working. So it's working. Define working. Right, right.
Starting point is 01:17:42 With everything that you currently have. I'm going to let someone else test drive that one first. Right. I just wonder what the cost will be, right? I mean, SQL Server has not gotten cheaper over time. Well, imagine. Okay, but if we can live in, we're already, this is a journey into my mind with all these questions I'm asking anyway,
Starting point is 01:18:01 so let's go further and say, what if Microsoft know microsoft has been making a big push into the open source community here lately and you know there's the community edition of visual studio and and for years there have been a free developer version of uh sql server what if they came out with a free version for linux of full-on sql server use it however you want why would would they do that? So I get the open source thing. It's like a drug dealer.
Starting point is 01:18:30 They give you a taste for free, right? The first one's free, and then they get you hooked in, right? Isn't that the way it always works? That's an interesting take. So here's my thought on Visual Studio. By making free editions, that is absolutely brilliant, right? Because you get people on board with your tools that buys them into that environment.
Starting point is 01:18:55 Okay, well, this is the same thing then. SQL Server, though, is your workhorse, right? Like that is your data storage. That is your retrieval. That is enterprise software no no but but they can i mean they could try starter they've are for starters they've already for years given away a free developer version of sql server yeah you're right you're right and and well not developer that's sql server express developer not developer developer is
Starting point is 01:19:22 actually 80 bucks um they're yeah the sql server express has limitations like no i think they Express. Developer. Not developer. Developer is actually $80. Yeah, the SQL Server Express has limitations. No, I think they changed it. There was a developer version. You always had to pay for the developer. Because it's essentially enterprise for developers, is what it is. But either which way,
Starting point is 01:19:39 if you made it free... I'm saying they could still scale back the functionality of it, the feature set of it. So it wouldn't have to. It wouldn't be enterprise. Full text indexing maybe not be an option. Maybe what other.
Starting point is 01:19:55 In that wizard of 1,000 different things that you have to decide, maybe a few of those are not enabled in this free Linux version that I'm saying hypothetically, what if this thing existed? It would be, I mean, if you think about it, for all Windows developers, or people who develop on Windows, I should say, it would be kind of cool to have your same database engine run in a Linux environment. Like, that's, I don't't know that's pretty neat but because hypothetically if they did make this thing right then my sequel could have some free so have some competition at the free level yep right and then in my sequel already has a huge following oh major so there's your incentive
Starting point is 01:20:41 why microsoft might want to consider something like. Because now what if you can sway some of those people to consider, hey, maybe SQL Server can do something more for me. Let me get a taste of it. And then once that group of developers, their company becomes the next big thing, and they're like, hey, let me scale up now. And they buy support like most of the MySQL people. They move on or they move on to a larger edition of SQL Server. So, I mean, there's all kinds of reasons why they would maybe want to do that.
Starting point is 01:21:15 Yeah, I really am looking forward to it. Don't rule it out. Yeah, I would like to see what happens with that. Yeah, it's going to be exciting to see. They saw those MacBooks that build and they're like, oh, man. Yeah, I see it coming so so here's this random thought that i had we were talking about rest in points earlier and i was working with a rest in point here recently that shall go unnamed and it was not paypal though oh okay um no this was actually a good one and if there are any paypal developers listening to us i'm sure they just stopped um
Starting point is 01:21:57 if if you if you develop a rest api right and your REST API requires that users download and install something in order to use it, right? Like, you know, something as simple as an SDK. Okay, okay. Are you doing it right? For REST, that's pretty crazy. And for SOAP, you know, I'm kind of used to that sort of thing yeah required is the strong because i mean even aws right like you pretty much want to download the sdks because it makes your life a lot easier are you doing it right i mean people could argue
Starting point is 01:22:39 that amazon's probably doing it the best well okay, okay, so you brought up AWS as an example, right? And I jokingly referred to this not being PayPal, and it truly wasn't PayPal. But, you know, in either case, you would have to, like, let's stay in a Visual Studio environment here, right? You would have to install a NuGet package that corresponds with their API if you were going to use their API, right? If you were in a Java environment, you would have –
Starting point is 01:23:12 Say what? Say what? Can I just hit a URL? Yeah, but then the problem becomes you end up reinventing all of everything that they have in their SDK because they've already, you know, broken out like how to interpret their responses, you know, how to interpret their JSON response and how to build, you know, what the matching object should look like and the functionality of that object, what it should have, you know, they've already done all that for you. So sure, don't use theirs,
Starting point is 01:23:41 but you're going to end up reinventing everything right yeah and and you know similarly if you were to do this in a java environment right you'd still end up downloading some package and you know importing that into your project so either way but it's you know because what what this was splunk okay was the one and and it just kind of like hit me at first because I was like, wow, REST started out as supposed to be this simple thing, right? But now it's like, well, big players like a Splunk or PayPal or an AWS, you're not using their API without downloading downloading their uh client package right where there would
Starting point is 01:24:28 be a nugget package or you know whatever right you're you're not getting away without using that unless you just really like pain like joe apparently likes pain you know so it just kind of struck me as odd as like how like it evolved like, well, you know, yeah, it's REST, right? But you're not just making some simple web call. The REST part of it is just completely abstracted away from you. You might not even know what the REST endpoints are that it's hitting. You're just making a method call. Right.
Starting point is 01:25:02 That's all you know. So I have mixed mixed feelings on that i think the sdks don't necessarily mean you're doing it wrong i think it's almost a side effect of using strongly typed languages right only from the perspective that so you get back an array of things basically is what you're going to get from a rest type call right and if you don't have some sort of typing a wrapper around it in an sdk form like you said you got to parse all that stuff out and in a in an static language like do you really want to be doing a bunch of dynamic variables and stuff in your c-sharp to try and you know inspect those things now granted you probably could you probably could
Starting point is 01:25:47 go and create all your other classes like you know that this is the format that's coming back and you could do something like a dapper right to where you can map this array of things into a bunch of objects but the sdk if it's not doing anything completely over the top i don't think that's necessarily a bad thing because usually it's just really turning what the response was into usable objects right i mean usually usually hopefully now with amazon with the aws stuff though they they take it a step further you have your public your private keys and all that and it does some concatenation and some and some right base encoding and all that to you know securely you know transfer your they do add some helper functionality in and so i don't think that's a bad thing but yeah yeah i mean i was kind of like leading you guys with the
Starting point is 01:26:39 you know are you doing it right but it did kind of strike me as odd as i was thinking about like wow how this thing has evolved into it's not just a simple request like right you know because you joe you brought up soap right and like one of the problems that people have with soap was how complex it was in comparison and you know rest was supposed to be so simple but now it's like yeah well to use some of these rest apis that are out there you have to have almost as much complexity in in what you had in soap but now in the form of this other sdk that you have to go back and learn and you because some of them can be really complicated oh absolutely paypal's insane absolutely insane and even trying to dig through their code, too. You're just like, what?
Starting point is 01:27:28 No. Now, this is where I would like to bring back any PayPal developers that are still listening to us that haven't turned us off yet. This is where I want to bring them back to where they'll be huge fans of us because you know as developers we whether we intend to or not have you ever noticed how we develop a relationship with our code oh yeah i mean there there's code that you just love you you're it's like you know you're you're ready to do cartwheels because like you're so happy with that code right and then there's code that you just absolutely loathe yeah you can't stand like you're embarrassed to say that you wrote it and you took like there's nothing in the header file that has your name right there's no mention of you you you tried to erase the git history for that file but you failed and only made it worse but you know
Starting point is 01:28:33 you ever like i know i can't be the only one oh no i'm definitely there i actually try to move all the gross stuff to gross files so i can keep the clean stuff cleaner like i don't know this is good uh let me just move this to utils park because uh it's nasty so if i ever see a gross.js i'll know it's yours oh yeah yeah i don't write bad code all right now i mean if it, it's good, right? There are two other guys with microphones in front of their faces that have read some of your code. They have read some of your comments like, I don't even know how I got here. Yeah.
Starting point is 01:29:17 That's amazing. In fairness, usually those comments are like, so I've traced my way here, and I have no idea how I got here. I feel like it feels like we're remaking the Blair Witch Project. I don't know how I got here. I'm lost. This is the guy who came up with having a special kind of note for the things that we're hacking, right? Oh, you like that, right? Is it hack or fail?
Starting point is 01:29:46 No, no. Frag you like that, right? Is it hack or fail or... No, no. Fragile. Yeah, fragile. Yes. Yeah, right. Everything he does is perfect. You know. So that fragile code,
Starting point is 01:30:03 do you love it or do you loathe it? Oh, man. Slash slash bug in the framework colon man we we've all been there right like where where and joe's done this like we work together and he's like look man i know that you're getting ready to take this over i'm so sorry and I'm sorry the funny thing is the read me says go away dude even with code that you're proud of like you'll always be looking at it going oh man look I just need to tell you about this one thing in here
Starting point is 01:30:36 and you always have that in the back of your head like even the prettiest stuff you're just always like oh man I really don't want them to criticize it. But I need to let them know about this. Right. You know, and I don't know. I think that's a good thing, right?
Starting point is 01:30:51 Until they come back and complain about your DTOs. Right, right. Or lack of documenting. Oh, my gosh. But, no, I mean, that's really the thing, though, is I think that's what really separates people who are truly passionate about what they do is you do kind of I hate to say that you form an emotional bond with it. But you want people to kind of be not turned off when they have to come into your code. Right. And that's that's always a nice thing. Well, yeah. So you definitely do.
Starting point is 01:31:22 Like as developers, I think we definitely do create an emotional bond with it. I think that's a great way of putting it, right? But I think that this is like, it's definitely not specific to just developers. Like anyone who's in an environment where they create something, right? So if you're a hardware engineer and you create some new hardware, like Johnny Ive, he probably loves his his job right like that guy that guy is really happy i'm sure right um if you are an artist you know you you there's art that i'm sure that you love and then some that you're not as happy with you know but. But I wonder, too, though, if that emotional swing goes from love to loathe as fast as it does for a developer.
Starting point is 01:32:12 Because I know that there are times where I'm like, you know, there's some code that I'm like super happy with until I show it to one or two other developers. And then I immediately hate it. And I'm like, you know, I didn't write that. I don't actually know where that came from that's uh wow someone committed that using my credentials i don't i actually don't know how that happens uh i have a solution for you now it doesn't get rid of the git history we just put a typo in there so that the build fails and they'll be like, hey man, can you go fix that? Their name's the last
Starting point is 01:32:48 on the file. Let's assume it's a single file. Right, right. That's a good idea. I'll have to do that to all my files from now on. Now it looks like Alan was the last one to do a... I originally authored it, but it looked
Starting point is 01:33:03 completely different when I did it. It says here he only added one character. That's awesome. Hey, wait, Joe, this is kind of random. Didn't you just publish your first Box Pusher thing? Oh, yeah. Not to put you on the spot. Yeah.
Starting point is 01:33:20 Box Pusher was a little game I did just for fun. I wanted to get some more experience with some of the Node kind of JavaScript-y build stuff. And so I did that a while back, and I wanted to make an Electron app out of it just to play around. And, you know, I didn't want to do a submodule in Git. I didn't want to duplicate the code. I was like, how do I check this stuff into Gitithub without duplicating all the code for the actual you know the actual app and so uh the easiest way is just to make it a package and publish it up to npm so I am now a published npm package person which is very easy to do it's free and electron
Starting point is 01:34:02 you're talking about electron.adam.io right yep so it's basically like um it's basically a browser it's a chromium browser that you can install and alongside your custom like website code and so you can create a cross-platform app with website code and you know javascript and html and run it and a lot of apps that you've probably used, including the code visual editor, or sorry, the code editor that Microsoft just released or the Slack app actually too, are built on this. And so it's just a really nice way of running a website locally.
Starting point is 01:34:35 So I wanted to give it a go. So I created a package and have now taken the word box pusher away from anyone who might want to use it for something useful. So I could not check in duplicate code and get that no one cares about. So how about this one? Maybe we should make this one the last one for the evening.
Starting point is 01:34:59 The last random thought from my mind, but reflection is not a dirty word. I agree. So often, you'll hear someone talk about something with reflection, and their immediate gut reaction is, oh, no, no, that's reflection. You shouldn't use that. That's horrible.
Starting point is 01:35:20 Why would you do that? It hurts performance. You should never use reflection. There's got to be a better way. We should call Vlad right now. There's times where I'm like, no, it's actually a legitimate use for it. It's not necessarily a bad thing to use reflection. It depends on what you're trying to do with it right like if you're going to recursively do it
Starting point is 01:35:45 you know uh you know a billion times yeah that's probably going to be a bad thing but like i mean i'm reminded of an example of where um uh gosh i don't even know how long ago it was now when early on when i wrote that uh little pattern about that i referred to as the reflection of control and um basically the idea was that that assembly it it would at startup time do a one-time reflection to just find some types but then it was done and it would never it would never do it again it was done it was it only happened at app startup and like some of the feedback i got back even from people that i knew like friends i knew they immediately were like oh that's horrible why would you use reflection for that no i'm never i would never do that that's bad that's i you know
Starting point is 01:36:41 someone once told me that reflection was bad for performance, so I would never do that. And you're like, come on, man. Really? Yeah. I mean, my feeling on that is tools exist for a reason, right? There's a reason why reflection exists. It's useful. It can be used.
Starting point is 01:37:02 It's the same thing with link, right? I've heard so many people say entity framework is a pig. It performs horribly. Okay. If you're writing link queries and you don't understand what it's doing behind the scenes. Yeah, totally. You can completely bomb your entire system. And the same thing with reflection, like what you're saying right now, if you don't understand the impact of what you're doing, if you're recursing a billion times or something yeah you're gonna tear it up but it has its uses and it they're really good uses so yeah i i don't like anybody who just dismisses something just right off the top right like what is the use is there a better way to do it if there is maybe explore it but like with what you did in that thing so your other option was to write a bunch of configs that link
Starting point is 01:37:52 stuff up right so why do that you you had a nice elegant solution with with the reflection and control basically with the assembly sniffing essentially and it worked well right and and it was pretty it was basically convention right and there's a lot to be said for stuff like that and and i don't know dismissing something out of hand because you hear it performs badly or even if it does perform badly there might be a good reason for it we we've had similar conversations like with the the use of static as an example yeah right like you know, it being bad. I don't even remember what the argument was for it.
Starting point is 01:38:28 It was a code smell. Having a static in a non-static class was a code smell. And I don't necessarily agree with that. There were good points made around it. But, you know, same type thing with reflection. It has its purpose. It wouldn't exist if people didn't need it for something, right? Yep.
Starting point is 01:38:47 You know, I don't know. What do you think, Joe? Do you think that we need it? Reflection is awesome. I care a lot about my time. And that's why I use higher order languages like C Sharp and JavaScript. And I don't just write everything in assembly. So I am totally on board with using a tool that makes my life easier even if it adds
Starting point is 01:39:07 10 milliseconds at startup right so i have no problem whatsoever you know you don't necessarily want to build a mission critical real-time application completely based on reflection but it's not going to kill anybody if you use it here and there when it makes sense. Right. So reflection, heck yes. So like I said, we'll leave that reflection as the last one. But I'm curious, what do you guys think? Did you two like the inner ramblings of my mind as fodder for the show? I did, absolutely. Always did absolutely yes these are the same type things that we have and probably both joe and i should do the same thing write down some
Starting point is 01:39:50 of these things because i mean man there's thoughts that come up every day that you're just like huh yeah you know well i'm also curious too so any listeners you know that that question goes out to you too i'm curious uh how you enjoyed you know getting to know how my mind works in crazy ways and some of the weird things that like come to mind so uh yeah let me know if you if you really enjoyed it or if you didn't really enjoy it well you know if you really didn't enjoy it you should probably tell Alan. Just go to www.codyblocks.net slash episode 41. Don't make me loathe this episode.
Starting point is 01:40:35 Alright. We got our tips of the week still. Yeah, yeah. Oh no, I wasn't done. I wasn't done. I was just saying like, you know, with the main content for it.
Starting point is 01:40:45 So, yeah, I mean, Alan kind of took away my segue because this is where we get into Alan's favorite part of the show. It's the tip of the week. Or in this case, it really is a month. It's been a minute. Man, why you got to hate? Why you got to hate? All right. So I have two in there that are both Visual Studio specific. But one of them is just kind of like a reminder.
Starting point is 01:41:15 So if you like working in, let's say, Chrome's DevTools, right, and you like the console in there, and you're really used to being able to just go into the console and write some JavaScript on the fly and see what's going to happen. Hey, don't forget, you can do the same thing in Visual Studio with your C Sharp, right?
Starting point is 01:41:37 So if you haven't already, you can go up to your view menu and include your intermediate window, right? And then when you are debugging your application and you're at some stop point or some break point in your application, you can go into that intermediate window and you can write some C-sharp code in there, just like you would JavaScript in your console in the dev tools. It's immediate window, right? Or is it intermediate?
Starting point is 01:42:04 Inter is immediate immediate yeah intermediate i think it's they both kind of mean the same thing i think it's immediate i gotta look it up pretty sure all right so everybody's gonna start typing i think it's immediate window but you can't do everything like i don't think it lets you do link expression. It will not. That's really upsetting. Oh, maybe it is immediate window. Whatever. Bring it. 3-0. 3-0. Yeah, whatever.
Starting point is 01:42:38 I wrote that wrong in my notes. I could have sworn it was intermediate, but whatever. Alright, so... We can't give him that one. in my notes i could have sworn it was intermediate but whatever uh all right so we can't give him that one so we're gonna go with uh setting so so a friend showed me this and i don't know how like i don't know how long this has ever been there but somehow i've i've missed this because have you ever noticed it like you get set in your ways about doing something and you're like you know what it works i'll just keep doing it forever and ever and ever and ever and sometimes frameworks
Starting point is 01:43:09 can be like that where like you know that like hey there's this object and if i use this object i can get to this thing and this and that object has this method and all i gotta do is use that and it can it can do it for me and so the configuration manager is one of those things, right? So if you have settings in your app config, for example, and you want to read those, you could use the configuration manager to get to those. But there's an even cooler way to do it, which is typed. And that's the settings. So what you can do is you can right click on your project, right? Why is this not cooperating? Right click on your project and go
Starting point is 01:43:56 to settings. And then in the properties, in the project properties, it'll bring up several tabs, right? And one of them will say tab, one of them will say settings. And if you've never enabled this on your project before, it'll say this project does not contain a default settings file, click here to create one. So do that, click there and create one. And then boom, some magic happens. And what happens behind is it sets up a C Sharp class called settings, right? And it is in a corresponding designer for it. And then those settings are going to map to whatever goes into the app config. Only you're not going to manually edit the app config, right?
Starting point is 01:44:42 So once you're into those settings, right, and it's going to immediately bring up this little grid, and you can type in the name of your setting, and then you can select what the type is for it, and then you can select, you know, then you can type in a value for it. And like I said, it's going to be typed, right? So if the type that you select is an enum, then it's going to present all the enum values that are available. If you say it's a Boolean, it's only going to let you pick true or false. If you say it's a connection string, it's going to give you that. And it'll give you an option to whether or not the setting that you're trying to create
Starting point is 01:45:23 is specific to the user or if it's specific to the application. So like things that are specific to the application aren't going to change at runtime, but things for the user may change at runtime, right? So it's, you know, it's a really cool way. And when you go and look at that, what's going to happen is behind the scenes in that settings CS file, it's going to have your settings that you entered in there as default values. But there's also going to be those values in your app config, right? So that it can read, it can read it from the app config, or if you don't provide it, then it'll just read it from the settings file. But then what that means is that in the old way, if you were to use the configuration manager,
Starting point is 01:46:07 you might say something like configuration manager dot app settings and then username. Or if this was a web configuration, you might say web configuration manager dot app settings and then the parameter that you would pass in as a string would be username. But in this way, you're going to say settings.default.username. So now you have some type checking on your settings of it. You're not just relying on some string value coming back or some string that you're passing in. It's typed for you.
Starting point is 01:46:47 So you have that in your favor to help you with, you know, finding your errors at compile time rather than run time. That's really nice. That's pretty cool. Yeah. I didn't even know about that. I don't even know how long it's been there. Like I said, you get stuck in your ways.
Starting point is 01:47:04 And, you know a friend showed that to me and i was like oh my god this is amazing how have i not found this so far that's really cool yeah yeah i got a little tour of the the feature myself i just couldn't believe it was there and then i hadn't known about it all these years huh all right well i guess now that your mind is blown i think i think that should definitely be like alan three michael five no no i'll give you one all right so mine actually came up recently and sometimes in sql server it does things that just don't make sense and that's really frustrating so you have this query that runs in a second you put it in a proc and it runs in five minutes.
Starting point is 01:47:47 And you call the proc again and it runs in five minutes. And you're like, wait, wait, wait. Okay, so let me just run the query that's inside the proc and it runs in one second. And so now you're going, I have no idea what to do here. Well, there's a frustrating thing that can happen. Is it could actually cache the wrong query plan for whatever's inside that proc. And it may continually do that for some reason unbeknownst to anybody in mankind. So one way that you can get around this is you can use a hint called with recompile. And so if you're calling a stored proc that seems to be caching
Starting point is 01:48:26 a bad query plan, you could basically call that proc like exec my proc with recompile. And that basically forces it not to use its cache for the query plan for the proc and it will force it to basically do it like it's brand new every single time. And so you take a little bit of a hit on it recompiling itself, but you know, if there was a problem to where it was hanging for some reason, then it'll at least get rid of that. So you're taking a hit on it, on it compiling itself, but then, you know, typically it will run it the way that you expect it to. So that is my hint. It came up recently and it seriously took something down from six minutes to a second. So it's not nice that you have to use things like this,
Starting point is 01:49:16 but it is useful to know that they exist. Yeah, I've also had a problem with parameter sniffing, which is very similar. And it's another issue where just a recompile doesn't do so. Or sorry, the compilation that's cached just doesn't do so hot for whatever parameters. And the trick for that one is just creating local variables of all your arguments and using those instead of the arguments that are passed in. Yeah, it's kind of ridiculous. And it seems so crazy.
Starting point is 01:49:43 It's one of those things where this is logically equivalent and it's stupid, but it really does work and I hate it. It is frustrating because it's literally one of those phantom pain type things, right? There's no smoking gun anywhere. You can't find it. And then somebody says parameter sniffing and you go, what? All right, Google. find it and then somebody says parameter sniffing you go what all right google
Starting point is 01:50:05 pure there's a really nice article actually that i can link in the podcast about this because i've been dealing with i've dealt with a very similar issue if i fixed it with recompiles and getting around parameter sniffing it's it sucks but you are you are all the much better for knowing about it anyway my tip of the week is a new podcast just started up not too long ago it's actually But you are all the much better for knowing about it. Anyway, my tip of the week is a new podcast. I just started up not too long ago. It's actually a daily podcast, which is really ambitious because, I mean, we have our time getting it out once a month. And every day of the week has a different kind of focus.
Starting point is 01:50:47 So it's all related to tech-type topics, but stuff like, I guess, kind of in the periphery of actually working in tech. So things like motivation, productivity, leadership, technology, people, entrepreneurship, and getting unplugged. So it's the Hello Tech Pros podcast, and they're actually based here in Orlando. Got to meet them at Code Camp, which I forgot to talk about.
Starting point is 01:51:02 It was awesome. But you guys should check it out since you like podcasts. Excellent. Alright. So with that I hope you enjoy listening to the ramblings that go on in my head. And like I said
Starting point is 01:51:19 let Alan know if you didn't like it. And be sure to subscribe to us on iTunes, Stitcher, or more using your favorite podcast app. So if a friend gave you this, pointed you in our direction, be sure to subscribe so that you can catch the next episode and all the back catalog. And if you haven't already left us a review, be sure to leave us a review on iTunes or Stitcher or both. We greatly appreciate it. Cannot stress how much we appreciate that. Yep.
Starting point is 01:51:51 And contact us with any questions or topics just like the guys did in this particular episode. And if you'd like us to leave you a shout out, let us know how you'd like to do that on Twitter or just a name or whatever. And visit us at codingblocks.net where you can find all our show notes, examples, discussions, and more. And send your feedback, questions, and rants to comments at codingblocks.net. Follow us on Twitter, join in our Slack, and give us reviews. It's awesome. All right, are we diving into Joe's head next time is that what's going on
Starting point is 01:52:27 y'all don't want to come in here what are all these cobwebs it's like dark thoughts and Star Wars trivia

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