Speaker 1: How'd you like to listen to dot net rocks with
Speaker 1: no ads? Easy? Become a patron for just five dollars
Speaker 1: a month. You get access to a private RSS feed
Speaker 1: where all the shows have no ads. Twenty dollars a month.
Speaker 1: We'll get you that and a special dot NetRocks patron mug.
Speaker 1: Sign up now at Patreon dot dot NetRocks dot com.
Speaker 2: Hey guess what. It's dot net Rocks Steve Sanderson Edition.
Speaker 2: I'm Carl Franklin, the amateur Campbell And uh, what can
Speaker 2: we say? Richard New Year?
Speaker 3: We're you're making a show and checking it twice? Oh wait, no,
Speaker 3: Christmas is over? Yeah?
Speaker 2: Uh all right, Well we got a lot of sort
Speaker 2: of pre show ramble to do, so let's get right
Speaker 2: into a better no framework awesome. Well I don't have
Speaker 2: a framework piece or anything per se, but I do
Speaker 2: have some news about Blazer Train and Blazer Puzzle. So
Speaker 2: Blazer Train I have done sparsely since we started the
Speaker 2: Blazer Puzzle, just focusing on redoing old things. But I've
Speaker 2: started a series on Blazer Train now that's going to
Speaker 2: be weekly or every other week on What's New and
Speaker 2: Dot at nine. So the first one is published maybe
Speaker 2: even the second one by the time this comes out,
Speaker 2: and the Blazer Puzzle is going to be a little
Speaker 2: different than usual. Typically, what we've done with the Blazer
Speaker 2: puzzles we give a problem and we say, okay, take
Speaker 2: the week or a few days and find a solution
Speaker 2: and email us the solution. Then we pick a winner
Speaker 2: from all the right answers. And we're not doing that anymore.
Speaker 2: We're going to give you a problem and then we're
Speaker 2: going to take a little pause, give people a chance
Speaker 2: to duck out or press the pause button on the video,
Speaker 2: and then we're going to give the solution. So no
Speaker 2: more winners, no more mugs, no more don't post this
Speaker 2: on social media. We want you to engage with us more.
Speaker 2: So it's kind of fun. It's more fun.
Speaker 3: That's cool, man.
Speaker 2: Yeah, So that's what I got. Just some updates from
Speaker 2: my Blazer videos. And also we should probably just briefly
Speaker 2: go over some things that happened in nineteen thirty six.
Speaker 3: This is episode ninety thirty six.
Speaker 2: Yeah, since it's episode nineteen thirty six and I want
Speaker 2: to be labor stuff and we don't want to take
Speaker 2: too much time. But there are a few important things
Speaker 2: that happened. Of course, you know, Nazi Germany just kind
Speaker 2: of ratcheted up in general. So there's a whole bunch
Speaker 2: of things. But on February fourth, Keynes John Maynard Keynes
Speaker 2: published The General Theory of Employment Interest in Money, a
Speaker 2: revolutionary economic work that fundamentally transformed modern modern macroeconomic thought
Speaker 2: and policymaking. Everybody knows about Keynesy and economics now. On
Speaker 2: February nineteenth, Marion Anderson performed at the White House, significant
Speaker 2: in the context of racial segregation, would later be remembered
Speaker 2: as a pivotal, pivotal moment in the civil rights movement.
Speaker 2: March first, the first p seventeen bomber was delivered on
Speaker 2: March seventeenth, Saint Patrick's Day Flood in Pittsburgh, Terrible, terrible flood.
Speaker 2: April thirteenth. Hitler appears on Time magazine cover. May seventh,
Speaker 2: Italian annexation of Ethiopia, and they continued to do a
Speaker 2: lot of damage in Ethiopia, the Italian military in On
Speaker 2: May twenty eighth, Alan Turing submitted the groundbreaking paper on computability.
Speaker 2: And he's a hero among us developers, of course, in
Speaker 2: mathematicians everywhere, and you know, do you have anything else
Speaker 2: you want to add? I mean, there's tons of things
Speaker 2: that happened, but sure, well you know, I stick towards
Speaker 2: the Zion stuff. So in nineteen thirty six was the
Speaker 2: year that the last thylacine died, also known as the
Speaker 2: Tasmanian tiger. Although it was more wolf like than anything else.
Speaker 2: It had been hunted because they believed it had been
Speaker 2: hunted for bounty because they believed it was killing sheep.
Speaker 2: Turned out to not be true. The last one died
Speaker 2: of neglect in the Tasmanian zoo. This is strictly a
Speaker 2: Tasmanian animal, and coincidentally, there is an organization working hard
Speaker 2: to de extinct the thylaccene. Wow like Jurassic Park style or.
Speaker 3: Well, no, his Jurassic Park is fiction.
Speaker 2: No, no, of course, but you know what I mean
Speaker 2: to cloning DNA.
Speaker 3: But in Jurassic Park's approach was to find DNA of
Speaker 3: the dinosaurs and then fill in the gaps of amphibian DNA,
Speaker 3: which is you know, again it's kind of fictional. What
Speaker 3: they're actually doing, these folks are doing, is they are
Speaker 3: finding the closest living genetic relative because they have good
Speaker 3: genetic material for the thylacine, and then they are changing
Speaker 3: that DNA to match the thylacine. Okay, but they're also
Speaker 3: working closely with Tasmani itself, like if they're going to
Speaker 3: does it make sense to reinduce it all that sort
Speaker 3: of thing, and there's a strong will to bring that
Speaker 3: animal back. It'll actually helps stabilize the ecosystem in Tasmania.
Speaker 3: Now that the thylacine has been gone for some ninety years,
Speaker 3: Tasmani has been stuffing air effects for not having a
Speaker 3: top tier predator, and so there's an idea that bringing
Speaker 3: back the thylascene would help.
Speaker 2: See you get a mini geek out in every dot
Speaker 2: net Rocks show.
Speaker 3: There you go. I mean, I've been keeping notes on
Speaker 3: de extinction for the mammoth and a few others and
Speaker 3: so forth. The thilastine has been one of them, and
Speaker 3: it just happens to be that nineteen thirty six was
Speaker 3: the year that the last thyloscene died.
Speaker 2: Wow, well, who's talking to us today?
Speaker 3: Richard Graudy comment off of show nineteen twenty two, the
Speaker 3: one we did with our friend Dan Roth and the
Speaker 3: Fall of twenty four talking about Blazer and dot net nine.
Speaker 3: And this comment seemed particularly relevant to our conversation today
Speaker 3: because it's from Brent from Atlanta, who said it was Grelway.
Speaker 3: Was great to hear from Dan. He binds me of
Speaker 3: a brilliant co worker of mine who just retired from
Speaker 3: Mongo dB. I'd love to know if coding llm's running
Speaker 3: locally like the Quinn two point five coder, will be
Speaker 3: easily integrated individual studio. I'm looking to enhance my Blazer
Speaker 3: coding with such tools without having to pay for Copilot,
Speaker 3: which is preferred to be in verie to Quinn. Anyway,
Speaker 3: I love the show. Well, hey get out copilot now free,
Speaker 3: So so much for paying for that. B All the
Speaker 3: copilots now have options for different back ends you can
Speaker 3: run on, so you know, the default is the open
Speaker 3: AI one, but if you want to switch to a
Speaker 3: LAMA or cloud or anything like that, you can do that. Yeah.
Speaker 3: Absolutely so there.
Speaker 2: Just as in a side I was talking to the
Speaker 2: guys at dev Express and they have a control now
Speaker 2: that tracks all of that stuff away and just gives
Speaker 2: you like an input box and you can connect it
Speaker 2: to wherever you want without any kind of nasty pain.
Speaker 3: Nice. Yeah, so yeah, all good things happening, good things,
Speaker 3: and so Brent, thank you so much for your comment.
Speaker 3: Copy of music Cobuy is on its way to you.
Speaker 3: And if you'd like copy of music Cooba, I write
Speaker 3: a comment on the website at dotn at Rocks dot
Speaker 3: com or on the facebooks. We publish every show there
Speaker 3: and if you comment there, we're read it on the show.
Speaker 3: We'll send you copy of music Goba.
Speaker 2: And you can follow us on other social media. We've
Speaker 2: been on ex Twitter forever. We're on mastadon and on
Speaker 2: blue Sky, and I believe Richard's also on threads. I
Speaker 2: have a Thread's account, but I don't watch it, and
Speaker 2: you know, but you can find us out there.
Speaker 3: Yep, we're out there. Blue Sky seems to do the
Speaker 3: fun one of these days.
Speaker 2: Yeah, just some variation of at Carl Franklin at rich Campbell.
Speaker 2: So let's bring back our friend Steve Sanderson. This is
Speaker 2: a very humble bio that Steve wrote for us. He's
Speaker 2: a developer on the dot net team at Microsoft. He
Speaker 2: focused as I'm making dot net better for application developers
Speaker 2: with a focus on AI and the web. Yeah, he's
Speaker 2: done a few things, a couple of things here and there,
Speaker 2: not really mentioning in the bio.
Speaker 4: Welcome back, Steve, Hello, thank you for bringing me back.
Speaker 2: Good to have you.
Speaker 3: Yeah, absolutely, man, And you know I always lead this
Speaker 3: off the same way. What are you working on?
Speaker 4: What am I working on?
Speaker 3: Well?
Speaker 4: I think, like quite a lot of us, I've started
Speaker 4: to focus on the AI side of software.
Speaker 2: Oh wow, recently.
Speaker 4: Yeah. I think it's a really big opportunity, and there's
Speaker 4: many different ways you can think about what it is.
Speaker 4: Like on one level, it's like a tool that can
Speaker 4: help you write your code, or it's just like a
Speaker 4: chat interface or things like that. I think all those
Speaker 4: things are fine, but that's not what I'm personally drawn
Speaker 4: to as like an area where we can exploit opportunities.
Speaker 4: Maybe it's my background, but I feel really drawn to
Speaker 4: doing things around applications and doing things for application developers,
Speaker 4: and I think about the you know, the many many
Speaker 4: people I know who working companies that are producing software
Speaker 4: for their customers or for their employees, and things like
Speaker 4: how do you actually use AI within that to make
Speaker 4: better software? How can you make your software have better
Speaker 4: features than it would have had before?
Speaker 3: Well, and when you were thinking about that, like I
Speaker 3: remember you thinking about trying to make it easier to
Speaker 3: put data on web pages, and that made knockout. Yeah. So,
Speaker 3: and then you were thinking about how to make it
Speaker 3: easier to use c sharp on web pages, and that
Speaker 3: made Blazer. So I kind of like it when you're
Speaker 3: thinking about things, Steve, good things happening.
Speaker 2: I remember last year you did a demo at one
Speaker 2: of the Dona comps or something like that. You did
Speaker 2: a demo of some AI in AI chat wired up
Speaker 2: to data. Yeah, it was in Blazer and it was
Speaker 2: just mind blowing. So you've been doing it for a while.
Speaker 4: Yeah, that was our e shop support demo. I'm sure
Speaker 4: we can add a link to that. Yeah. That was
Speaker 4: some exploration around this of what you get when you
Speaker 4: put Blazer and AI and typical application business app scenarios together.
Speaker 4: And that's an exploration of like a customer support scenario
Speaker 4: where people are submitting inquiries and there's some AI that
Speaker 4: automatically classifies them as different types of thing, and then
Speaker 4: the staff who's trying to deal with customer support gets
Speaker 4: like a chat assistant that's able to look through corporate
Speaker 4: or enterprise data to provide suggested answers. Fills it out,
Speaker 4: you know, rates the customer's satisfaction automatically, all that kind
Speaker 4: of state thing, and it just represents a whole own
Speaker 4: of scenarios that we think people would probably actually have.
Speaker 2: Yeah, I'm looking forward to the day when I can
Speaker 2: replace my report criteria selection UI with just a chat box. Yeah,
Speaker 2: and you probably can do that already and I can actually,
Speaker 2: but you know, it's going to take a little bit
Speaker 2: of a paradigm shift for users to want to go
Speaker 2: for that perhaps, But you know, nobody's saying you can't
Speaker 2: offer it as an option.
Speaker 4: Yeah, totally. And you mentioned chat as an interface there.
Speaker 4: I think chat is clearly something that people strongly associate
Speaker 4: with AI, and it's a thing that we didn't really
Speaker 4: have as a form of UI before AI came along,
Speaker 4: and so that's kind of exciting and cool. But I
Speaker 4: also whenever I talk about this, I really try to
Speaker 4: emphasize the fact that chat is not the only way
Speaker 4: to benefit from AI, And personally, in a lot of cases,
Speaker 4: I don't actually like typing into chat boxes like it.
Speaker 4: When I'm using my computer to do something productive, my
Speaker 4: mind is focused on the task and I don't really
Speaker 4: want to be like explaining stuff in English to the computer. Yeah,
Speaker 4: and so I think a lot of the time when
Speaker 4: we think about how we can add AI to our
Speaker 4: applications and produce genuinely more productive apps, it's about using
Speaker 4: AI on the back end just sort of like almost
Speaker 4: like secretly, without involving the user. It's just predicting what
Speaker 4: they want and doing parts of the job for them
Speaker 4: ahead of the time so they don't have to do it.
Speaker 2: It does bring to mind a couple of really good
Speaker 2: text interfaces where you're writing and then things are helping you.
Speaker 2: Obviously get ub copilot and go back to intelligence and
Speaker 2: statement completion and see sharp or even writing queries in
Speaker 2: SQL management studio, you know when you say select star
Speaker 2: from and you get dropped down. You know, you could
Speaker 2: implement that in a chatbot where you could say I
Speaker 2: want to see all the reports of type and then
Speaker 2: you know, transaction type, whatever, whatever type of reports. You know,
Speaker 2: those things will probably come in the in the AI
Speaker 2: front end chat boxes.
Speaker 4: I'm sure they will. Yeah. And another good example of
Speaker 4: that is, of course, as you already mentioned, visual studio Copilot.
Speaker 4: And one thing that I really love about that is
Speaker 4: the fact that I don't have to explain to it
Speaker 4: what I want it to do, Like it's there while
Speaker 4: I'm writing code and producing sensible suggestions for me without
Speaker 4: me stopping to say I need to do X. It's
Speaker 4: just you know, inferring that from what I've already typed
Speaker 4: in code, which is I've.
Speaker 3: Seen this happen in Excel. I don't know if you've
Speaker 3: played with Excel lately if you have that stuff turned on.
Speaker 3: But if if you're doing a pattern of entry into
Speaker 3: a series of a column of cells, it starts pre
Speaker 3: populating it with the next one it thinks you want,
Speaker 3: and it's I mean, the easy one is like one, two, three,
Speaker 3: but you know, first of each month, it's figured that
Speaker 3: one out, Like you're exactly right. It's not doing it
Speaker 3: for you. You're not telling it what to do. It's
Speaker 3: just looking at what you're doing and then shortcutting instead
Speaker 3: of me having to type it out. Now I'm just
Speaker 3: like tab yep, I'll keep that, tah that and so forth.
Speaker 3: Like that's really subtle and clever.
Speaker 2: And it doesn't have a lobotomy like Clippy. But it's
Speaker 2: the you know, tried to it's trying to solve the
Speaker 2: same problem. Really, I mean, it's the whole idea of clippy,
Speaker 2: you know, without a lobotomy.
Speaker 3: Well, when we've had smart populating and forms and things
Speaker 3: like our browsers know our addresses and so if you
Speaker 3: looks like you're starting a type of address, it finds
Speaker 3: the rest of the boxes and fills them all in
Speaker 3: for you. Like that kind of thing, and actually address
Speaker 3: fill in is one of those ones I think people
Speaker 3: have worked really hard on where it's like, hey, when
Speaker 3: you seeing your postcode, okay, well now I know your
Speaker 3: city in state right, Like.
Speaker 2: The country and postcode sort of reverse.
Speaker 3: The thing up. But now I start thinking about forms
Speaker 3: over data, Like I'm really interested in the machine learning
Speaker 3: models that study a user's workflow and start to tailor
Speaker 3: their behavior to that user. Like if you do the
Speaker 3: same thing every day in this app, how do I
Speaker 3: make it quicker for you?
Speaker 4: Yeah, that's an interesting area. People have started speculating like
Speaker 4: about really far off futuristic things which are interesting. I
Speaker 4: don't know what the sort of short term thing is here,
Speaker 4: Like there's already products and demos out there of AI
Speaker 4: systems that generate a UI on demand, so you know,
Speaker 4: while a user is doing some task, there isn't a
Speaker 4: pre defined set of textboxers, a pre defined set of
Speaker 4: wizard steps or whatever. But some AI is being asked
Speaker 4: to make up a UI on the fly based on
Speaker 4: what the user appears to be doing. That's tailored towards
Speaker 4: that task, And I think that's pretty much still a
Speaker 4: sort of proof of concept level right now. I doubt
Speaker 4: that anyone's completely relying on that to ship and app with,
Speaker 4: but it's conceivable that, you know, five years from now,
Speaker 4: the way we interact with computers will be much more
Speaker 4: sort of generated on demand for us rather than pre defined.
Speaker 2: Is that one of a good example of what you
Speaker 2: mean by AI working on the back end without you know,
Speaker 2: you really noticing it all that much, or were you
Speaker 2: thinking of something else.
Speaker 4: I was thinking a much simpler thing. So the dynamically
Speaker 4: make up a UI as the user is working is
Speaker 4: like super sci fi futuristic stuff, which by which I
Speaker 4: mean like it's not going to be several months away.
Speaker 3: But like you know with the pets of AI.
Speaker 4: But no, what I meant was something like really straightforward
Speaker 4: stuff that you can code up in in ten minutes.
Speaker 4: So the kind of like core features that you can
Speaker 4: do with AI, stuff like being able to automatically classify text,
Speaker 4: automatically extracting structured data from fuzzy inputs, whether that's plain
Speaker 4: text or images, ability to summarize, translate, ability to detect
Speaker 4: anomalies in data, the ability to score user sentiment. All
Speaker 4: these kinds of things you can do programmatically on the
Speaker 4: back end of your application and then use that to
Speaker 4: you know, trigger workflows automatically. Like some message comes in
Speaker 4: and it appears to be a complaint, Well you can automatically,
Speaker 4: you know, send a message to the person who deals
Speaker 4: with complaints or something like that. Or you get something
Speaker 4: that you know, you get a large amount of text
Speaker 4: in from something and you can summarize it down to
Speaker 4: one sentence to display as like the heading within a
Speaker 4: table or something like that. You know, there's so many
Speaker 4: ways that you can use AI systems programmatically to make
Speaker 4: your application just feel that bit more intelligent.
Speaker 2: It sounds like pattern matching on steroids.
Speaker 4: Yeah, in in some ways, you.
Speaker 2: Know the things that we loved pattern matching for.
Speaker 4: Well, arguably at the lowest level, that's what language models are.
Speaker 3: Yeah. Yeah, it is all pattern managing matching tokens effectively, but.
Speaker 2: It's not stuff that you necessarily have to do in
Speaker 2: raw code. You know, absolutely the language has a pattern
Speaker 2: matching feature and you're using that.
Speaker 4: Yeah. Yeah, there are tons of application features that people
Speaker 4: could be using quite easily and cheaply, especially in terms
Speaker 4: of the amount of developer effort. Something like semantic search,
Speaker 4: for example, Like the naming makes it sound kind of
Speaker 4: fancy and advanced or something like that, but it's really not.
Speaker 4: You know, you could you can take any search feature
Speaker 4: that you've got today and upgrade it to be semantic search,
Speaker 4: like within an afternoon, and at least at a sort
Speaker 4: of prototype level, and see whether or not that's going
Speaker 4: to benefit your application, so that users don't need to
Speaker 4: type things correctly and they don't need to phrase things
Speaker 4: in a particular way, but it just sort of smartly
Speaker 4: works out what they're trying to search for.
Speaker 3: Well. Semantic search to me seems like one of those
Speaker 3: buzzword phrases of a promise of a better future, right,
Speaker 3: I mean, we've been arguing about semantic search since the
Speaker 3: web was invented, right. Even Tim Berner's lead was like,
Speaker 3: this is what this is all about. It's just a
Speaker 3: question of or we finally got and we finally had
Speaker 3: a set of tools that can do it consistently take
Speaker 3: the semantical information around it and say you make a
Speaker 3: more informed search.
Speaker 4: Well, I personally think that when it comes to just
Speaker 4: using embedding models, which are one of the two main
Speaker 4: types of language models that people use today, to take
Speaker 4: things like document titles or text from documents, convert them
Speaker 4: into embeddings and then be able to search through those
Speaker 4: in a way that matches on meaning rather than exact
Speaker 4: string matches is a very straightforward thing to achieve, Like,
Speaker 4: it's a really well trodden path by now, We've got
Speaker 4: so many cheap ways of doing it that I think
Speaker 4: that most people who have got any kind of application
Speaker 4: and do as any kind of search feature ought to
Speaker 4: be thinking about doing that.
Speaker 2: We think about it this way, like you make a
Speaker 2: document a PDF document of rules that your software must follow, right,
Speaker 2: and then just set the AI on it and say, Okay,
Speaker 2: don't let me break the rules in my software. Okay,
Speaker 2: there's a there's a sci fi for you.
Speaker 4: Yeah, it's it's a scary thing. So, I mean, AI
Speaker 4: has so much promise, right, But at the same time,
Speaker 4: it also kind of violates many of the assumptions that
Speaker 4: we've had about how software should work, like, particularly when
Speaker 4: you talk about rules that can't be violated or anything
Speaker 4: to do with security. You know, as soon as you
Speaker 4: bring AI into it and have a language model making
Speaker 4: decisions about what a user kind of can't do, everything
Speaker 4: becomes so fuzzy. Like you tell the language model a
Speaker 4: certain user should or shouldn't be allowed to do something,
Speaker 4: but if that user says that they want to do
Speaker 4: it persuasively enough, then it might just let them do
Speaker 4: it anyway.
Speaker 3: Persuading software, I said in air quotes.
Speaker 2: But what I would do in that situation is I
Speaker 2: would want a tool that says, Okay, here's the document
Speaker 2: of rules and business rules. Right, not necessarily you know,
Speaker 2: thou shalt not or whatever, but and then say, and
Speaker 2: here's my code and here's my rules. Now generate some
Speaker 2: code from me that I can where I can plug
Speaker 2: the holes. Yeah, okay, you know, and then I can
Speaker 2: look at I can do that once, and then I
Speaker 2: can look at that code those things and see if
Speaker 2: they if that's a good idea to implement them. But
Speaker 2: you know, that's how I want to use AI. I
Speaker 2: wanted to either generate some code or give me some
Speaker 2: suggestions and they'll let me write the final you know,
Speaker 2: do the final cut and paste or whatever and testing.
Speaker 4: Yeah, I think that's reasonable. So that's using GAI as
Speaker 4: a coding assistant, which is definitely a very very valuable
Speaker 4: part of the whole thing. And a lot of people
Speaker 4: are doing that and that's great. There are limitations to that,
Speaker 4: you know, one of them is ultimately it might still
Speaker 4: get it wrong and you may or may not actually
Speaker 4: spark the fact that it's got it wrong. Like, there
Speaker 4: could still be bugs, especially subtle security bugs. It's not magic.
Speaker 4: And secondly, if you're constrained to only using GAI at
Speaker 4: development time and not at run time, then that constrains
Speaker 4: the sorts of features that you can ship. So I
Speaker 4: don't think it's like the ultimate or only solution, but
Speaker 4: it's definitely a valuable and valid way of thinking about
Speaker 4: things in a lot of cases.
Speaker 2: Right, And I you know, just as an example, what
Speaker 2: I talked about is just an evolution of what we're
Speaker 2: already doing now with you know, Copilot and all of
Speaker 2: that stuff. Yeah, so I can see those things happening,
Speaker 2: you know, more discrete tools for helping us shore up
Speaker 2: our code. Static code analysis another great way to use AI.
Speaker 2: But yeah, I would, I would be skeptical to Here's
Speaker 2: here's something that Jeff Fritz and I were thinking about,
Speaker 2: and it's not necessarily AI, but it's calling translation services
Speaker 2: on the fly so that somebody you don't have to
Speaker 2: actually do different language versions of your application. You could
Speaker 2: just you know, you're in Japan, you bring up everything
Speaker 2: in Japanese and it goes and does a translation. But
Speaker 2: now you're relying on that translation to be accurate in
Speaker 2: real time. Not only that, but you're racking up all
Speaker 2: the API calls that you're doing. So another idea would
Speaker 2: be to just take a tool that would generate all
Speaker 2: the text and all the resources in every language and
Speaker 2: then boom, now you've got some Now you can actually
Speaker 2: test it.
Speaker 4: And I'm sure and a lot of people are doing
Speaker 4: that absolutely.
Speaker 3: Yeah. Yeah. The language tokenisation strategy that llm's brought to
Speaker 3: the table made translation.
Speaker 2: A lot easier, yeah, and more accurate.
Speaker 3: And it does seem to be more accurate as well.
Speaker 4: Yeah. Well, modern large language models entirely come out of
Speaker 4: machine translation. That's where this whole thing started, you know,
Speaker 4: building mL models that could translate between human languages, and
Speaker 4: the way that that was very successful through transformers became
Speaker 4: you know what we have today.
Speaker 3: Sort of the key ingredient to what began the path
Speaker 3: towards GPT was it's the translation problem first, and it's
Speaker 3: just yeah, it's one of its superpowers. And what I
Speaker 3: like about it is, for the most part, we haven't noticed.
Speaker 3: It's just that every all translations seem to be better
Speaker 3: and cheaper and more prevalent, just showing up in more places.
Speaker 1: Yeah.
Speaker 3: Absolute.
Speaker 4: In fact, it was just today that I don't know
Speaker 4: if you saw VLC the media player. The oper was
Speaker 4: media Player as a shipped to feature this morning, which
Speaker 4: adds automatic subtitles to what you're watching, is controversial because
Speaker 4: people are not sure if the quality is good enough.
Speaker 4: But yeah, you're right, it is showing up all over
Speaker 4: the place.
Speaker 2: So how likely are you to use a chat bot
Speaker 2: on a website that pretends to be a representative of
Speaker 2: the company. Oh?
Speaker 4: Usually, I mean I'm usually my general feeling when encountering
Speaker 4: something like that is oh no, what have they done?
Speaker 4: But I did have one example of a time quite
Speaker 4: recently where I had to use a chat butt and
Speaker 4: it actually worked, and I was amazed, Wow, I had
Speaker 4: made a booking with like Expedia or something. I think
Speaker 4: it was Expedia, and I couldn't find my booking number anywhere.
Speaker 4: Like I went to every single email, there was no
Speaker 4: booking number in anything I could find. I tried to
Speaker 4: contact customer services. It was AI. I thought, oh, this
Speaker 4: is stupid, this is never going to work. And I
Speaker 4: asked it the question and it said, like what's your
Speaker 4: name and where you're going and stuff, and then it
Speaker 4: just immediately came back and said, this is your booking number,
Speaker 4: and it was awesome and it was correct. Yeah of course,
Speaker 4: yeah wow.
Speaker 3: And from there, like you then searched on that or
Speaker 3: you know, opened something up like validated it elsewhere.
Speaker 4: Yeah, well it took it gave me a link to
Speaker 4: something that I hadn't been able to find previously.
Speaker 2: Do you do you think that chat bots should be
Speaker 2: required to tell you that they are a bot and
Speaker 2: you're not actually speaking to a real person.
Speaker 4: I don't know. I mean within context, it can be
Speaker 4: really obvious. Like if if it's literally a chat you
Speaker 4: I and there's a little icon of a robot and
Speaker 4: it says like assistant bot is his name, then you're
Speaker 4: not going to think it's a person. Yeah, it would
Speaker 4: be a terrible person.
Speaker 2: I've asked bots before and they have said, no, I'm
Speaker 2: not a bot, but I knew it was.
Speaker 3: And you asked him to respond to you and iamic pentameter.
Speaker 4: Yeah, and then you do the the voidkamp test or something.
Speaker 2: Is that Okay, well I'm interested in that, but we
Speaker 2: probably shouldn't go down that rabbit.
Speaker 3: Yeah, definitely trouble. I am thinking in terms of how
Speaker 3: we use generative AI models to understand the user's interaction
Speaker 3: with the app. I've been doing some work with some
Speaker 3: neuroscience companies and they do a lot of additional instrumentation
Speaker 3: on people. And one of the things they've said is like,
Speaker 3: facial expressions are not a good way to measure someone's
Speaker 3: response to things, and they're very cultural, they're very personal
Speaker 3: individuals and so forth. But if you take that camera
Speaker 3: and zoom in on a point of skin close enough,
Speaker 3: you can actually see heart rate, and heart rate is neutral.
Speaker 3: Like the fact that now you can measure that person's
Speaker 3: heart rate relative to one step to another inside of
Speaker 3: a piece of software and say is a heart rate
Speaker 3: increasing or decreasing and that is a better indicator of
Speaker 3: frustration or But.
Speaker 2: You have to have a baseline though you have to
Speaker 2: know it when they're not excited.
Speaker 3: Yeah, yeah, I think it's very personal, right that you
Speaker 3: could put someone through some paces and their cases. They
Speaker 3: do initial testing for a kind of surveying, and so
Speaker 3: they sort of look at what your measurements look like
Speaker 3: on that and then go into more important ones and
Speaker 3: see right through reaction.
Speaker 4: Yeah, well that's interesting. It possibly gets us into some
Speaker 4: ethical and maybe even legal issues. Like so, you know
Speaker 4: a lot of recruitment takes place through AI these days,
Speaker 4: and people are often when applying for jobs as to
Speaker 4: do video interviews that kind of like an AI video
Speaker 4: AI assessed video interview. You know, you could it would
Speaker 4: be really straightforward then to be using a technique like
Speaker 4: that to try and assess do we think this person's
Speaker 4: really being honest about what they're saying on that? But
Speaker 4: if you're going to make decisions about someone on that basis,
Speaker 4: then you know, as a software developer, engineer and manager
Speaker 4: thinking about implement feature like that, you've got to think
Speaker 4: very carefully about how reliable you can make this and
Speaker 4: what the ethics of doing that really are.
Speaker 2: Because humans have trigger words, right that may not have
Speaker 2: anything to do with what you're talking about But you
Speaker 2: use a word or something and some of you know,
Speaker 2: the heart rate will go up and they'll start sweating.
Speaker 2: But has nothing to do with the context.
Speaker 3: Well, we've all interviewed developers. It turns out that doing
Speaker 3: being interviewed as a developer increases your heart rate. Yeah,
Speaker 3: they're not comfortable, the vast majority of the market. It's
Speaker 3: almost strange to find someone who is comfortable.
Speaker 4: Yeah, that's even more suspicious.
Speaker 3: Yeah, what's wrong with that, psychopath? Why are you happy
Speaker 3: being interviewed? There's something wrong here.
Speaker 2: There's no laughing in development, laughing in interviews.
Speaker 3: Nothing's fun. This is not fun.
Speaker 2: We'll be right back with more with Steve Sanderson after this.
Speaker 2: Did you know that you can work with AWS directly
Speaker 2: from your ide AWS provides toolkits for visual studio, visual studio, code,
Speaker 2: and jet brains rider Learn more at AWS dot Amazon
Speaker 2: dot com, slash net slash tools. And we're back. It's
Speaker 2: dot net Rocks. I'm Carl Franklin, that's Richard Campbell hey,
Speaker 2: and that is mister Blazer himself, Steve Sanderson. We're talking
Speaker 2: about AI, his latest passion. We kind of stopped and uh,
Speaker 2: let's open up the floor for a new topic. What's
Speaker 2: what's something else that you're thinking about AI wise.
Speaker 4: Steve Well, I guess the main area is what do
Speaker 4: we actually do practically in order to give better tools
Speaker 4: and capabilities to dot net developers. You know, I'm on
Speaker 4: the dot net team. That's that's what my jobs. And
Speaker 4: so the main thing that we're looking at doing at
Speaker 4: the moment is producing a new set of standard abstractions
Speaker 4: for AI features in dot Net. This is a pattern
Speaker 4: that you know we've we've used in all sorts of
Speaker 4: other things. So you know, we've got packages like Microsoft
Speaker 4: Extensions Dependency Injection. You'll know we've got Microsoft Extensions Logging
Speaker 4: and all sorts of other Microsoft Extensions things that contain
Speaker 4: standard representations of common features. So we're following that same pattern.
Speaker 4: We're going to have already shipped a preview of a
Speaker 4: package called Microsoft Extensions AI, and that contains some new
Speaker 4: standard representations for things like language models which we call
Speaker 4: i CHET client and embedding models or I Embedding Generator
Speaker 4: as we call it, and all kinds of other standard
Speaker 4: types and helpers that you can use when you want
Speaker 4: to add some AI features into your application. And then
Speaker 4: there are implementations for all of these with many different
Speaker 4: implementations provided. So we've got the obvious ones like open
Speaker 4: AI as your open AI. We've got ones for Olama,
Speaker 4: there's ones for Gemini, ones for Anthropic. You know, all
Speaker 4: kinds of different implementations.
Speaker 2: So both cloudy and local implementations of LLMS.
Speaker 4: YEP absolutely and then all from us as well. The
Speaker 4: intention is that this is a shared community effort, so
Speaker 4: we've been working with external projects like the Alama Sharp
Speaker 4: project and others to make sure that they've all got
Speaker 4: implementations of these same interfaces. And the payoff for all
Speaker 4: this for dot net developers is that you have one
Speaker 4: common program model that you can use whichever AI back
Speaker 4: end you want to work with. And it's hopefully quite
Speaker 4: a well thought out one because you know, we've had
Speaker 4: people dedicated to thinking about this for months and it's
Speaker 4: very flexible and you can plug in your own behaviors
Speaker 4: at different stages in the pipeline and combine things and
Speaker 4: you know, do all the stuff that you will want
Speaker 4: to do, and yeah, we want to be able to
Speaker 4: build an ecosystem around that.
Speaker 2: Are all these providers committed to adhering to the interfaces
Speaker 2: that you have or is it up to you doing
Speaker 2: the implementation to adjust if their APIs change.
Speaker 4: So yeah, So let's take an example. So we'll say
Speaker 4: the Alarma on for example. If people don't know, Olama
Speaker 4: is some software that you can run locally on your
Speaker 4: developer machine as a way of using things like language
Speaker 4: models locally. You probably wouldn't use it in production, but
Speaker 4: it's great for development, Okay. So there are there are
Speaker 4: a bunch of different client packages for that for dot net.
Speaker 4: So Alarma sharp is the most well known one, and
Speaker 4: you can use it's APIs directly, just like it's straight
Speaker 4: concrete APIs a newer Alarma client or whatever it is,
Speaker 4: and use it directly. But then that code's not interoperable
Speaker 4: with anything else. So what you can do is use
Speaker 4: the iChat client implementation that it provides. So you would
Speaker 4: say something like Newolarma client dot dot, and then at
Speaker 4: the end you put dot as chat client and that
Speaker 4: gives you back and in an object that implements this
Speaker 4: iChat client interface. And now you can use that in
Speaker 4: the same way as every other AI service.
Speaker 2: So it's really Olama's responsibility to implement Yeah, iChat client,
Speaker 2: it is totally, which is the dot Net interface.
Speaker 4: Yeah, that's right, in the same way that Sarah log
Speaker 4: implements IE logging. And you know, that's what the whole
Speaker 4: point of having these standard interfaces is that everyone can
Speaker 4: make them work in whatever way makes sense to them.
Speaker 2: Yeah, and I'm wondering, like, how would that evolve.
Speaker 4: Well, yeah, so it evolves in that the industry itself
Speaker 4: is evolving and we're getting new types of AI services
Speaker 4: coming out. A good example of that at the moment
Speaker 4: are the real time APIs. So at the moment, most
Speaker 4: of our interactions with language models are a sort of
Speaker 4: request response pattern where we send a bunch of text
Speaker 4: to them and they come back with a bunch of text.
Speaker 4: But there's a different paradigm that's emerging called real time
Speaker 4: at the moment, where it's a bidirectional communication channel a
Speaker 4: bit like a web socket or you know, just straight
Speaker 4: TCP socket connection where you can just sort of fire
Speaker 4: a load of bites across the wire to the AI
Speaker 4: system and it can send bites back to you at
Speaker 4: any time in any order, like overlapping or whatever, and
Speaker 4: those bites could represent text, or they could be audio
Speaker 4: data or images or whatever in either direction. So that's
Speaker 4: the real time API, and our standard abstraction I chat
Speaker 4: client doesn't represent that today. It represents the request responds
Speaker 4: text based pattern. So, as you alluded to, we have
Speaker 4: to evolve as time goes on. We will add further
Speaker 4: abstractions to represent other AI patterns when they become common
Speaker 4: across multiple providers.
Speaker 2: And these providers keep contexts too, right well, they can
Speaker 2: do so that they can.
Speaker 4: The classic way of interacting with the language model is stateless.
Speaker 4: So if you're having a conversation in a chatbot where
Speaker 4: you say A and it says B, and U say
Speaker 4: C and it says D. When you sen want to
Speaker 4: send the message E, you don't just send E to it.
Speaker 4: You also send abcd like that because it hasn't remembered
Speaker 4: any of the conversation, so you literally have to repeat
Speaker 4: the entire conversation. Now, the app developer doesn't think about
Speaker 4: that now, because that's like inside the libraries. But that's
Speaker 4: what's happening on the wire.
Speaker 2: Okay, So we've been spoiled by chat GPT. In other words,
Speaker 2: it's it's doing that context stuff under the hood and
Speaker 2: we don't we don't have to worry about it.
Speaker 4: Yeah, the WebUI does that and to be honest, they
Speaker 4: probably do some service side caching of the conversations as well,
Speaker 4: but that's you know, that would be specific to them.
Speaker 3: Yeah, okay, interesting I've been I've got an open AI
Speaker 3: interface into my Home Assistant implementation, and essentially what it
Speaker 3: does is prefixes whatever my request is with the model
Speaker 3: of the house as part of the prompt. So it's
Speaker 3: essentially saying, here's what's in the house, now, what would
Speaker 3: you do with this sentence? And then it comes back
Speaker 3: with us, you know, so I can say things like
Speaker 3: turn on all the outdoor lights, turn off the lights
Speaker 3: in the garage, and turn off the lights in the garage,
Speaker 3: and it will change those statements. It really translates that
Speaker 3: into it's this switch that's which they know does all
Speaker 3: the things. Yeah, but it is literally manufacturing the context
Speaker 3: each time you make a request.
Speaker 4: Yeah, that is right.
Speaker 3: Yeah.
Speaker 2: When's Alexa going to catch up to this?
Speaker 1: Hmmm?
Speaker 3: Yeah. I don't envy those folks. The yellms have sort
Speaker 3: of caught them with their pants down, both the Google
Speaker 3: Home folks and they and the Amazon folks. They've got
Speaker 3: you respond right.
Speaker 2: But they didn't They wanted to kill the product, didn't They.
Speaker 3: Well, the product was losing money, losing lots of money,
Speaker 3: like the you know, the purpose behind those the Amazon
Speaker 3: device was to sell stuff on Amazon Sales tool, except
Speaker 3: that nobody did that right because it correctly became a
Speaker 3: joke about walking into the room and ordering you know,
Speaker 3: a ton of soap on someone, right like or having
Speaker 3: your children order stuff because they saw you do it.
Speaker 3: So nobody did that part. And they sold all that
Speaker 3: gear for cost. So it was a few years ago
Speaker 3: they said, hey, we're cutting these teams way back, like
Speaker 3: we spent billions on them.
Speaker 2: Has anybody heard about anything that they're working on in
Speaker 2: the back end?
Speaker 3: They clearly are. Yeah, I mean that they haven't.
Speaker 2: They have to be.
Speaker 3: They have to be. The same time, they had just
Speaker 3: cut their teams and within months of Amazon saying that
Speaker 3: Google did the same thing for their devices as well.
Speaker 2: Well. That that brings me to the next question, Steve,
Speaker 2: do you have an iPhone? I do, yep. And what
Speaker 2: do you think of Apple Intelligence?
Speaker 4: Oh, I don't have one that's that new, you say, I.
Speaker 2: Do, and I don't think it's very intelligent. I would
Speaker 2: thought I was going to get an upgrade to sirikay
Speaker 2: that hasn't happened. And I have, you know, my Apple
Speaker 2: car play, so anytime I ask it something that's Siri ye,
Speaker 2: and I'll ask it stuff and it's just as dumb
Speaker 2: as it was before. Yeah, so I don't see Apple Intelligence.
Speaker 4: I mean, I'd be happy with even if the basic
Speaker 4: SERI worked. Like I tell my phone to like set
Speaker 4: a reminder or something and it just gives me a
Speaker 4: spinner and that's it.
Speaker 2: Wow.
Speaker 3: So yeah, this is very unusual of Apple. But the
Speaker 3: best guess that the Apple you know, Digerati have said
Speaker 3: is that Apple was afraid last year if they didn't
Speaker 3: say something about AI at WWDC because they only do
Speaker 3: one show here, if they waited till this year would
Speaker 3: be too late, so they basically pre aound something like normally,
Speaker 3: Apple already has all this stuff worked out, talks about
Speaker 3: it in the show and its releases on schedule. But
Speaker 3: that is not what happened with Apple Intelligence. They came
Speaker 3: up with a term, they pitched it at the show,
Speaker 3: and then they immediately pushed it back.
Speaker 2: Yeah, No, that was weird.
Speaker 4: I don't even know if it's shipped globally. Yeah, I
Speaker 4: don't know if it's available in the UK. I haven't
Speaker 4: heard anyone talk about it.
Speaker 3: Yeah, it's it is. I think you're seeing the closest
Speaker 3: thing to Apple being scared that they're missing the boat
Speaker 3: on this thing and they're behaving oddly because we would
Speaker 3: expect them. And again, I don't use Apple products, but
Speaker 3: I've lived alongside them long enough to know if Apple
Speaker 3: says they're going to do something, they generally just do
Speaker 3: it and have a good plan. And that's not happening here. Yeah,
Speaker 3: it's an odd time, but I do think we're all
Speaker 3: feeling around for the right thing to do in this space.
Speaker 3: Like I'm excited that you guys are building tools because
Speaker 3: that gives me a standard way to interact with it
Speaker 3: in my apps. No, like for me as a dot
Speaker 3: net developer. Thanks like the extensions all I understand Right
Speaker 3: when I need this, I go, I go to new Get,
Speaker 3: I bring it in in and off I go. So
Speaker 3: it's a way to sort of create a common approach
Speaker 3: to integrating stuff into yourself. Yeah, absolutely, So. Just I
Speaker 3: grab the blog post that I'll put in the show
Speaker 3: notes because it does give you sort of a walk
Speaker 3: through of this. And it's just that you talked about
Speaker 3: open AI. You talked about, was it.
Speaker 2: Lama O Lama O Lama olama, And.
Speaker 3: Then there's the inference engine.
Speaker 4: The inference I'm not sure.
Speaker 3: As you as your AI inference Yeah.
Speaker 4: Oh right, yeah, sorry, as your AI inference. Yeah, that's right.
Speaker 4: That's that's almost like the cloud version of OLAMA. That's
Speaker 4: a very simple mental model for it. It's a way
Speaker 4: of running any kind of model that you want to
Speaker 4: provide from us or once from a standard catalog in
Speaker 4: a hosted service, as opposed to say, like as your
Speaker 4: open air, which is literally just open AI models and
Speaker 4: doesn't include other things like the LAMA models.
Speaker 3: Because at the same time, as you AI has opened
Speaker 3: up to many more models, and just open AI you
Speaker 3: have all theseries.
Speaker 4: That's correct, I.
Speaker 3: Mentioned to the listener at the beginning of the show.
Speaker 4: Yeah, yeah, I think in a lot of cases that's
Speaker 4: going to be a much easier way of running a
Speaker 4: wider range of models in production than you know, setting
Speaker 4: up your own like containers and serving model output from that.
Speaker 4: That's quite hard business to do because you know, these
Speaker 4: things only work well if they're running on the right
Speaker 4: kind of GPU hardware, and that can be expensive, and
Speaker 4: you know, you really don't want to be managing all
Speaker 4: of that stuff.
Speaker 3: If you can avoid that stuff is plumbing, right. You
Speaker 3: just want to be able to send your your thing
Speaker 3: out over an API and get a useful response back. Yeah, done,
Speaker 3: it's just another API. No magic. Please just let my API,
Speaker 3: that my API call work exactly. You're creating a cloud dependency.
Speaker 3: But that's not that weird. Like there seems to be
Speaker 3: a big push to run more of these models on prem.
Speaker 3: While we're recording this, I think C is still going
Speaker 3: on the Consumer Electronic Show, and Nvidia made this announcement
Speaker 3: about this three thousand dollars supercomputer running what they called
Speaker 3: the Grace Blackwell chip set. But they're saying, for three
Speaker 3: thousand bucks, you will run a two hundred billion parameter
Speaker 3: model on prem.
Speaker 4: Oh it's funny, isn't it the way this competition works.
Speaker 4: So yeah, the current status quo is that you use
Speaker 4: a combination of Nvideo provided hardware and then the software
Speaker 4: from open A or another tech giant, Microsoft or Google.
Speaker 4: And so we've got Nvidea trying to commoditize the tech
Speaker 4: the other tech giants the model providers by saying, oh no,
Speaker 4: you just need our hardware. You don't need any cloud.
Speaker 4: And then you've got the tech giants trying to commoditize
Speaker 4: n video by saying, oh, we've got our own custom silicon,
Speaker 4: you don't need Nvidia. Yeah.
Speaker 3: Fun well, happily buying each other's products too.
Speaker 4: Yeah, see who's going to win.
Speaker 3: This is co oppetition, But it did what impressed me, Like,
Speaker 3: GPT three is one hundred and seventy five billion parameters.
Speaker 3: So in a matter of four years, we've gone from
Speaker 3: a cloud problem that Mark Rosinovich talked about building the
Speaker 3: fifth largest supercomputer in the world to build that model
Speaker 3: back in the day, to something for three grand I
Speaker 3: could sit on my desk. In theory it was CES,
Speaker 3: which is basically a concept show.
Speaker 2: Right, and the stock continues to get by them. Yeah.
Speaker 4: Yeah, it's amazing enough us that grows. In fact, just
Speaker 4: yesterday I was experimenting with what's the biggest language model
Speaker 4: that I can train on my laptop in like one minute?
Speaker 4: I thought it was going to be nothing like I thought.
Speaker 4: You know, it takes months of GPU time to make
Speaker 4: a sensible language model, Like in one minute, it's not
Speaker 4: even going to produce words that you can read. Sure,
Speaker 4: it turns out you can produce something sort of if
Speaker 4: you take a GPT that sorry, GPT two, an implementation
Speaker 4: of that on a single GPU on my laptop, I
Speaker 4: can get something that produces pretty intelligible sentences within one
Speaker 4: minute of training.
Speaker 3: Wo.
Speaker 4: So yeah, it's crazy how how quickly we've come on
Speaker 4: from you know, it being a you know, industry defining
Speaker 4: problem to produce anything like the English language to being
Speaker 4: really quite straightforward.
Speaker 3: You know, they're used to be an XKCD graphic about
Speaker 3: identifying birds in a picture, being needing a team in
Speaker 3: years of work, and now we expect our phone when
Speaker 3: we take a photo, like I've got the new Android phone,
Speaker 3: the Pixel nine, and one of its features in Gemini
Speaker 3: is when you take a photo, it writes a caption
Speaker 3: of what's in the book, and that's included, Like just prettful?
Speaker 4: Is that on device that.
Speaker 3: The apparently it's on device. I suspect there's a round
Speaker 3: trip to the cloud involved. Okay, pretty sure?
Speaker 2: What I what I want to do when I keep
Speaker 2: threatening my wife, I'm going to do this is to
Speaker 2: take the ten thousand photos that have accumulated since I
Speaker 2: started saving them and upload them to a cloud service
Speaker 2: and have it identify what's in the photos, and then
Speaker 2: create a database that I can search so that I
Speaker 2: can say, you know, a picture of Richard Campbell with
Speaker 2: a glass of whiskey, and nine thousand of those ten
Speaker 2: thousand photos come up and.
Speaker 3: List Yeah, it's just in state from me.
Speaker 2: Yeah. I think that's another little science fiction any thing too.
Speaker 2: But I mean you can sort of do that now.
Speaker 4: But oh you can totally do that now.
Speaker 2: Yeah, maybe not.
Speaker 4: You could even just have it generate those pictures even
Speaker 4: if they didn't exist.
Speaker 2: Well, there you go.
Speaker 3: There is that. Yeah, you don't have enough pictures me
Speaker 3: holding a glass of whiskey. You can make them.
Speaker 2: By the way, I still haven't been able to send
Speaker 2: you a Christmas present because your mail system is borked. Richard.
Speaker 3: Well, we had a six week strike, yeah, and it
Speaker 3: kind of made a mess of absolutely Ever.
Speaker 2: Is it back in business now or yeah.
Speaker 3: The strike has been stopped till the spring, so a
Speaker 3: window now, Okay, that's right done. They never resolved anything.
Speaker 3: They just kicked it down the road to this.
Speaker 2: Steve, do you have your hands in Blazer much these days?
Speaker 3: Yeah?
Speaker 4: So definitely not as much as before, because you know,
Speaker 4: I've my focus is broadened and spread out. But yes,
Speaker 4: I'm still very involved in the Blazer team. You know,
Speaker 4: I've probably liked ten Blazer meetings a week and yeah,
Speaker 4: so that we're working towards clarifying a dot net ten plan.
Speaker 4: At the moment for Blazer, we've got a whole bunch
Speaker 4: of meetings going on around that.
Speaker 3: It's crazy to think about. Dot net ten just gives
Speaker 3: me chills. Man. Yeah, I guess it's only a couple
Speaker 3: months ago. You ship dot net nine, So I guess
Speaker 3: that's only fair. There's going to be another one.
Speaker 4: Yeah, I know what you mean. It's a bit like
Speaker 4: browser versions, like you know, Chrome one hundred and fifty
Speaker 4: five or whatever by now. Yeah, time goes on. So yeah,
Speaker 4: the Blazer team is We're actually all gathering in person
Speaker 4: next week, which is going to be fun to see everyone,
Speaker 4: and we will try and dig in to a lot
Speaker 4: of this planning and working out what we want. I
Speaker 4: think one of the big themes that we'll focus on
Speaker 4: in dot net ten is the most core scenario of
Speaker 4: Blazer usage, which is Blazer server and what we can
Speaker 4: do to make that as bulletproof as possible. Like one
Speaker 4: of the key things that people have struggled with Blazer
Speaker 4: server from the beginning is the fact that you have
Speaker 4: to have this constant connection. And yes, we've always had
Speaker 4: a sort of reconnection mechanism, but it's always been a
Speaker 4: little bit you know, suboptimal and like does it really work,
Speaker 4: And even when it works, it's a little bit like
Speaker 4: jarring to the end user and can result in them
Speaker 4: losing some state. So what can we do to make
Speaker 4: it as practical as possible for a Blazer app developer
Speaker 4: to have a really bulletproof experience for the user so
Speaker 4: that whether or not the connection is lost, the user
Speaker 4: does not lose state.
Speaker 2: Well, you certainly laid the foundation really well in dot
Speaker 2: at nine. I mean even right out of the box,
Speaker 2: the experience is, yeah, your code kind of freezes for
Speaker 2: a bit, Yeah, but it usually comes back.
Speaker 4: Yeah, Yeah, that's right. We did improve it a lot
Speaker 4: in nine. In prior to nine, it used to be
Speaker 4: a pretty awful user experience, if I'm honest, where it
Speaker 4: would just sort of make it the user's problem to
Speaker 4: work out whether to reload. You know, it wasn't great.
Speaker 4: And in nine it's a lot more prone to like
Speaker 4: figure out the problem and solve it. Itself, but that's
Speaker 4: still not bulletproof. You can still lose data because it's
Speaker 4: stored in the server memory, and if the server's gone,
Speaker 4: well it's gone, Like what else do you expect to happen?
Speaker 4: So we want to create mechanisms by which you can
Speaker 4: persist that state in a way that's independent of maintaining
Speaker 4: the connection to the server.
Speaker 2: At nine, there are also laser improvements for auto mode.
Speaker 2: In general, it didn't really work all that well for
Speaker 2: me before in dot Net eight and before, and in
Speaker 2: nine it seems to really work well.
Speaker 4: Yeah, so when an eight first shift, we unfortunately had
Speaker 4: quite a bad bug with the automotive that basically meant
Speaker 4: it was never going to work, which was terrible, and
Speaker 4: we patched it almost straight away, but are still a
Speaker 4: lot of people got this very bad first impression of that,
Speaker 4: and even then it was you know, still had constraints
Speaker 4: and limitations, and so yeah, we really wanted to improve
Speaker 4: that a lot in nine, make sure that not only
Speaker 4: did it really work this time, but it actually works
Speaker 4: well in practical situations.
Speaker 2: And that seems to be with along with some state
Speaker 2: management and you know, shifting state from server to client
Speaker 2: when we go to web assembly. That kind of stuff
Speaker 2: seems to be a really good pattern. I think now
Speaker 2: that I would actually recommend it, you know, because you
Speaker 2: get the startup snappiness of server, but then you get
Speaker 2: the you know, the independence of web assembly.
Speaker 4: I absolutely agree with you that if your application is
Speaker 4: built in the right way and the developer knows what
Speaker 4: they're doing, then you can make it work really great.
Speaker 4: And that's that's excellent. But we kind of want to
Speaker 4: raise the bar from that from Dottnut time. We want
Speaker 4: to make it so that you don't have to be
Speaker 4: someone who writes your code in a sort of elaborate
Speaker 4: and carefully thought out manner. You don't have to be
Speaker 4: an expert, but rather just the natural way of building
Speaker 4: your code in a simple, obvious manner. We'll just have
Speaker 4: all those benefits just innately. That's really how we want
Speaker 4: to raise the bar and improve things.
Speaker 2: Right, so we can still use server, because using server
Speaker 2: is just by itself a huge benefit because you don't
Speaker 2: have to have an API layer and you don't have
Speaker 2: to extra security precautions and things like that.
Speaker 4: Yeah, it's very very straightforwards. I really enjoy whenever I
Speaker 4: get to write a bit of playser server code because
Speaker 4: it just bypasses so many of the boring boilerplate tasks
Speaker 4: that you have in web development and just means you
Speaker 4: just get something running very quickly and it just works.
Speaker 2: Well, I'm excited. Let me know when I'll have FILS.
Speaker 3: A long way from those experiments you showed in twenty sixteen. Friend,
Speaker 3: my goodness.
Speaker 4: Oh yeah, yeah, yes, indeed.
Speaker 3: Yeah.
Speaker 2: Is that the best talk you ever gave?
Speaker 4: Or well, it's definitely fun. It was really cool.
Speaker 3: Actually to do that, you hurt David Fowler's head and
Speaker 3: that's not easy to do. Yeah, yeah, that's true.
Speaker 2: Yeah, very cool.
Speaker 3: It was a great time. It's good. It was cool
Speaker 3: to be in the room. Definitely, moment, definitely.
Speaker 2: Well, I'm looking forward to it, and I guess you
Speaker 2: know the repos and open books so you can just
Speaker 2: go check the progress and are the early bits out
Speaker 2: there yet for.
Speaker 4: At ten, No, not at all, because we haven't even
Speaker 4: decided what's going to go into it. Sometimes we start
Speaker 4: our planning a little bit earlier, but we were intentional
Speaker 4: as a team to wait a little bit longer. I'd
Speaker 4: let things settle a little bit more, be more thoughtful
Speaker 4: about collecting feedback and about like creating clear consensus about
Speaker 4: what would be wanted in this particular release. So yeah,
Speaker 4: that's why it's it's brought us into January before we've
Speaker 4: got a nailed down plan.
Speaker 2: Excellent, awesome, Well we're coming to the end here. Is
Speaker 2: there anything else you want to talk about before we
Speaker 2: wrap it up?
Speaker 4: Not specifically for me, all right?
Speaker 2: Best place in your neighborhood for fish and chips?
Speaker 4: Fish and chips? Wow, I don't know. Probably got a
Speaker 4: couple of local chippies, but yeah, it's not really my thing,
Speaker 4: not really.
Speaker 2: Okay.
Speaker 3: You in the South of England is that fish and
Speaker 3: chip country?
Speaker 1: It is?
Speaker 3: It is you eat?
Speaker 2: You must be going for a chicken teaka masala then
Speaker 2: or something.
Speaker 3: Better it's more for you, yeah, for sure.
Speaker 2: And where's your where's your favorite place in Bristol?
Speaker 4: Oh, in Bristol, We've got a really good one called
Speaker 4: Urban tand or just a good tip for the for
Speaker 4: the locals. Yeah, that's that's sort of classic in my area.
Speaker 2: Well, Steve, it's always great to talk to you, of course,
Speaker 2: and we'll be speaking to you more, you know, when
Speaker 2: things around dot ten get awesome. Ye okay, thanks again
Speaker 2: and we'll talk to you next time on dot net rocks.
Speaker 2: Dot net Rocks is brought to you by Franklin's Net
Speaker 2: and produced by Pop Studios, a full service audio, video
Speaker 2: and post production facility located physically in New London, Connecticut,
Speaker 2: and of course in the cloud online at pwop dot com.
Speaker 5: Visit our website at d O T N E t
Speaker 5: R O c k S dot com for RSS feeds, downloads,
Speaker 5: mobile apps, comments, and access to the full archives going
Speaker 5: back to show number one, recorded in September two.
Speaker 2: Thousand and two. And make sure you check out our sponsors.
Speaker 2: They keep us in business. Now, go write some code.
Speaker 2: See you next time.
Speaker 5: You got javans
Speaker 2: That means home, then my Texas in line d