Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?
Speaker 1: Become a patron for just five dollars a month. You
Speaker 1: get access to a private RSS feed where all the
Speaker 1: shows have no ads. Twenty dollars a month. We'll get
Speaker 1: you that and a special dot NetRocks patron mug. Sign
Speaker 1: up now at Patreon dot dot NetRocks dot com. All right,
Speaker 1: all right, all right, it's dot net Rocks episode nineteen
Speaker 1: ninety seven.
Speaker 2: I'm Carl Franklin Richard Campbell. I think it's nineteen seventy seven.
Speaker 1: Did I say nineteen ninety seven?
Speaker 2: Yeah, you're jumping ahead, dude. It's like we got too
Speaker 2: many shows. I get it, but come on, go hurry.
Speaker 1: Yes, nineteen seventy seven, Yes, yes, thank you, Richard. Uh,
Speaker 1: it was a good year.
Speaker 2: It was a big year.
Speaker 1: Oh my god, it was a great year. Let's talk
Speaker 1: about the year nineteen seventy seven. I'm going to start, Okay,
Speaker 1: hit me with my favorite album came out in nineteen
Speaker 1: seventy seven. That would be Asia by Steely Dan.
Speaker 2: That's not surprising at all, though, of course it is. Yeah,
Speaker 2: I've heard more Steely Dan hanging around with you than
Speaker 2: the rest of my life combined.
Speaker 1: I think most people in my life have heard more
Speaker 1: Steely Dan from me. Also, Star Wars. Got to talk
Speaker 1: about Star Wars. Yeah, yeah, what can you say? What
Speaker 1: can you say? Yeah? Star Wars.
Speaker 2: None of us can see the original because he just
Speaker 2: kept tinkering with it.
Speaker 1: But yeah. The first episode of Saturday Night Live aired
Speaker 1: wow in December. December fifteenth July, New York City experienced
Speaker 1: a massive blackout, leading to widespread looting, right, and.
Speaker 2: A lot of pregnancies.
Speaker 1: Yeah, let's see. In January, Jimmy Carter was inaugurated as
Speaker 1: the thirty ninth President of the United States. February, Fleetwood
Speaker 1: Mac released their iconic album Rumors. This is one of
Speaker 1: my This has got to be my favorite year. The
Speaker 1: amazing music year, amazing music and cultural year. Here sure,
Speaker 1: Indira Gandhi withdrew the State of Emergency and Indie. Uh,
Speaker 1: let's see what else we got here. The first personal computer,
Speaker 1: the Commodore PET, was demonstrated. Was it really the first
Speaker 1: personal computer?
Speaker 3: Yeah?
Speaker 2: I think that's that's not true. Yeah, okay. The ninety
Speaker 2: seventy seven is an amazing year for for early personal computers.
Speaker 1: Yeah. The Atari twenty six hundred was released in August.
Speaker 2: Yeah, then was the VCS one of the first. They
Speaker 2: didn't the twenty six hundreds a retro name.
Speaker 1: And the big bummer of nineteen seventy seven.
Speaker 2: Elvis dud.
Speaker 1: I could think of a couple others, Yeah, there were,
Speaker 1: there were a couple other bummers. But man, what a
Speaker 1: good year for music and movies for sure and stuff.
Speaker 1: So anything else that we.
Speaker 2: Ninety seventy seven computer wise is yes, the Commodore Pat
Speaker 2: but also the Tierras eighty Model one and the Apple two,
Speaker 2: the trifecta. So I'm sorry, you can't pick a you
Speaker 2: can't pick a winner there by the way each of
Speaker 2: them ship they original versions for with four K of
Speaker 2: ram awesome, although all subsequent but the pricing is hilarious.
Speaker 2: The Tirsa Model one, which was four K cassette player
Speaker 2: a version of Basic not BA by Microsoft. It was
Speaker 2: a tiny Basic. Six hundred dollars is the original price. Wow.
Speaker 2: The Commodore PET four K integrated cassette player for eight
Speaker 2: hundred dollars, although the way they rigged the machine there
Speaker 2: was so little memory left with four K that by
Speaker 2: the next year they ship at the minimum of eight K.
Speaker 2: That and also the Japanese are now making Rama RAM
Speaker 2: prices drop quickly. The Apple two's initial release also four
Speaker 2: KNA cassette player for twelve hundred US. You know, Apple
Speaker 2: being the expensive machine. Turns out it was always true. Yeah,
Speaker 2: so they all three of them. The Atari VCS, which
Speaker 2: we'd later know as the twenty six hundred, was only
Speaker 2: one hundred ninety dollars. Yeah, but it's because it only
Speaker 2: had one hundred and twenty eight bytes a RAM in it.
Speaker 1: But it also played games, which was really they played
Speaker 1: games and you know the gamer generation kind of core
Speaker 1: up there, and they.
Speaker 2: Used this simplified version of the sixty five O two
Speaker 2: called the sixty five oh seven. Yeah. By the way,
Speaker 2: all those machines were sixty five O two except the
Speaker 2: TIERRS eight, which was the eighty eighty last technology one
Speaker 2: would be the original test of TCAPFP, which was between
Speaker 2: Stanford and call A University College in London, was in
Speaker 2: nineteen seventy five. In seventy seven they do the first
Speaker 2: three way network test between UK US and Norway. Wow,
Speaker 2: so just experimenting with can we do the pack of transfers?
Speaker 2: Those things work reliable space related Yeah, so seventy six
Speaker 2: was when the shuttle Enterprise was first rolled out. It
Speaker 2: was originally called Constitution, but they relazed in Enterprise because
Speaker 2: a bunch of Trekees rolled in. So seventy seven is
Speaker 2: the first three flights of Enterprise, so the first two
Speaker 2: theres are captive, so they're on the back of a
Speaker 2: seven forty seven. Enterprise's job was to prove that you
Speaker 2: could land a spaceship because nobody had never done that before,
Speaker 2: and so on the back of seven forty seven they
Speaker 2: go up unman just to make sure that the flight
Speaker 2: dynamics are safe. Second flight, they have a crew in
Speaker 2: it because there's no way out if something goes wrong,
Speaker 2: so they're being very careful. And then in August they
Speaker 2: do the first three flights, so releasing Enterprise from the
Speaker 2: back of seven forty seven and it comes to lands
Speaker 2: on the Long Strip at Edwards Air Force Base, and
Speaker 2: again they're trying to figure out if they can actually
Speaker 2: land a spacecraft on the ground with wheels. Enterprise had
Speaker 2: intend they intended to make it into an actual spacecraft.
Speaker 2: It never did. The main reason was it was wildly overweight,
Speaker 2: and as was Columbia, the one that would ultimately fly
Speaker 2: and they would get lighter from there. I could go
Speaker 2: on for a long time about space shuttles, and you
Speaker 2: know this.
Speaker 1: I know you can. I think you read the manual
Speaker 1: in the front to back, didn't you? The operations manual well, And.
Speaker 2: The original, arguably the original geekout is me granting about
Speaker 2: the end of the space Shuttle program in twenty eleven,
Speaker 2: which was entirely your idea that I thought was a
Speaker 2: bad idea, and I was wrong. But if you want
Speaker 2: to go back and listen to all of my thoughts
Speaker 2: of the space Shuttle, go back to the twenty eleven geekouts.
Speaker 1: It's worth it. You can even get an RSS feed
Speaker 1: with the tag that you can get only the gas.
Speaker 2: The two more things on the space side. This is
Speaker 2: the year that Voyager one and two launch. Now we
Speaker 2: call them the Voyagers because they were the long range missions,
Speaker 2: but these are still what they call Mariner class missions.
Speaker 2: So the spacecraft that went to Venus and Mars and
Speaker 2: Mercury there in seventy seven. There was a particular conjunction.
Speaker 2: The motion of the planets allowed for a flight that
Speaker 2: would hit multiple outer planet bodies, So Voyager one made
Speaker 2: it to both Jupiter and Saturn. The most famous thing
Speaker 2: I would say Voyager one did this was Carl Sagan's
Speaker 2: idea is about ten years after the fly Biosaturn in
Speaker 2: nineteen ninety, he had the spacecraft turn around and take
Speaker 2: a picture of the Earth.
Speaker 1: It was the first Earth selfie. Yeah, flow got.
Speaker 2: Billion kilometers away, but yeah, the great famous pale blue
Speaker 2: dot photo. Voyager two arguably had the more interesting flight
Speaker 2: because of it and timing. It was not only able
Speaker 2: to do a fly by of Jupiter and Saturn, but
Speaker 2: also Uranus and Neptune. Both these vehicles.
Speaker 1: And now it's beyond this. Now it's beyond the Solar
Speaker 1: System billions of miles away.
Speaker 2: Yet beyond the heliopause is the teedical term. So the
Speaker 2: energy of the Sun pushing outward gets pushed back by
Speaker 2: the interstellar energies past the heliopause, and both Barger one
Speaker 2: and two are through those still operational, although on very
Speaker 2: limited power. Many of their instruments are turned off. One
Speaker 2: last point, and this is the thing we call the
Speaker 2: Wow signal. So also in seventy seven, Ohio State University
Speaker 2: had a radio telescope called the Big Ear, and they
Speaker 2: occasionally got time to do SETI work or search for
Speaker 2: extraterrestrial life. And in seventy seven there was a signal
Speaker 2: that ran for seventy two seconds. Why seventy two seconds
Speaker 2: because that was as long as the bigger could be
Speaker 2: pointed in the direction of Sagittarius because the planet was moving,
Speaker 2: so it could have been longer than that. It was
Speaker 2: a very powerful signal, thirty times past the mean background
Speaker 2: noise on the fourteen twenty megahertz spectrum, which is we
Speaker 2: sort of agreed on, like if I was going to
Speaker 2: communicate across a galaxy, I would use this hydrogen resonance frequency.
Speaker 2: And so there it was, this massive signal from the
Speaker 2: region of space around the constation Sagittarius. Never to be repeated.
Speaker 2: Is that the one that turned out to be a pulsar?
Speaker 2: They just don't know. They still don't know. Yeah, that
Speaker 2: one's never been repeated. It's just a sort of unknown,
Speaker 2: bizarrely powerful signal. Nothing interpretable from it. Don't know if
Speaker 2: we even actually got the whole signal pretty sure we didn't.
Speaker 2: Just one of those crazy, crazy things that happened, and
Speaker 2: the only one of it's got Wow there you go.
Speaker 1: Oh all right, well, I guess we should roll the
Speaker 1: music for the inimitable better Note of frameworks segments.
Speaker 2: Awesome, sard man, what do you got? So?
Speaker 1: Our friend Thomas Betts send me this email and he
Speaker 1: said this is one for better No framework. If you
Speaker 1: go to VS code and Leslie you can chime in
Speaker 1: on this too. Let's just say stop, don't tell anybody,
Speaker 1: but search vs code settings for yolo yolo as in
Speaker 1: you only live once, that's right, Yolo mode. Basically, here's
Speaker 1: what it says. It's a global auto approve experimental And
Speaker 1: it says Yolo mode disables manual approval completely for all
Speaker 1: tools in all workspaces, allowing the agent to act fully autonomously.
Speaker 1: This is extremely dangerous and is never recommended. Even containerized
Speaker 1: environments like code space and dev containers have user keys
Speaker 1: forwarded into the container that could be compromised. This feature
Speaker 1: disables critical security protections and makes it much easier for
Speaker 1: an attacker to compromise the machine. But guess what, you
Speaker 1: can turn it on.
Speaker 3: A little scary.
Speaker 1: It's a little scary, oh man?
Speaker 3: But hey, yeah that I I suppose.
Speaker 2: Yeah, yeah, all right.
Speaker 1: And I found that it was turned on in my
Speaker 1: uh in my visual studio code and I don't know why.
Speaker 2: That's great.
Speaker 1: So it's turned off. Now that's my God. Isn't that crazy?
Speaker 2: I love it?
Speaker 3: Yeah? Yeah, oh yeah, they definitely don't. They hide that
Speaker 3: in the documentation Somewhere, I like googled it as you
Speaker 3: were chatting about it. I'm like, oh, they're.
Speaker 2: Really I found a GitHub repository with the list of
Speaker 2: settings that you can apply to your configuration if you
Speaker 2: want to. It's I'll include that in the show notes.
Speaker 2: You want to live careful, do not run with scissors.
Speaker 1: Do not run with scissors. I would not recommend using
Speaker 1: yellow mode for anything.
Speaker 2: I just want it.
Speaker 1: Don't shoot the messenger on.
Speaker 3: A disclaimer like, we're not responsible for any bad decisions
Speaker 3: that are made you mad.
Speaker 1: Yeah, there is Thomas Betts. We hold him completely innocent. Okay,
Speaker 1: well that's what I got, Richard, who's talking to us today.
Speaker 2: I grabbed a comment off a show eighteen seventy, the
Speaker 2: one we did with Jeffert's talking about dot net comp
Speaker 2: which should be you know, around the time the show
Speaker 2: comes out, because Jeff coopf is imminent, and this comment
Speaker 2: comes from our friend Mark Semen because one of the
Speaker 2: conversations we have with Jeff was about the Visual Studio Debugger,
Speaker 2: and since we have the Visual Studio Debugger Goddess on
Speaker 2: the show today, I thought i'd bring it up because
Speaker 2: it also leads to a broader conversation I think is
Speaker 2: an interesting one. And Mark Semen has been a guest
Speaker 2: on the show many times, one of our friends. He's right, transpirational,
Speaker 2: very thoughtful guy, and so, of course, oddly enough two
Speaker 2: years ago, what a very thoughtful message he said. The
Speaker 2: visual studio a bugger is great, indeed, but I usually
Speaker 2: try to teach my clients to use it less rather
Speaker 2: than more. There are other good ways of troublesoit problems
Speaker 2: with code notice and react to compiler warnings. Gez, didn't
Speaker 2: you'd say exactly that to me when before we were recording.
Speaker 2: It's like, you know, if you just look at what
Speaker 2: the compiler says, you know a lot, use static code analysis.
Speaker 2: It will often prevent errors. Actually read and try to
Speaker 2: understand the error messages you're getting. Yeah, try to understand
Speaker 2: because sometimes they're pretty opick. Sometimes have good test coverage
Speaker 2: and run those tests. Write and test code in short
Speaker 2: iterations instead of, as I've believed on the show, write
Speaker 2: code for an hour only a learn it doesn't work,
Speaker 2: write small isolated blocks of code, and favor pure functions
Speaker 2: over state mutation. It's a perimeter in past the perimeter out.
Speaker 2: That being said, I also use it a bugger, but
Speaker 2: not that often and mostly when all those other techniques fail.
Speaker 2: Me as impressive a piece of engineering as a debugger,
Speaker 2: as one could argue that it's a great solution to
Speaker 2: the wrong problem. You know, I think it's a great
Speaker 2: solution all up, not the least of which because I'm
Speaker 2: hanging with Leslie at the moment and I think her
Speaker 2: work is amazing. But it also releases this broader conversation
Speaker 2: of craftsmanship styles like I think Gil Gates was quoted about,
Speaker 2: you know, the correct answer this just don't write any bugs.
Speaker 2: It reminded me of a conversation we had maybe ten
Speaker 2: years earlier with Scott Nimrod talking about not being a
Speaker 2: professional debugger but being more a professional coder, and it
Speaker 2: lit up a lot of controversy because I hate that
Speaker 2: this idea there might be a schism between focusing purely
Speaker 2: on never met writing a bug versus being able to
Speaker 2: debug effectively, because I don't think either one of them
Speaker 2: is achieved.
Speaker 1: It there could be some humorists there, like debuggering is
Speaker 1: for FRENGI you know.
Speaker 3: I feel like they're part of the same job description, honestly.
Speaker 3: I mean no matter like I think all of the
Speaker 3: bullet points that were listed, you know, like avoiding state
Speaker 3: mutations and stuff like that, making sure you're testing your
Speaker 3: code isolated code, that's all still important, if not just
Speaker 3: as important as debugging. But at the end of the day,
Speaker 3: we're human. We're gonna run into problems regardless of how
Speaker 3: well we understand the compile error that we're getting. And
Speaker 3: that's and there's just gonna be times where we don't
Speaker 3: catch it until we run the code, see that it
Speaker 3: doesn't work and then have to debug.
Speaker 1: So I find most of the errors that the debugger
Speaker 1: catches for me have to do with bad configuration, not
Speaker 1: necessarily bad code. Do you know what I mean?
Speaker 3: Oh, yeah, no, that's totally fair. And I know for
Speaker 3: me sometimes it's like catching logic errors as a visual person.
Speaker 3: Sometimes it's like I don't fully catch it until I
Speaker 3: see it out in the wild doing what it's supposed
Speaker 3: to do contextually, and it's like, oh, that's not what
Speaker 3: I expected it to do, so let's go re examine
Speaker 3: the code.
Speaker 2: But the debug is also great at dealing with stuff
Speaker 2: that isn't just the code immediately in front of you,
Speaker 2: the crazy interactions between tiers, the race conditions that occur
Speaker 2: into it, calling into multiple APIs simultaneously blocks on data stores.
Speaker 2: You know, the internet was grumpy that day and my
Speaker 2: software behaved weirdly, and the debugger often can save my
Speaker 2: bacon for understanding where those interactions actually happen.
Speaker 1: Our congratulations you got the million to one odd race condition. Yeah,
Speaker 1: so you win today.
Speaker 2: Yeah so it's but I appreciate like these things and
Speaker 2: all go together. And also I wonder now with the
Speaker 2: role of llms and coding, you know, suddenly getting tests
Speaker 2: written got a whole bunch easier. You know, I could
Speaker 2: never convince a junior to give me one hundred percent
Speaker 2: code coverage, but you can batter an LLM into that. Well,
Speaker 2: save that for the show for sure. And A Mark
Speaker 2: thanks so much for your comment, and that copy of
Speaker 2: music code by is on his way to you. And
Speaker 2: if you'd like copy music code by right comment on
Speaker 2: the website at dot net rocks dot com or on
Speaker 2: the Facebook to Helpless every show there and if you
Speaker 2: comment there and to read on the show, we'll send
Speaker 2: you coffee music o YM.
Speaker 1: Music Code by. I'm working on episode episode track number
Speaker 1: twenty three right now for music to Code by Mark Seman.
Speaker 1: Obviously he's responsible for me taking that project on because
Speaker 1: of what we were talking about with the flow. Yeah.
Speaker 1: Uh okay, So let me introduce Leslie properly. Leslie Richardson
Speaker 1: is a product manager on the dot net c Sharp
Speaker 1: Developer Experience Team and the hosts of the VS Toolbox
Speaker 1: show on YouTube and Twitch. She's focused on improving productivity
Speaker 1: for writing MCP servers in the dot net C Sharp
Speaker 1: space across VS and VS code. Leslie also worked on
Speaker 1: the Visual Studio team, developing and enhancing extensibility and debugging features.
Speaker 1: And yeah, that last sentence is loaded, isn't it. Leslie?
Speaker 2: I met you just.
Speaker 1: Recently in Orlando at devins Action. You were in the
Speaker 1: audience when Maddie and I were doing the.
Speaker 2: Uh spiify spify.
Speaker 1: Spiifying dot net rocks. Yeah, and you came up to
Speaker 1: the to us afterwards, and you were you and Maddie
Speaker 1: obviously worked together, and you're having a conversation and in
Speaker 1: about two minutes in I thought Oh my god, this
Speaker 1: person is amazingly smart. We must have her on dot
Speaker 1: net rocks. And of course you and Richard were already
Speaker 1: talking about it. So so welcome.
Speaker 3: Thank you. I'm flattered to be here.
Speaker 2: Yeah. Yeah, And of course for a while there, your
Speaker 2: job was a debugger. It isn't anymore, yes, yeah.
Speaker 3: Yeah, that was my very first job at Microsoft, working on.
Speaker 2: The way to Start.
Speaker 3: Yeah. I was like so scared about it initially because
Speaker 3: I was fresh out of college at the time, and
Speaker 3: I was like, oh my god, I barely used the
Speaker 3: debugger beyond like print statements, and then one or two
Speaker 3: great points he in there. What do I know about
Speaker 3: improving in the bugger space? My goodness? And turns out
Speaker 3: I think there's a lot of opportunities still to reveal
Speaker 3: to people the beauty of the debugger in general, and
Speaker 3: also for the visual studio a debugger, because so many people,
Speaker 3: people who've been working in the industry way longer than
Speaker 3: I ever have like don't know about this cool stuff. Yeah,
Speaker 3: and it's worth sharing.
Speaker 1: What version were we on when you started working on debugger?
Speaker 3: Oh? We were on was it twenty Okay? Twenty eighteen
Speaker 3: was about to come out at the time that I joined,
Speaker 3: So it was the version before that, which one was that.
Speaker 2: It was twenty twenty fifteen.
Speaker 3: Fifteen, Yeah, we were in twenty fifteen.
Speaker 1: But we were That was Dottin at Court right.
Speaker 3: Right, And I want to say, I think like Dotna
Speaker 3: Tour just came in to Fruition and Roslin.
Speaker 1: Do we have Roslin?
Speaker 2: Ross was announced at that point.
Speaker 3: Yeah, I think Roslin was. Yeah, it was at least announced.
Speaker 1: All right, so at least it was fun, right then.
Speaker 1: I mean before Roslin in, before Core, it probably would
Speaker 1: have been as much fun.
Speaker 3: I don't think, yeah, think about that. I think, yeah,
Speaker 3: Roslin and Core a pretty fun. I do remember the
Speaker 3: backlash from poor framework folks out there though. Yeah, transition, there's.
Speaker 2: Always discussion about what's going to make it across and
Speaker 2: what isn't right. I think a Hunter said to me
Speaker 2: ages ago, it's like, you only get to rewrite a
Speaker 2: framework once, and and here we were, we're going to
Speaker 2: commit to it, so and you've got it in the end.
Speaker 2: The reason for the rewrite was that framework was just
Speaker 2: too bound to Windows and if you really wanted to
Speaker 2: be cross platform cloud friendly, you know, all of those
Speaker 2: things they had to rethink a bounch of this stuff,
Speaker 2: and they eventually get into certain libraries. And I'm looking
Speaker 2: at you asb dot Net web forms just so bound
Speaker 2: to iis so bound to Windows. There was no way
Speaker 2: to lift it out that made it still the same thing.
Speaker 2: You know, it would have it would not have been
Speaker 2: the same same thing happened to wind forms, you know,
Speaker 2: the wind forms version that went over across the three
Speaker 2: one SDK is not the wind Forms of old. It
Speaker 2: couldn't be.
Speaker 1: Yeah, and if Mono hadn't come around and all that
Speaker 1: zammer and stuff, who knows how long it would have taken, right.
Speaker 2: I don't know if they would have done it, but
Speaker 2: they would have. It's really a part of the Microsoft
Speaker 2: becoming a cloud company instead of yeah, yeah that mindset
Speaker 2: you said, Okay, well, then you needed to make tools
Speaker 2: that support what your customers look like in the cloud.
Speaker 2: And weirdly enough, your customers run a lot of Linux.
Speaker 1: So Leslie, you want to talk more about debugging, or
Speaker 1: you want to talk about visual studio or productivity. It's
Speaker 1: your show where you want to go?
Speaker 3: Yeah, I mean we can start with debugging since that's
Speaker 3: been the topic that we're on, and kind of branch
Speaker 3: from there because that is part of productivity, it's part
Speaker 3: of VS in general. Yeah, So I mean it's more
Speaker 3: really a question of where in the debugging world do
Speaker 3: we want to even start, right, There's so much going on,
Speaker 3: and I think with twenty twenty six especially, it's been
Speaker 3: interesting to see how the debugger is evolving, especially now
Speaker 3: that like AI and LMS are yeah, are being introduced
Speaker 3: with it. Like I think of, I mean, obviously you
Speaker 3: can just explain things with copilot or ask copilots to
Speaker 3: analyze things for you. There's a whole debugger agent that
Speaker 3: is coming out alongside twenty twenty six now that can
Speaker 3: do a lot of that analyzing on your behalf, which
Speaker 3: is really cool. And I really like the existing debugger
Speaker 3: features that now have Copilot just built into it and
Speaker 3: therefore help extend the productivity. Like I think of, one
Speaker 3: of my favorite tools in VS and the debugger is
Speaker 3: the I numerable visualizer. That's a yeah, and that's a
Speaker 3: window if you don't know, it's a window that lets
Speaker 3: you see a tabular representation of your list or anything
Speaker 3: that's coming from an I numerable and really great already
Speaker 3: because you can see that table based visualization. You know,
Speaker 3: Excel as your friend, to the point where you can
Speaker 3: even export that data to Excel if you wanted to
Speaker 3: do that.
Speaker 1: But yeah, digging down into an I numerable and the
Speaker 1: immediate window is not a no.
Speaker 3: Yeah, it's not fun, right, So nice people to have
Speaker 3: this more visual, natural way of looking at it. And
Speaker 3: now a co pilot added on top. I also like
Speaker 3: to call my nickname for the Iumerable visualizer now is
Speaker 3: the link sandbox, because it gives you already before Copilot
Speaker 3: is even introduced. There's a space up top that lets
Speaker 3: you enter link queries and see how that filters out
Speaker 3: your list. That's fine, and the data in it, which
Speaker 3: is really cool already, but then you put copilot on
Speaker 3: top of it, and then you can ask Copilot to
Speaker 3: create those link queries for you instead of having to
Speaker 3: think of all those complex things put together yourself. So
Speaker 3: a natural language.
Speaker 1: Just be got me curious about the copilot for the debugger.
Speaker 1: Can you can you basically just say, you know, hey,
Speaker 1: set up a watch variable for this and you know,
Speaker 1: let me know. I mean, you can do that in
Speaker 1: the debugger with a click, but can you do that
Speaker 1: with the agent?
Speaker 3: I think that is not we're not quite there with
Speaker 3: that yet, or if we are, I personally haven't gotten
Speaker 3: it to work. But I think the beauty about that,
Speaker 3: and it's.
Speaker 1: Not really a productivity booster, is it.
Speaker 3: I mean right, But that said, I think there could
Speaker 3: be some merit to having the agent people to handle
Speaker 3: some of that too, because especially if you're new to
Speaker 3: the debugger, if you're new to visual Studio, you may
Speaker 3: not know just yet that you can do well all
Speaker 3: of that with the watch window.
Speaker 2: I mean, we open this conversation with the we barely
Speaker 2: understand all the things that are in the debugger. Like
Speaker 2: excited me about this is here's a tool that nominally
Speaker 2: has access to every feature in the debugger, so presented
Speaker 2: a debugging problem, maybe to activate features I never would
Speaker 2: have naturally gone to with my knowledge of the debugger.
Speaker 1: Or maybe you know, when there's a scale issue, like
Speaker 1: you know, you want to watch one variable, that's fine,
Speaker 1: but what if there's a bunch of them that could
Speaker 1: be implicated in a problem that you could just say, hey,
Speaker 1: watch all the variables that that are created from here
Speaker 1: on down something like that.
Speaker 3: Absolutely, yeah, and then there's a case of like watch
Speaker 3: them only if this condition happens, which normally if you're
Speaker 3: not using co pilots like you can use conditional breakpoints
Speaker 3: for that, you can use dependent breakpoints for that, which
Speaker 3: is one of those lesser known going to dig around
Speaker 3: in the in the space to discover that one.
Speaker 1: Kind of have a propeller being to use that one.
Speaker 2: Yeah, now you're writing code in the debugger, right, You're
Speaker 2: writing an expression in the debugger to debugger code. No.
Speaker 2: I think that this this tool, this code generation tool
Speaker 2: for the debugger like this, it could be incredible to
Speaker 2: just get. You'll start using more of the debugger than
Speaker 2: you ever have before.
Speaker 3: Yeah, I totally agree, And I feel like a lot
Speaker 3: of my not vendettas, But I guess a lot of
Speaker 3: my goals back when I was still on the team
Speaker 3: even was just like, how can we take these tools
Speaker 3: that are so cool that nobody knows about and how
Speaker 3: can we just make them more discoverable.
Speaker 2: Yeah, this is a conversation you and I had in
Speaker 2: a video series for Visual Studio. I think we spent
Speaker 2: twenty minutes on exactly that problem is nobody knows what
Speaker 2: they are, who knows about them?
Speaker 3: And it fricks my heart. Yeah, the punchline every time
Speaker 3: I gave a debugging tips and tricks talk was always like,
Speaker 3: is this new and twenty eighteen or whatever was the
Speaker 3: newest version at the time, Like, no, it's been there since.
Speaker 2: Been there for years whatever.
Speaker 3: Yeah, that's actually how features like pinnable properties came about
Speaker 3: because basically I was frustrated that there's this debugger attribute
Speaker 3: that exists that you can or debugger display is the
Speaker 3: name of the attribute where you can view like properties
Speaker 3: of your objects and your classes and stuff directly within
Speaker 3: the Watch autos and locals windows. But that's not very discoverable.
Speaker 3: You have to modify your code to use it, that
Speaker 3: sort of thing. So I was like, can we make
Speaker 3: this more discoverable. Okay, let's have a little pin pop
Speaker 3: up when you hover over your your properties. And adoption
Speaker 3: for that has been way higher than the debugger display
Speaker 3: attribute probably was. So it's just exposing the same functionality
Speaker 3: in a more debugging friendly space.
Speaker 2: Well, and you always have to battle over popping anything
Speaker 2: up that would an interrupted developer, Oh totally, even if
Speaker 2: it's super helpful.
Speaker 3: Yeah, it's always that's always a debate that we have.
Speaker 3: I'm actually dabbling a little bit on a project that
Speaker 3: I can't talk about too much, but basically it's that
Speaker 3: scenario of how do we improve this experience that everybody
Speaker 3: is familiar with, but without making it seem too noisy
Speaker 3: or impeding upon productivity that people already have.
Speaker 2: So interrupting is always the challenge, right yep? Are you
Speaker 2: interrupting me? Is he going to make me grumpy if
Speaker 2: you interrupt me? And yet you are interrupting me, but
Speaker 2: arguably to a path of happiness.
Speaker 3: Yeah, hopefully to a path of productivity and goodness, less
Speaker 3: frustration at two am when you're trying to fix some one.
Speaker 2: Just wrying to take come at this from a different way,
Speaker 2: I mean again, because you're all in on twenty twenty
Speaker 2: six right now, which is in an insider's preview. Yeah,
Speaker 2: at the moment, so you can have access to it.
Speaker 2: But do you see it as a rethink of visual studio.
Speaker 2: It's just like the lllms have come to stay, and
Speaker 2: how do we change our development experience in the idea,
Speaker 2: I think.
Speaker 3: Reading is a big word, but I would see it
Speaker 3: more as an extension of what our goals already have
Speaker 3: been for visual Studio with the introduction of co pilot. Obviously,
Speaker 3: the goal there is definitely to interweave that tool into
Speaker 3: existing workflows so that it isn't interrupting you in a
Speaker 3: bad way, as you mentioned, So that's definitely the goal there,
Speaker 3: But a lot of the other goals that we've always
Speaker 3: had have stayed the same, such as still improving performance
Speaker 3: and still making sure that it looks modern and sleek,
Speaker 3: and you're not focused about how bad the UI is
Speaker 3: as you're trying to spend hours fixing your code or
Speaker 3: something like that, and then just making sure that people
Speaker 3: are still productive. So I don't think it's a complete
Speaker 3: overhaul twenty twenty six, but just trying to streamline some
Speaker 3: of that experience even further so that everything feels natural.
Speaker 2: Because you also work on visual studio code. I do, so,
Speaker 2: I mean it says I just feel like the ID
Speaker 2: is old school, Like there's a cold group of developers
Speaker 2: coming out that's never been in an ID, which I
Speaker 2: find frustrating because that was a happy place for novices,
Speaker 2: like if you're new in the fact that you had
Speaker 2: all your tools in front of you and it was
Speaker 2: just there to help you do all the things. Yeah,
Speaker 2: that doesn't seem to be the way that that new
Speaker 2: people come into development these.
Speaker 3: Yeah, it's interesting because personally, I also when I was
Speaker 3: at school studying computer engineering computer engineering, I was using
Speaker 3: a full ide. I was using mostly Intelligent at the
Speaker 3: time and a lot of x code because I a
Speaker 3: Mac at the time. But yeah, full ID so for me,
Speaker 3: and maybe I'm biased as a result. Like when I
Speaker 3: started using vs code, it's I found a little harder
Speaker 3: just because it's like all those tools that I'm used
Speaker 3: to playing around with and using are not there by
Speaker 3: default and having to.
Speaker 2: Yeah you have to assemble them.
Speaker 1: Yeah, you have.
Speaker 3: To figure it out kind of which, on the one hand,
Speaker 3: can be nice because it gives you customers ability and
Speaker 3: it's more, you know, the lightweight keyword is everyone's favorite
Speaker 3: to use with thes code. But I definitely do think
Speaker 3: the downside is like it kind of has the opposite
Speaker 3: problem in a way with Visual Studio. Visual Studio, for
Speaker 3: many people getting started, it can be really overwhelming, and
Speaker 3: then yeah, it's because it's too much. And then I
Speaker 3: think vs code, at least for me, can also feel
Speaker 3: overwhelming because they're so little initially, so it's like, oh man,
Speaker 3: where do I pull all this extra stuff?
Speaker 2: Well, and I always worry about forcing novices to make
Speaker 2: decisions in their tooling that there don't you know, don't
Speaker 2: have enough info on. It's like which of these baden
Speaker 2: should I put in? Like what is the correct set?
Speaker 3: Right? Which extensions should I hear? And yeah, what?
Speaker 1: Yeah, I'm probably a little guilty of that in assuming
Speaker 1: that everybody uses Visual Studio because I have an I
Speaker 1: nine with sixty four gigs of RAM, Like it's very
Speaker 1: fast and zippy for me, but probably not for your
Speaker 1: average Windows laptop.
Speaker 3: Yeah, you know, yeah, I definitely actually use a dead
Speaker 3: box most of the time when I'm using d S
Speaker 3: or vs.
Speaker 2: Code because, right, because you want to a lot more.
Speaker 3: Consistent versus my laptop that I'm currently hanging out on.
Speaker 2: So yeah, you're sort of unloading the workload onto something
Speaker 2: in the cloud.
Speaker 3: Right.
Speaker 1: But I've been I've been getting into vs code a
Speaker 1: lot more lately, probably no thanks to Jeff Fretz, probably
Speaker 1: more so than anything else, because he's, you know, we're
Speaker 1: doing these shows together and he's always showing me stuff
Speaker 1: in Visual Studio Code that I hadn't seen before. So yeah,
Speaker 1: it's it's cool and you know, if it's see if
Speaker 1: you have if you can look up things that you
Speaker 1: are missing and you find them and you just work
Speaker 1: around it. It's not a big deal.
Speaker 3: Yeah, I think once you get into a groove with either,
Speaker 3: really you do get into a group. So as of
Speaker 3: where I stand on vs CO now, like years after
Speaker 3: starting with it, it's like, yeah, it's old hat, but
Speaker 3: I sometimes worry about those getting started sometimes, like oh gosh,
Speaker 3: it's like so minimal that it's hard to know where
Speaker 3: to start.
Speaker 1: But you know, if you don't know where to start
Speaker 1: and you don't know what you're doing, just call up
Speaker 1: your good buddy mchaay calls them my bff, chat GPT.
Speaker 1: You know, don't I do this?
Speaker 3: How I do download?
Speaker 1: Or just use the agent? You know, where's where's this button?
Speaker 2: You know? Totally please don't anthwer.
Speaker 1: Yeah, I really bugs Richard and you say worry.
Speaker 2: I'm t trying to keep people thinking coherently about these
Speaker 2: software tools and very we can. It's very disturbing when
Speaker 2: they get names.
Speaker 3: I mean, you know, yeah, I get scared to name
Speaker 3: them too.
Speaker 1: Yeah, Kelly called chat GPT my bff from the very start.
Speaker 2: Nice, not a good thing. Hey we should take a break. Yeah,
Speaker 2: let's do that, all right, we'll be right back after
Speaker 2: these very important messages.
Speaker 1: Did you know you can lift and shift your dot
Speaker 1: Net framework apps to virtual machines in the cloud. Use
Speaker 1: the elastic beanstalk service to easily migrate to Amazon EC
Speaker 1: two with little or no changes. Find out more at
Speaker 1: aws dot Amazon dot com slash Elastic beanstalk.
Speaker 2: And we're back. It's Don at Rocks Amateur Camble. Let's
Speaker 2: call Franklin Yolo hanging with Leslie Richardson. So recently have
Speaker 2: both Orlando and Lisbon when we were doing our little
Speaker 2: show too together. You're back home. I'm now fun. I'm
Speaker 2: in New Zealand with the grand baby.
Speaker 3: Oh yeah, but I think you mentioned that.
Speaker 2: Yeah yeah, so have you had a good time, having
Speaker 2: a great time? And if you hear dogs barking in
Speaker 2: the background, it's the farm dogs because you know, farm
Speaker 2: dogs do that sweet So outside of the debugger. Same
Speaker 2: thing I have to see with visual studio all the time,
Speaker 2: like the number of times I've been doing something a
Speaker 2: visual studio and using a set of shortcut keys that
Speaker 2: I've known for twenty years, like just pain switches and
Speaker 2: things like that, and people go, wait, how did you
Speaker 2: do that? Right? This discoverability problem is not a small.
Speaker 3: Issue, absolutely not. Yeah.
Speaker 2: Yeah, so it's so huge, it's so many features. But
Speaker 2: again I think I wonder how much the LMS has
Speaker 2: changed the way we're going to interact with code going forward. Yeah.
Speaker 3: Yeah, like my dream sort of either agent or extension
Speaker 3: or maybe a mix of both that I do want
Speaker 3: to write at some point I just don't have the
Speaker 3: full hookups and needed to do it. Is I would
Speaker 3: love for co Pilot to be able to be that
Speaker 3: like Visual Studio or vs code feature suggestor like if
Speaker 3: the user is talking to co Pilot like I want
Speaker 3: to accomplish X y Z, why writing my code? Or
Speaker 3: I find or let's use sticky scroll as an example,
Speaker 3: like I get lost when I'm scrolling through my code.
Speaker 1: Is you're doing sticky codes? You know that you can
Speaker 1: use this shart cut? Do you want me to just
Speaker 1: do that for you?
Speaker 3: Yeah, except in this case you're prompting it so like
Speaker 3: it's your choice. But at the very least co Pilot
Speaker 3: would know about its existence and then be like, would
Speaker 3: you like me to turn it on for you? Like yeah,
Speaker 3: instead of having to search through the pavilion tools options.
Speaker 2: That is cool, that is or another kind of little
Speaker 2: pop up, little icon thingy, like there's a lot of
Speaker 2: those visual studios again, it's right. I know. I've had
Speaker 2: conversations with folks where it's like, when is it you know,
Speaker 2: the squiggles under code, you know, the TELISID stuff. We
Speaker 2: are happy they're there, right, it tells us something. It's
Speaker 2: not interrupt Sometimes the other ones, you know, can be
Speaker 2: more problematic that you know, when is it a distraction?
Speaker 2: And when is that help? But I just wonder if
Speaker 2: the switch over to the LM approach of you know,
Speaker 2: you could be or you know here, you could say,
Speaker 2: watch how I do this, make suggestions on how I
Speaker 2: could do it more efficiently. That's really interesting to me
Speaker 2: because it's far more intentional.
Speaker 1: I hope Visual Studio twenty twenty six gets better at
Speaker 1: things that in Visual Studio now, whatever I'm using twenty
Speaker 1: twenty two can't remember. Yeah, it kind of loses track
Speaker 1: of file handles and things once in a while and
Speaker 1: says I can't build this because the file is in
Speaker 1: use by another process. Well it's your process, right, it
Speaker 1: certainly isn't.
Speaker 3: In mind.
Speaker 1: I didn't fire up notepad here, you know, and I
Speaker 1: have to shut it down and reload it right and
Speaker 1: then it's fine, right clean the solution. But if I
Speaker 1: myself doing that a lot, and the other thing is like,
Speaker 1: and I know Dustin worked on this in the Razor Editor,
Speaker 1: just like squiggles when there shouldn't be squiggles, discoloration.
Speaker 3: Should canst be better.
Speaker 1: Yeah, so I'm really really I haven't checked it out yet,
Speaker 1: but I'm really looking forward to the new version of
Speaker 1: Visual Studio for because I know that it's better about
Speaker 1: things like that.
Speaker 3: Yeah. I know, personally, I've had less hiccups with co
Speaker 3: Pilot when I swapped over to twenty twenty six. I
Speaker 3: think one of my biggest pet peaves that I had
Speaker 3: with co Pilot in twenty twenty two. But to be fair,
Speaker 3: I think this issue has since been resolved. I get
Speaker 3: like the longer I chat with it, or specifically about
Speaker 3: trying to get it to help me fix something wronger
Speaker 3: to bug with me. Eventually it reached a point where
Speaker 3: it'd be like it called this tool called get file,
Speaker 3: I have no idea where that's coming from or whatever,
Speaker 3: and then it would just freeze and do nothing, and
Speaker 3: then I have to restart.
Speaker 1: I had the same exact problem and Visual studio code.
Speaker 1: We don't really have that issue as well.
Speaker 3: Yeah, which is when I would swap forward to do
Speaker 3: the thing. So yeah, I filed a bug on it
Speaker 3: after much frustration, constantly seen it and I think it's
Speaker 3: since been resolved. But that was definitely one one big
Speaker 3: ripe I had with co Pilot on the twenty twenty
Speaker 3: two side. I haven't experienced a gripe of that nature
Speaker 3: since being on twenty twenty six, which I think is
Speaker 3: pretty good.
Speaker 1: My favorite model for interacting with studio and studio code
Speaker 1: and code and that stuff is clouds on it. I
Speaker 1: don't know what yours is.
Speaker 3: Really, Yeah, yeah, I use clouds on it. Four point
Speaker 3: five right now?
Speaker 1: Yeah, me too.
Speaker 2: Is that the latest?
Speaker 3: No, it's haiku. It's the latest one that just dropped.
Speaker 3: It's got a number. I don't remember the number.
Speaker 2: Yet because I yeah, I've seen probably five folks working
Speaker 2: in three five, seen him working at four four one.
Speaker 2: Now it's four five.
Speaker 1: Haiku would be five to seven five, right.
Speaker 3: Yeah, No, I was waiting for that.
Speaker 2: God, I hope that's true. That would be the best
Speaker 2: thing ever.
Speaker 3: Can we make a haiku about Claude Hahiku? Claude Hiku
Speaker 3: is cool. Many models aren't as good. Use Claude Hiku.
Speaker 2: Now, lots of compile blinky lights.
Speaker 3: But yeah, I mean so that I enjoy clouds on
Speaker 3: it the most, and then I buffer it up usually
Speaker 3: with I'm on that awesome dash co pilot. Yes, repository
Speaker 3: all the time, Like this mode is, I love to
Speaker 3: use it.
Speaker 1: So this is like a repository of prompts and things, right, yeah,
Speaker 1: so this is system prompts and yeah great, Yeah.
Speaker 3: Just a bunch of community created prompts, co pilot instructions,
Speaker 3: chat modes, just a lot of different already made for you,
Speaker 3: copy paste it and your ID choice things that enables
Speaker 3: you to do certain tasks better with so cool pilot
Speaker 3: and agents.
Speaker 1: Like plug ins and text mode. You know, is really
Speaker 1: really simple, so good.
Speaker 3: I love it. Yeah, go clues gaved you the trouble
Speaker 3: of having to write paragraphs of prompts as well, because
Speaker 3: somebody else has already figured it out.
Speaker 2: So yeah, but it do feel like you, I think
Speaker 2: we've talked about this on a previous show, like you
Speaker 2: want to build up a repertoire of prompts, even a
Speaker 2: record of them, for a given project, because it is
Speaker 2: sort of it isn't a way it's your code now, Yeah,
Speaker 2: the way you're describing, you know, features. And we talked
Speaker 2: about githubspec kit for the same and in the same
Speaker 2: sort of area. Yeah, how do we actually mature that
Speaker 2: the prompts that are creating our projects?
Speaker 3: Absolutely, and yeah, that's becoming increasingly more and more important
Speaker 3: to be able to hold on to those Unicorn prompts
Speaker 3: that have been shown to work most of the time.
Speaker 3: And I'm really glad it took v S a minute
Speaker 3: to do it, but they finally introduce reusable prompts. I
Speaker 3: still think that experience could be streamlined because right now
Speaker 3: you still have to like go out and no pad,
Speaker 3: copy and paste whatever prompt you want to write, and
Speaker 3: then save it as a particular markdown and make sure
Speaker 3: it goes in the right folder. All this stuff that
Speaker 3: I think would be streamlined to just like one or
Speaker 3: two steps instead of like the five you currently have
Speaker 3: to do for that. But I do appreciate that it's
Speaker 3: at least there so you can.
Speaker 2: You're you're on that path, just go through.
Speaker 3: Yeah, the prompts that are already listed in your project.
Speaker 2: I can imagine an enterprise organization that the architects have
Speaker 2: a bunch of uh, you know, prefixes initial statements to
Speaker 2: any prompt that in our organization, these are the rules
Speaker 2: for co generation, and so whatever additional prompt you're putting
Speaker 2: in there is shaped by the enterprise requirements exactly.
Speaker 3: It's so nice, Yeah, somebody, I'm sure teams have already
Speaker 3: started to do that, Like, here's our set of rules
Speaker 3: and standards for what we have, pass that into co
Speaker 3: pilot and then just build on top of that. Right,
Speaker 3: I think bonus points if co Pilot was more aware
Speaker 3: of the editor can fig file, which I desperately want.
Speaker 3: I feel like it's very hit or miss on whether
Speaker 3: it acknowledges the contents of that.
Speaker 2: But getting there, how does that impact things?
Speaker 3: Yeah? So the editor can fig file, for those unaware,
Speaker 3: is a really cool file you can add to your
Speaker 3: project that basically keeps you and your team consistent with
Speaker 3: how you're formatting, the kinds of analyzers you're choosing to use,
Speaker 3: the severity levels of certain errors and things. So, for example,
Speaker 3: if you want to make sure that everybody is placing
Speaker 3: the standard eye in front of an interface when you're
Speaker 3: defining an interface, you can change the severity level that
Speaker 3: Visual Studio throws at you from being just like a
Speaker 3: suggestion to a full on compilation error because you want
Speaker 3: to make sure that everyone's staying consistent. So it's keeping
Speaker 3: yourself accountable. It's a great file to have, and whatever
Speaker 3: you put in there from a formatting standpoint overrides whatever
Speaker 3: you've got in the tool options as it relates to formatting.
Speaker 1: So it reminds me of fx cop back in the day.
Speaker 3: I'm not familiar with that. Is it kind of similar?
Speaker 1: I was a dot net framework thing that you know,
Speaker 1: basically helped enforce the standards of cotyle.
Speaker 3: Yeah, okay, I gotcha, Yeah, same deal. But yeah, I
Speaker 3: bring it up because I would love for co pilot
Speaker 3: to basically take the editor and can figure the editor
Speaker 3: can fig file into account the same way it takes
Speaker 3: into account the copilot dash instructions, not md file, and
Speaker 3: it's like always using it as a reference no matter
Speaker 3: what prompt I'm giving it, so that copilot also has
Speaker 3: to follow the same rules that I have to follow
Speaker 3: and the team has to follow.
Speaker 1: Have you found the LM's ignoring things in the system
Speaker 1: prompt and and you know, sometimes following them and sometimes not,
Speaker 1: Like if you tell them, never do this and they
Speaker 1: do it anyway.
Speaker 3: Yeah, I've had some weird quirky moments with that every
Speaker 3: every once in a while. I know, I think maybe
Speaker 3: some of it is partially my human error. The last
Speaker 3: time I could think of where I encountered that issue
Speaker 3: is because I wrote a copilot dash instructions file and
Speaker 3: it I forgot to put it in the dot GitHub
Speaker 3: folder it's supposed to go in. But if anything, I
Speaker 3: think that needs to be more clear in the documentation
Speaker 3: because it's not off up front.
Speaker 1: But I've had this situation where you know, you're either
Speaker 1: using that file, which is essentially a system prompt, yeah,
Speaker 1: or a system prompt itself, and you know it's picking
Speaker 1: up most of the things in the system prompt, but
Speaker 1: some things that just completely ignored And I don't know why,
Speaker 1: And I don't know. I couldn't tell you what it
Speaker 1: was about that particular prompt that I gave it that
Speaker 1: made it ignore the system prompt. But maybe, you know,
Speaker 1: if it finds inconsistencies between the user prompt and the
Speaker 1: system prompt, maybe a'll just ignore stuff. Yeah, I don't know.
Speaker 3: I guess maybe it start things start to get tricky
Speaker 3: once you are involving multiple prompts that potentially contradict each
Speaker 3: other in some ways.
Speaker 2: Maybe that isn't this a plot of two thousand and one?
Speaker 2: A space out?
Speaker 3: I'm afraid I cannot do that.
Speaker 2: Sorry. What happens when you have to make keep the
Speaker 2: mission safe at all conditions and you've now deducted that
Speaker 2: having the other people alive is it is a risk
Speaker 2: of the mission?
Speaker 3: Yeah, I know. One of my current frustrations I have
Speaker 3: with co pilot ignoring or not ignoring things has to
Speaker 3: do with MCP servers, because that's currently where I'm spending
Speaker 3: a lot of my time these days. And sometimes, like
Speaker 3: with the GitHub one, especially as an example, I'll be like,
Speaker 3: write me a PR or just commit these changes with X,
Speaker 3: y Z things, and then it's like sure, but then
Speaker 3: it completely ignores the server that's just chilling waiting to go.
Speaker 3: And then we'll just open the command line and start
Speaker 3: running get commands there, and I'm like, that's not what
Speaker 3: I wanted. So sometimes I have to be like super specific,
Speaker 3: like use the MCB server, but is chilling out there?
Speaker 2: Mm hm, and you talget specifically the ge hub MCP server.
Speaker 3: Yes, yeah, So in this example, that's the one.
Speaker 2: But I mean, yeah, there's a there's a philosophical debate
Speaker 2: here about if I have a tool that can generate code,
Speaker 2: like why not just to generate assembly code, right like
Speaker 2: go all the way to the bare bones right away.
Speaker 2: You don't have to live with that code, it's just
Speaker 2: going to generate it for you. And if that same
Speaker 2: toke is like it can write the get hub messages itself,
Speaker 2: why go through the MCP server, Like, you know, the
Speaker 2: fact that we have to direct it that way is interesting,
Speaker 2: Like it ought to default to the MCP server because
Speaker 2: it's safer, Like what's the advantage there, right?
Speaker 3: Yeah, I mean it depends on what the given scenario
Speaker 3: you're trying to accomplish is. But I know, for me personally,
Speaker 3: I like to use the get hub MCP server over
Speaker 3: like even just the built in visual studio get changes
Speaker 3: page because get changes has evolved a lot, Like it
Speaker 3: wasn't even there at the time that I joined Microsoft,
Speaker 3: and now it's since blossomed into a fully and to
Speaker 3: end like you can create prs in it straight up experience. Now. However,
Speaker 3: I still like to use the MCP server one because
Speaker 3: I like to use natural language, especially when it comes
Speaker 3: to get. I'm kind of allergic to the terminal window sometimes,
Speaker 3: so I don't always like to use CLI commands.
Speaker 1: Yeah, and it's just more stuff that you have to remember.
Speaker 3: Yeah, I agree, and trying to remember some more of
Speaker 3: the niche commands like get blame or get rebase and
Speaker 3: stuff like that I don't have to do because I
Speaker 3: can just tell the MCP server that is what I
Speaker 3: want to do, so please figure it out for me.
Speaker 3: And also I do find that it writes better prs
Speaker 3: for me than just doing it either myself or with
Speaker 3: even the Visual Studio Integration Tool. Integrated tool does like
Speaker 3: it gets really detailed about it, which I love because
Speaker 3: I have experienced either because I'm guilty of it or
Speaker 3: because I'm reading someone else's prs where there's nothing to
Speaker 3: be found in the description. Sometimes it's just a header
Speaker 3: and that's all.
Speaker 2: You get in my fixed stuff.
Speaker 3: Cool, we know what you're talking about.
Speaker 1: All right, here's something from out of left field. Just
Speaker 1: from my experience in VS code and Individual Studio with
Speaker 1: the agent, the asynchronous nature of it leaves me baffled sometimes,
Speaker 1: like it will work on a problem right, and you'll
Speaker 1: have one file that it changes and there will be
Speaker 1: a keep button there, but it's still working. Yeah, Should
Speaker 1: I press the keep button? Or shouldn't I press the
Speaker 1: keep button? And should I wait until it's all done?
Speaker 1: And there is there a keep all? I don't see it.
Speaker 1: Keep all? Do I have to go find all the
Speaker 1: things that change?
Speaker 2: Right?
Speaker 3: And that's the same to be strange time, it is
Speaker 3: kind of scary, like I'm one where I get nervous
Speaker 3: about doing it while it's in the middle of something,
Speaker 3: So I don't keep until like the end of TEI.
Speaker 3: But I feel like how it's maybe working behind the scenes,
Speaker 3: and maybe if you talk to someone on the co
Speaker 3: pilot team, they can give more detail. Here it feels
Speaker 3: like it's making a change, and then it's basing all
Speaker 3: future actions that are all future actions that copilot's doing
Speaker 3: after the fact based off of those changes, whether you've
Speaker 3: chosen to keep it or not.
Speaker 2: But how about that?
Speaker 1: How about this one? It makes changes in five different
Speaker 1: files and it doesn't build and it says it's done
Speaker 1: right right, Okay, you're not done? Should I keep it?
Speaker 1: Should I keep this one or that one? Or undo everything?
Speaker 1: Can I just tell you to undo everything?
Speaker 3: But I know I kind of hate the confidence about.
Speaker 2: Done when we're not able to build.
Speaker 3: This looks great. It works great, even though I didn't
Speaker 3: build it at all. It does.
Speaker 1: It goes on. You're exactly right, Yes, let me.
Speaker 3: See that for you right the whole time. But yeah,
Speaker 3: this was just a test. I was just testing you.
Speaker 2: Yeah, we've blown the wings off the airplaning. We're plumbing
Speaker 2: towards the ground. But you were right that test would
Speaker 2: blow the wings off. Yeah, thank you.
Speaker 3: That's why I like the beast mode prompt because, like,
Speaker 3: if you use nothing else on Awesome dash Copilot, yeah,
Speaker 3: I highly recommend beast mode. Yeah. So it's a really
Speaker 3: great prompt. It's really long if you look it up
Speaker 3: on Awesome dash Copilot. It's actually under the chat modes holder.
Speaker 3: But it is a prompt that's basically at its core
Speaker 3: telling co pilot you know nothing, Like you don't know
Speaker 3: as much as you think you do. So as a result,
Speaker 3: go look on the internet for additional documentation and other
Speaker 3: resources before you give me a response. So I do that. Yeah,
Speaker 3: it will make an itemized list. It's going to make
Speaker 3: sure to at least try to build, try to build
Speaker 3: the thing before it gives you the response of it
Speaker 3: works great and go from there. So it just addresses
Speaker 3: a lot of the nippicks that I think a lot
Speaker 3: of people have with Alowans in general. And Wow, it
Speaker 3: makes copilot. It puts co pilot down a peg, I
Speaker 3: guess in terms of its confidence level. So it tries
Speaker 3: to be right and that's double checking its answers more.
Speaker 1: That is one thing we've noticed about about sign it
Speaker 1: in particular is that it tries to overperform, over deliver right. Hey,
Speaker 1: while I was at it, I read your entire application.
Speaker 2: Like whoa Hey, whoa whoa whoa whoa Yeah.
Speaker 3: And best most nice because it also breaks down what
Speaker 3: it's going to do in steps, like you get a
Speaker 3: little to do list from it, and so for me
Speaker 3: usually if I'm doing like vibe coding with it, I'll
Speaker 3: be like, do this, but do not continue to the
Speaker 3: next step that you're referring to until I say so,
Speaker 3: so I can like review everything before it.
Speaker 2: This decreases the risk of the universe being turned into
Speaker 2: paper clips.
Speaker 1: Yeah, find me the best price on a flight to Miami,
Speaker 1: but don't buy it.
Speaker 3: Yeah, do not the goodness don't buy that. Spirit air
Speaker 3: ones to tick up for one thousand dollars. What are
Speaker 3: you doing?
Speaker 2: And I have to ride in an overhead bin? Oh
Speaker 2: my god, buddy.
Speaker 3: Yeah, check out beast Mode. It's also a great It's
Speaker 3: a pretty funny read too, because a lot of it's
Speaker 3: like in all caps. It kind of reads like a
Speaker 3: really tough coach in a sports movie being like Mercies
Speaker 3: for the week, blah blah bla blah blah, don't do
Speaker 3: this x y Z.
Speaker 2: Is this Burke Holland wrote this?
Speaker 3: Yeah, the awesome, wow, awesomeness. Who was Burt Holland.
Speaker 2: He's great, it's so funny.
Speaker 3: Yeah, he's wonderful.
Speaker 2: Yeah, a clue to linked to beast mode for in
Speaker 2: the show notes for sure. For that, it's it's very
Speaker 2: interesting when you push these tools into very specific behaviors,
Speaker 2: they will follow. You know that. You know, we were
Speaker 2: playing this game with the tool where we were stripping
Speaker 2: away all of the obsequiousness, all of the decorative language,
Speaker 2: and then and then so it respond very tersely. And
Speaker 2: then when we press against certain subject areas that where
Speaker 2: you know, some perhaps political in nature, suddenly the language
Speaker 2: will get very big again. Like ah, okay, so this
Speaker 2: is hard coded stuff like this is not the LM
Speaker 2: generating it. Somebody's written in if you go, if you're
Speaker 2: in this direction, this is what you must say. So
Speaker 2: you know, there's lots of fixes inside these systems for
Speaker 2: dealing with the reality of the world. I wonder if
Speaker 2: beast mode turns the sycophancy off, you would hope, you know,
Speaker 2: just just don't don't be such an ass kisser. I
Speaker 2: wonder if I could just put that in the system
Speaker 2: prompt it's like absequious mode, low.
Speaker 1: Purple, a clairvoyant.
Speaker 3: I do like having that ability. Like I I Vibe
Speaker 3: coded an MCP server the other day that's basically like,
Speaker 3: let's play Wordle. So it's a server that will boot
Speaker 3: up a game of Wordle and copilot chat when I
Speaker 3: tell it to. But by default it's maybe just because
Speaker 3: of the clouds on it. It's super verbose about it,
Speaker 3: and it's just like, hey, let me spoil the game
Speaker 3: for you, okay, let me give you some suggestion words
Speaker 3: to type in like no, So at one point I
Speaker 3: was just like, just give me the map and how
Speaker 3: many guesses I have left, and I will do the rest.
Speaker 3: And it's like sure, and like MCP server still works,
Speaker 3: but it's just a lot more blunt about it.
Speaker 2: Are there other mcps coming inside a Visual Studio then,
Speaker 2: Like we talked about the GitHub one, but I can't
Speaker 2: imagine there's a bunch of others in development, like.
Speaker 3: The registry, oh, the server in general. Yeah, so there's
Speaker 3: a ton of MCP servers to take advantage of, and recently,
Speaker 3: like I think, if you download the latest build of Insiders,
Speaker 3: you should be able to act us a built in
Speaker 3: way to browse MCP servers directly in Visual Studio. This
Speaker 3: also applies to VS code, but VS just introduced there.
Speaker 3: So similar to the Extension Manager where you can browse
Speaker 3: for extensions, there's now an experience for MCP servers. I
Speaker 3: think you can access it via the extensions tab in
Speaker 3: Visual Studio, which if they place to put it, but
Speaker 3: for now that's where it's located. Click that tab and
Speaker 3: then there's an MCP like browsing option right that you
Speaker 3: can click on to see all the different servers.
Speaker 1: We hear or I hear that there's a version of
Speaker 1: the Microsoft Seql Server MCP coming that doesn't require node
Speaker 1: and all of the other crazy things that it currently requires.
Speaker 3: That'd be cool.
Speaker 1: Uh yeah, yeah, waiting for that one.
Speaker 3: Yep, that would be nice. Actually, I enjoy that a lot. Yeah,
Speaker 3: I think of some of my O our favorites I
Speaker 3: really like, and the under the Azure MCP server, which
Speaker 3: is huge, so I try to like filter the tools
Speaker 3: I actually care about. I like the tools on Azure
Speaker 3: Cousto because as a PM, we spend a lot of
Speaker 3: time in Cousto looking at telemetry and trying to build
Speaker 3: Cousto queries to get the telemetary that telemetry that we want.
Speaker 2: Nobody wants to write Cousto queries.
Speaker 3: No, exactly, nobody wants to write Nobody wants to do that.
Speaker 3: It takes like half the day.
Speaker 2: It's horrible to write a Cousto queries. There's only two outcomes,
Speaker 2: no data or all of the data nothing else.
Speaker 3: It's like that's too much. It's like, god, it sucks.
Speaker 3: So yeah, the COUSTA one is nice because it does
Speaker 3: a lot of that coustal query generation for you, and
Speaker 3: it's starting to acknowledge some of the internal tables that
Speaker 3: we have, which is so exciting because uh, nobody likes
Speaker 3: to document what happens in each internal table that we
Speaker 3: need to access, so you just have to get are
Speaker 3: pretty God that somebody is around who knows what's up
Speaker 3: with that table in its contents. Otherwise you're making educated
Speaker 3: guesses a lot of time.
Speaker 2: So it's well, I interviewed Mark Morowski on run As Radio,
Speaker 2: who's written the book on Cousto querying. Wow, but I
Speaker 2: still feel like and it's a cookbook too, So it's
Speaker 2: got a whole bunch of great queries that already in it, and
Speaker 2: I absolutely courage people to have it. But you know what, boy,
Speaker 2: this is a great use for LMS.
Speaker 3: I just you know, it's like you have the vision
Speaker 3: in your head and you just do not know how
Speaker 3: to put it on.
Speaker 2: To describe it in a prompt and let the tool
Speaker 2: iterate on it till you get results. And you can
Speaker 2: tell that prompt this is too much data. Narrow the
Speaker 2: scope and right and have it try to solve the
Speaker 2: problem for you. It might not succeed, but at least
Speaker 2: you're not the one just monking with parameters trying to
Speaker 2: figure out how do I narrow this. I wonder, I
Speaker 2: wonder if your average dot and I Rock's listener knows
Speaker 2: what KQL is, maybe we should just tell.
Speaker 3: Them Custo query language.
Speaker 1: Yeah, it's for querying. Azure. It's what you were just talking.
Speaker 2: About, right, Everything you possibly want an Azure, which by
Speaker 2: the way, is too much stuff is in there.
Speaker 3: Yep. A little very similar to SQL, I think, but yeah,
Speaker 3: just still still annoying to craft those queries just as.
Speaker 2: But yeah, but it queries across all kinds of different
Speaker 2: stores inside of Azure. Like I said, it's very easy
Speaker 2: to get.
Speaker 1: So you're saying there's an MCP for for KQL. That's
Speaker 1: what you're saying, right, and it makes it so much easier.
Speaker 3: Yeah, good good, thank goodness.
Speaker 2: Yep.
Speaker 1: And this is going to come out when a couple
Speaker 1: of weeks something like that.
Speaker 2: Yeah.
Speaker 1: Yeah, so on the twentieth I think. So this past
Speaker 1: week Fritz and I did a code with AI that
Speaker 1: where we tried to use the SQL MCP to query
Speaker 1: a Netflix database Netflix publishes or somebody got held of
Speaker 1: Netflix data for twenty twenty four and it's all historical data,
Speaker 1: so it's no big deal and about all the movies
Speaker 1: and titles in the visibility and all the you know,
Speaker 1: how many people accessed it and all that, and yeah,
Speaker 1: we tried to use the sequel MCP and we did.
Speaker 1: We got it working. But just to try to explain
Speaker 1: to people how to set it up. It turned out
Speaker 1: we would spend most of the episode doing that and
Speaker 1: actually using it. So what we did was I thought
Speaker 1: pretty ingenious. We used the internal MCP in Aspire, set
Speaker 1: up the sequel server with a script in Aspire, and
Speaker 1: then we use the internal MCP to tell it, hey,
Speaker 1: give us the schema for the tables. So it did that.
Speaker 1: We put that in the system prompt. We said, here's
Speaker 1: the schema, here's some mappings from English words to the
Speaker 1: field names in these tables. And then just take the
Speaker 1: text that we put in there the user puts in
Speaker 1: and translate that to a t SQL statement And that
Speaker 1: worked really well. And so there's two steps to it.
Speaker 1: You see the t squl statement and then you hit
Speaker 1: a button and it executes it and puts it in
Speaker 1: a grid.
Speaker 3: It's pretty sweet.
Speaker 1: So I thought that was a pretty cool thing. But
Speaker 1: I wouldn't want to do that if I had one
Speaker 1: hundred tables a thousand tables. So yeah, looking forward to
Speaker 1: the to an upcoming version of that makes it easier.
Speaker 1: But the whole goal, right is, you know, hey, you
Speaker 1: want to SEQL server MCP or this MCP or that one,
Speaker 1: just push a button, poof install it. Now you've got it.
Speaker 3: Mm hmm yeah that is the general idea.
Speaker 2: Yep, I love it.
Speaker 1: Well, we are unfortunately out of time, but Leslie Richardson's
Speaker 1: amazing talking to you.
Speaker 3: Thank you, thanks for having me. Was pun to chat
Speaker 3: on this lovely prid.
Speaker 1: Let's do this on a more regular basis.
Speaker 3: I agree, Yeah, okay, and we'll.
Speaker 1: Talk to you next time on dot net rocks. Dot
Speaker 1: net Rocks is brought to you by Franklin's Net and
Speaker 1: produced by Pop Studios, a full service audio, video and
Speaker 1: post production facility located physically in New London, Connecticut, and
Speaker 1: of course in the cloud online at pwop dot com.
Speaker 2: Visit our website at.
Speaker 1: D O T N E t R O c k
Speaker 1: S dot com for RSS feeds, downloads, mobile apps, comments,
Speaker 1: and access to the full archives going back to show
Speaker 1: number one, recorded in September two.
Speaker 2: Thousand and two.
Speaker 1: And make sure you check out our sponsors. They keep
Speaker 1: us in business. Now go write some code, see you
Speaker 1: next time.
Speaker 3: You got Jack Middle Vans O god that means home,
Speaker 3: then my Texas in a line. Credit b