
Hosted by Herding Code · EN

Jon talks to David Ortinau about .NET MAUI. document.createElement('audio'); https://herdingcode.com/wp-content/uploads/HerdingCode-0246-David-Ortinau-MAUI.mp3 Download / Listen: Herding Code 246: David Ortinau on .NET MAI Link: Introducing .NET MAUI – One Codebase, Many Platforms (.NET blog) Transcript: Jon: Hello, and welcome to Herding Code. This episode is being recorded May 16th, 2022. Today I’m talking to David Ortinau now about .NET MAUI. Welcome David. David: Hey, good to see you. Jon: Okay, so let’s start with the basics. What the heck is .NET MAUI? I, I mean, I know there’s kind of Xamarin thing out there forms and now there’s .NET MAUI. David: So .NET MAUI, it stands for multi-platform app UI. And it is really the evolution of Xamarin. So Xamarin is it started, you know, like 10, 12 years ago, Mono framework, Mono Touch, Mono Droid it was essentially saying, Hey, let’s take what Apple and Google are doing these mobile platforms that are super cool, and let’s bring it to .NET developers. And it was an open source thing, you know, at least as far as the runtime and things like that go but it was kind of out there in the community. And then what, six years ago, Microsoft acquired it. and then five years ago, I joined Microsoft to be the program manager for Xamarin forms, specifically, the that, you know, we favor XAML, but you can totally just use C# or F# actually to write your mobile applications, but it was a very mobile focus thing. Right? So, we have been doing in the .NET space over years is, unifying, taking all these things that were disparate, they all had different routes in terms of where they started, but .NET You know, we anything with .NET and b...

Episode 246 Jon talks to David Ortinau about .NET MAUI. Download / Listen: Herding Code 246: David Ortinau on .NET MAI Link: Introducing .NET MAUI – One Codebase, Many Platforms (.NET blog) Transcript: Jon: Hello, and welcome to Herding Code. This episode is being recorded May 16th, 2022. Today I'm talking to David Ortinau now about .NET MAUI. Welcome David. David: Hey, good to see you. Jon: Okay, so let's start with the basics. What the heck is .NET MAUI? I, I mean, I know there's kind of Xamarin thing out there forms and now there's .NET MAUI. David: So .NET MAUI, it stands for multi-platform app UI. And it is really the evolution of Xamarin. So Xamarin is it started, you know, like 10, 12 years ago, Mono framework, Mono Touch, Mono Droid it was essentially saying, Hey, let's take what Apple and Google are doing these mobile platforms that are super cool, and let's bring it to .NET developers. And it was an open source thing, you know, at least as far as the runtime and things like that go but it was kind of out there in the community. And then what, six years ago, Microsoft acquired it. and then five years ago, I joined Microsoft to be the program manager for Xamarin forms, specifically, the that, you know, we favor XAML, but you can totally just use C# or F# actually to write your mobile applications, but it was a very mobile focus thing. Right? So, we have been doing in the .NET space over years is, unifying, taking all these things that were disparate, they all had different routes in terms of where they started, but .NET You know, we anything with .NET and be able to reuse not only the technology, but our skills. So. you know, dot .NET framework turned core .NET five shipped five unified, some of the model pieces and some of the BCL pieces BCL standing for base class library. And then, grandiose that was when Xamarin would also become really a core part of .NET, however pandemic things you know, best laid plans of mice and then things didn't quite go the way we want. Jon: Well also, plus it's, it's a big job, right? I mean, like uniting everything and you've had like .NET and C#, or like there's similar specifications, but like the whole way that, that mano and Xamarin worked always seemed like it was amazing to me that it actually worked right. David: Yeah. It was the ingenuity of some very smart people that made it at work. But you know, outside of Microsoft's doors, really, even before everything was mostly open-sourced there was a lot of duct taping to make things work. Make it a good developer experience. So we're now able to in the open source era and as part of Microsoft kind of rectify some of those things. So, you know, we're adopting SDK style projects, the same project system that the rest of .NET uses. And, and we've also added platforms. So now. Give a first place support to Windows and Mac desktops. So that's a big really have. I mean, we kind of had UWP but that really started because we had this. Windows phone thing. You know, and I don't want to like trigger anybody, but it was pretty cool. yeah, so, I mean, yeah, you're absolutely right. Tons of stuff that, that have ne has needed to happen under the hood from the runtime, the base class library, unifying all the API APIs and. In terms of Xamarin, there's some things that we did with types for end, float and end and things like that, to, to make things work with apple that are non-standard dot .NET things. So in .NET 6 we unified our types, which, you know in the short term, there's definitely some pain, not gonna, not going to sugarcoat that but in the longterm, you know, we're going to see some nice gains, and consistency across the whole thing. So very excited that we finally, after years of transition we're bringing. To full GA fruition here in .NET 6 Well, as part of the, as Scott, hunter would like to say the .NET 6. wave, I think wave works really good with the name .NET Jon: Oh, nice. Nice. Okay. So, so the. Top level I'm totally not even a .NET developer. I haven't been keeping up the high level is I can write C# or .NET code and I can build applications. That'll run on Android, iOS, Mac, and Windows. David: Exactly and their native applications. That's a key differentiator. So that means that when your app runs on iOS or Android or Windows or Mac, it's using the same premiere UI toolkit that the manufacturers say, this is the way you should build apps. Jon: Okay. So it's not like a, cause I think that's been as a workaround for a long time, people are building, for instance, like. Electron apps or stuff like that. Right. Where, so you, it technically will run cross platform, but it's really running a browser and it's running like, it's, it's not that like native or even going way back, like Java or stuff like that. Right. But you didn't have this like native app. David: Yeah. Yeah. You run into, what's known as the uncanny valley in some situations, depending on how well that technology is able to mimic the platform. you know, there are certainly other you know, platforms out there are frameworks out there that do a really good job at it. However yeah, the hybrid thing, which we typically call those as hybrid frameworks you end up needing to make some compromises in terms of what you can access on the native platform or what kind of UI experiences you can create. But you know, with straight MAUI, you don't have those compromises plus you get to use .NET. So it's one language, right? You don't have to drop into objective C swift Java or Kotlin your code. You know we're very open, you know, opened to using whatever technologies that you really want to be able to use. But in addition, all of that, we actually do have a really cool hybrid story. So you are a web developer. You've heard of this thing. Jon: Yep. David: Yeah, yeah. A little familiar with that. So what's really interesting to me about this and it seems to be resonating with some of the early adopters of MAUI a Blazor or just a Blazor component and you can drop it into a native MAUI and it does run in kind of that hybrid context. However, because that code gets compiled as. C code. There's really not that same browser interrupt barrier that you would normally and again, because you know, some UI frameworks such as Blazor do a really good job with helping You style your UI. You don't end up so much in these uncanny. And you can use it for what it's appropriate for, but then if you really need that native UI experience, MAUI controls are right there in the same application. So you can quickly stand up an application, share your code with web and you know, sky's the limit. So really cool to see. We've even seen some, just some apps shipping to the app stores already using that Blazor hybrid with MAUI scenario. And Jon: So it, so some of that seems like W you mentioned the word hybrid and you know, some of it seems like it makes me think of, am I paying like a big performance penalty or is it, you know, like how does it compare to what I guess part of my question here is what apps are not a good fit for that hybrid scenario. The Blazor hybrid scenario. David: Right. Yeah. So, The browsers have gotten really good at, you know, execute. Quickly. So I, I think that that, that window of what's not a good application is getting narrower and narrower. whereas, you know, a few years back we would have said, well, you know, if you adopt phone gapper or Cordova over one of those, early hybrid frameworks it would be much better known. What's not a really good application for it. I would think that Anything that's heavily graphic intensive may not be good. anything with heavy animation may not be good. But again, there's, there's gonna be exceptions to these rules. So the good news is, is that if you stand up a MAUI app and you start building in one direction, let's say that you like, Hey, I really think I'm going to be able to get away with Blazor and it's going to accomplish all of my needs. And you get, you get a couple miles down the road and that's not working out. You don't have to trash your application. your .NET code will work just, just swell without that browser context. And you can stand up native UI in its place. Without starting your application over again without, you know, starting from scratch. So I think that's a, that's a pretty cool way to think about it is, you know, don't overthink the approach that you take. But also you know, within within a Blazor Hybrid scenario, you still have access to all the non UI stuff that a Maui application provides such as sensors file System access notifications, local notification. System tray, you know, all, ...

Jon talks to Bruno Borges and Mark Heckler about Java development. https://herdingcode.com/wp-content/uploads/HerdingCode-245-Catching-up-on-Java-dev-with-Bruno-Borges-and-Mark-Heckler.mp3 What? On video now?!?! Download / Listen: Herding Code 245: Catching up on Java dev with Bruno Borges and Mark Heckler Links: Microsoft Build of OpenJDKJava in Visual Studio CodeVisual Studio Code Extension Pack for JavaSpine: 2D skeletal animation for games (esotericsoftware.com) written in Java Transcript: [00:00:00] Jon Galloway: Hello and welcome to Herding Code. This episode is being recorded on March 11th, 2022. Today I’m talking to Bruno and Mark, and they’re going to teach me all about Java because I don’t know a thing about it. So welcome folks. [00:00:22] Bruno Borges: Hey, Hey, Jon, how’s it going? Thanks for having us. [00:00:26] Jon Galloway: Yeah. And so can you introduce yourselves, tell, tell us tell us your background. [00:00:30] Bruno Borges: Yeah, I said something, you go first. [00:00:35] Mark Heckler: Well, hi, I’m Mark Heckler. I’m a Java developer for well, a long time now. Java champion Kotlin developer expert. We won’t talk about that too much today, but but deep...

Episode 245 Jon talks to Bruno Borges and Mark Heckler about Java development. Download / Listen: Herding Code 245: Catching up on Java dev with Bruno Borges and Mark Heckler Links: Microsoft Build of OpenJDKJava in Visual Studio CodeVisual Studio Code Extension Pack for JavaSpine: 2D skeletal animation for games (esotericsoftware.com) written in Java Transcript: [00:00:00] Jon Galloway: Hello and welcome to Herding Code. This episode is being recorded on March 11th, 2022. Today I'm talking to Bruno and Mark, and they're going to teach me all about Java because I don't know a thing about it. So welcome folks. [00:00:22] Bruno Borges: Hey, Hey, Jon, how's it going? Thanks for having us. [00:00:26] Jon Galloway: Yeah. And so can you introduce yourselves, tell, tell us tell us your background. [00:00:30] Bruno Borges: Yeah, I said something, you go first. [00:00:35] Mark Heckler: Well, hi, I'm Mark Heckler. I'm a Java developer for well, a long time now. Java champion Kotlin developer expert. We won't talk about that too much today, but but deepen the JVM and, and loving it and still loving it. So, and I, I work, I guess, on, on the, as an aside, I work in developer relations here at Microsoft engineering cloud advocate for a Java and JVM languages. [00:01:00] Jon Galloway: Cool. All right. And Bruno. [00:01:02] Bruno Borges: Yeah, I'm a PM manager at Microsoft. I lead some of the projects on the BM side, like Microsoft to beautiful JDK and Microsoft's involvement in the Java community. Like our work with the consolidation process. I am also a Java champion. And for those who don't know, Java champion is a program similar to Microsoft MVP, but for Java developers and yeah, it's, it's, it's been my career for, for a long time too long, I would say. [00:01:33] Jon Galloway: Okay. Well, let me start off with just when one thing, which is like Microsoft Java, how does that fit together? Like why, why is that a. [00:01:47] Bruno Borges: Five to 10 years because. Because of cloud computing, right. Developers wants to bring stuff to the cloud and Microsoft became a cloud vendor hosts any kind of application. And that includes Java applications. Right. But it's also through the history of Microsoft. And I don't want to go back in time too much because like some experienced Java developers will remind a few things, but in more recent times in the history, Microsoft did a welcome some companies and came up with some solutions that ended up either being developed in Java or using Java based technologies. So. The big, big data exploded about a decade ago. And in projects like attaching spark and Hadoop that are implemented in Java, ended up being used by every major company, including Microsoft. So, so those systems are in, used in use internally whether it's Microsoft being service or office or Azure infrastructure to behind the scenes, we see those Java based technologies in use. I've actually cost them more recently. So, so Java and the Java ecosystem and tools are needed for scalable systems. And, and that happens to Microsoft as well. And then Microsoft also welcomed LinkedIn and . And those are technologies that are heavily implemented in Java with thousands of Java developers that now work here in the conflict. So not only Java is a matter of like, we use the technology, but we also of course offer our tools and services to the customers outside. And the way that they host applications is through Azure at the end of the day. [00:03:41] Jon Galloway: Okay. Yeah. I was going to say that the big, my main exposure to job over the past several years, thinking about it has been helping my kid with Minecraft, like when she wants to install all the mods and all that kind of stuff. So [00:03:53] Bruno Borges: Yeah. And the interesting thing is Minecraft today, if you're playing with Minecraft Java tradition, the binary of Java that that is shipped with Minecraft is actually the binary that we build ourselves, the Microsoft beautiful and it's players and developers. Are in sync with their release. They will see that monograph is running on Java 16 already, if not 17 on I'm not sure if the 17, but they did two 16 at the end of last year. So it's pretty modern, pretty up to date with the Java release history. [00:04:32] Jon Galloway: Okay. So you mentioned open JDK and what's kind of the, what's the ecosystem like now, as far as like who's developing Java. [00:04:40] Bruno Borges: Primility who develops. Java is still Oracle. Oracle is the steward of the technology and the platform is the steward of the open JDK. And open JDK is the open source implementation of the Java platform, which enclose the Java language specifications, the JVs pacification, and the Java API. So those three things combined to form the Java platform. It opens you the key is the open source implementation GPL. But there are lots of contributions. Red hat is a major contributor to the opening, to the key project. IBM Azule systems, bell soft Twitter did some contributions Ali-Baba of Amazon Google in the past. And now Microsoft in, in recent times companies that we imagine like they were, you know, competitors, but still because they saw this technology as a great piece of, of software to do several things at scale, they all got together and said, Hey, let's, let's make something. And the open JDK where it says a true open source project with a very high quality professionals evolved in major companies behind supporting its development. [00:05:51] Mark Heckler: And if I can interject something here I, everything is in terms of Java kind of builds around and revolves around the Java community process. And that's not just in names. So you have a lot of, a lot of participants at an individual and corporate and organizational level that kind of come together and help guide, steer, develop specifications and you know, kind of suss out and test out different technologies as they start getting incorporated into Java the specifications. So specifications, I should say. So it's, it's very community driven Oracle kind of services that the central point and, and kind of is the force behind continued development. But there are a lot of, a lot of contributors to that entire process start to finish. [00:06:33] Jon Galloway: Okay. So let me ask, w let me tell you what I did trying to like get up to speed a little bit with Java, and you can tell me what I should have done. Instead. I am Googled around and I, I saw a Microsoft Java get started, whatever, and I went over to the vs docs page and I installed, or excuse me, the vs code page. And I installed the extension the Java extension pack, and it installed a bunch of extensions. And then I. a new project. Well, first I went on and I downloaded the open JDK just to make sure that it was installed in the newest thing and stuff. And then I also played with J hipster a bit just cause I'm a web developer and it seemed fun and I was pretty impressed with all of it. I, you know, there's the usual kind of trying to figure out what is, what is Maven and what is grateful and what is, where's my Java home pointed and that sort of stuff, but it was pretty smooth. And you know, a couple of hours, what, what do you recommend for people getting started with Java development? [00:07:35] Mark Heckler: That's all, I'll start off with this because that's something that I feel like, and we're certainly not alone in this, but I feel like we could do a better job on getting people. That, that kind of, that first experience you, you, you did a lot of good things there. I don't know that I could necessarily suggest improvements just because there are some rough edges there. I mean, when, when you're talking about a build tool, if you're not within the Java ecosystem, and if you're not within the Java realm, you're like, what's Maven. What's great. All, you know so you know, vs code with the with a small handful of plugins knocks down, a lot of those mirrors for you if you install the JDK, that would be something that would be kind of awesome. If we had some kind of like drop this in and everything just works, but there are a couple or three steps that you mentioned I know some folks are very, very fond of rebels and, and J shell and, you know, et cetera. But but ultimately I think it comes down to just finding some good materials that you can kind of get at that gentle introduction, you know, a step at a time. And i...

Kevin, Jon and Rob talk to Ben Scheirman about developing user interfaces for the Apple platform with SwiftUI and Combine. Ben screencasts at NSScreencast and is the creator of the Combine Swift course. Download / Listen: Herding Code 244: Herding Code 244: Ben Scheirman on SwiftUI and Combine https://herdingcode.com/wp-content/uploads/HerdingCode-244-Ben-Scheirman-on-SwiftUI-and-Combine.mp3 Links: Ben is @subdigital on TwitterCombine Swift – a Combine course for mere mortalsNSScreencast – Top-notch tutorials for Swift developersSwiftUI overview in Apple developer docs Combine overview in Apple developer docs Transcript: Herding Code – March 5, 2021 – Ben Schierman on SwiftUI and Combine Kevin: [00:00:00] Hello, welcome to another episode of Herding Code , our quarterly episode here. This is being recorded on March 367 2021. And today we were talking to Ben Schierman. Ben runs NSScreencast, which is a video training site for all things iOS and Apple development, and Ben’s going to talk to us today about SwiftUI, a relatively new UI framework from Apple for writing Apple platform applications. So thanks for joining us, Ben. Ben: [00:00:40] Well, thanks for inviting me. It’s good to be here. Kevin: [00:00:42] So why don’t we start with the sort of high level, you know, what is SwiftUI? What makes it different? Like what, how is it different than what came before it. Ben: [00:00:50] So there’s a lot of history and the Apple development community. We’ve had AppKit for 30 years now which follows a kind of model view controller based approach. And then when the iPhone came out, they, they sorta took lessons learned from that. And. And created UI kit. And so when you look at creating apps for the Mac or apps for the...

Episode 244 Kevin, Jon and Rob talk to Ben Scheirman about developing user interfaces for the Apple platform with SwiftUI and Combine. Ben screencasts at NSScreencast and is the creator of the Combine Swift course. Download / Listen: Herding Code 244: Herding Code 244: Ben Scheirman on SwiftUI and Combine Links: Ben is @subdigital on TwitterCombine Swift - a Combine course for mere mortalsNSScreencast - Top-notch tutorials for Swift developersSwiftUI overview in Apple developer docs Combine overview in Apple developer docs Transcript: Herding Code - March 5, 2021 - Ben Schierman on SwiftUI and Combine Kevin: [00:00:00] Hello, welcome to another episode of Herding Code , our quarterly episode here. This is being recorded on March 367 2021. And today we were talking to Ben Schierman. Ben runs NSScreencast, which is a video training site for all things iOS and Apple development, and Ben's going to talk to us today about SwiftUI, a relatively new UI framework from Apple for writing Apple platform applications. So thanks for joining us, Ben. Ben: [00:00:40] Well, thanks for inviting me. It's good to be here. Kevin: [00:00:42] So why don't we start with the sort of high level, you know, what is SwiftUI? What makes it different? Like what, how is it different than what came before it. Ben: [00:00:50] So there's a lot of history and the Apple development community. We've had AppKit for 30 years now which follows a kind of model view controller based approach. And then when the iPhone came out, they, they sorta took lessons learned from that. And. And created UI kit. And so when you look at creating apps for the Mac or apps for the iPhone, if you squint, they're extremely similar. But app kit has that, you know, 20, 30 years of legacy cruft that they just can never throw away. And so you know, things are a little bit different. Like, you know, you have UI color versus NS color UI being the UI kit version for the iOS. And, and then you have things like the coordinate system on the Mac is. The origins in the lower left corner, which hearkens back to the, I guess the, the way they used to send commands to the printer or something, I don't really know, but on iOS, the, the origin is, is you know, top left. And so there's, you know, minor differences here and there, but ultimately you've got views that know how to draw themselves they're object oriented. So you can have a subclass of a view that is a button or a label. And you know, the API is, are, are pretty strong, but There's there's always, you know, as our applications get more complex sometimes people complain about the patterns not being enough. And people joke about MVC standing for massive view controller instead of model view controller. Because, you know, when you give somebody a pattern and say, this is where you put your logic, they tend to put all the code there. And anyway, so last year wait, Time is meaningless nowadays. This is, you know, at least five years ago in, in COVID time Apple released a SwiftUI, which is kind of a radical new UI framework for, for writing in air quotes, cross-platform applications. As long as your platform comes from Apple it will work on T V U S and the Mac and the watch and the iPhone and the iPad. And SwiftUI takes just a totally different approach to, to writing user interfaces. So instead of model view controller, instead of your views being object oriented you know, and the model view controller world you would typically have of you that you would create say, I'm going to create like a new UI label and I'm gonna attach it as a sub view of my main view. And then I might read a model. In order to tell what the text property of my label's going to be. So like on a viewed load, I could say, okay you know, a model dot first name, I'm going to assign that to my labels, text property. But there's nothing in that relationship. That's going to continually keep that up to date. So I have to respond to events and note or re sort of update my model again. Well, SwiftUI is totally different where the view that you create in SwiftUI, Is a struct it's, it's meant to be thrown away and recreated anytime the model changes and it's balanced to the model. So you can say that I have I have this object that I'm going to observe, and whenever those properties changes, I know I need to rerender myself. And because it's a struct and everything that we're building is value types. They can be thrown away and recreated really quickly. And so it's a totally different approach and kind of, you know, from a traditional model view controller mindset. It kind of bends your brain to think about how, how you write this. That said it's pretty amazing because they have you know, the support in Xcode is you've got your code on the left and a UI preview on the right. And as you type, it shows you what you're building. And so you can kind of flesh things out, like really quickly without even hitting, you know, you don't have to compile it just updates. And so these live previews that you get when writing SwiftUI are just really incredible. And it's, it's one of my favorite features in doing this because the feedback you get is so rapid. Rob: [00:04:17] It sounds like they're trying to do a more of a functional approach if they're using strucks and like immutable data. I mean, is that how it feels to you? Ben: [00:04:27] Yeah, absolutely. It fits in really well with like there are, there are things that you just don't really. Like most, most of the examples are like, if I have a user object and I'm going to create a screen that shows like a profile view, I can, I can create an image view and I can set the image property to the, you know, some URL that came from my model. And I can set some text labels to, you know, the properties from my model as well. And that all works really well. But then you have these other things that don't really seem state driven. Like I want to present a modal screen on top of this, if the user's account is delinquent or whatever. So that modal sheet presentation is usually like some imperative logic that would happen in you know, in a method you would just check for the condition and say, Oh, I want to present this now, but in a functional world, it's all state-driven so. Instead you'd need a source of truth that says like, is the sheet presented? And that's like a property on your model object that you then mutate. And because you decide to, or when you want to to show that sheet, you have to set that property to true, which, you know, it just, it's like a, definitely a different style of thinking. But as you start to build your UI where everything, every interaction in the UI is driven from state. You know, it starts to lean straight toward the functional style of building applications and having your UI sort of just be a function of the state. Rob: [00:05:57] Interesting. You know, like in my head, I'm imagining a kind of render pipeline process pipeline that you're going to send an NSMonad through. I wonder when that's going to happen. Yeah. Kevin: [00:06:10] It's too early in the conversation to go to monads. Rob: [00:06:14] How long ago did they speak functional? Monads got followed within two minutes. Ben: [00:06:22] I don't even know how to follow up with that. Rob: [00:06:25] And thank you. This is Rob's podcast. Interview ability right here. Just created the interview straight away. Ben: [00:06:31] So I would say that rather than, than focusing on the, like the functional nature of it, it's, it's definitely leaning more towards the reactive nature, which I think a lot of people are familiar with. We have frameworks like reactive JS and the whole reactive ecosystem. Reactive Swift is are pretty popular or RX Swift, RxJS, those, those platforms I don't know if you call that that's more of a framework, but those are pretty popular and Apple just released their Combine framework, which is basically the, their take on a functional, reactive framework for processing streams of events over time. And I've dug in deep to combine and I find it, some of the aspects of, you know, porting my event driven code to combine has like, Just change the way I write software in general and combine and SwiftUI kind of fit hand in hand, it's like peanut butter and jelly. It it's like when you start using one, you'll probably start using the other because they just, it, it makes things so much more decorative. And so it being a declarativeframework that tends to like drive how you write your application from the get-go because. Things aren't so imperative. There's not like one place where like, okay, here's where I write the code. It's like, you're you're instead you're thinking more about models and state and then building up your views aro...

Kevin and Jon talk to Shawn Wildermuth about his new documentary film, Hello World. Shawn talks about how this film project began as a “love letter to software development,” exploring how amazing this career can be. As he delved into it he became more aware of the lack representation of women and people of color in this profession, and this film details his exploration of that topic through interviews and historical background. You can pre-order the film now, and watch it on-demand on a lot of streaming platforms starting December 15,2020. Download / Listen: Herding Code 243: Shawn Wildermuth on his new film, Hello World https://herdingcode.com/wp-content/uploads/HerdingCode-243-Shawn-Wildermuth-on-the-Hello-World-Film.mp3 Links: Hello World: The Film! (helloworldfilm.com)Shawn Wildermuth’s BlogHello World PodcastJuneteenthConf – June 19th and 20th 2020 Transcript: Jon: [00:00:09] Hello, and welcome to Herding Code. This episode is being recorded November 20, 2020. And today we’re talking to Shawn Wildermuth about the Hello World film. Shawn, can you introduce yourself and the film? Shawn: [00:00:22] I’d be more than happy to. I’m Shawn Wildermuth. I’m a technologist and mostly a teacher these days. They don’t let me around code anymore. But I’ve got a blog at wildermuth.com and I made a documentary about software developers called Hello World. Jon: [00:00:38] So what’s kind of the main focus. Like how do you approach software developers and you know, what, what are you kind of talking about there? Shawn: [00:00:48] Sure. I started making the film. I’ll tell it in this kind of story. I started making the film because I wanted to sort of do a love letter to software development because it’s been so incredibly useful to me. Like it has saved me from a life of working in a 7-11 night shift. And I just love everything about. <p...

Episode 243 Kevin and Jon talk to Shawn Wildermuth about his new documentary film, Hello World. Shawn talks about how this film project began as a "love letter to software development," exploring how amazing this career can be. As he delved into it he became more aware of the lack representation of women and people of color in this profession, and this film details his exploration of that topic through interviews and historical background. You can pre-order the film now, and watch it on-demand on a lot of streaming platforms starting December 15,2020. Download / Listen: Herding Code 243: Shawn Wildermuth on his new film, Hello World Links: Hello World: The Film! (helloworldfilm.com)Shawn Wildermuth's BlogHello World PodcastJuneteenthConf - June 19th and 20th 2020 Transcript: Jon: [00:00:09] Hello, and welcome to Herding Code. This episode is being recorded November 20, 2020. And today we're talking to Shawn Wildermuth about the Hello World film. Shawn, can you introduce yourself and the film? Shawn: [00:00:22] I'd be more than happy to. I'm Shawn Wildermuth. I'm a technologist and mostly a teacher these days. They don't let me around code anymore. But I've got a blog at wildermuth.com and I made a documentary about software developers called Hello World. Jon: [00:00:38] So what's kind of the main focus. Like how do you approach software developers and you know, what, what are you kind of talking about there? Shawn: [00:00:48] Sure. I started making the film. I'll tell it in this kind of story. I started making the film because I wanted to sort of do a love letter to software development because it's been so incredibly useful to me. Like it has saved me from a life of working in a 7-11 night shift. And I just love everything about. How interesting the job is, and I want to sort of encourage people who didn't think they could do it, that they could. And so that was sort of the first approach. And in the middle of that the me too movement came through and some other things in our industry were changing with conferences and such, and I realized that. I hadn't really worked with almost any women and certainly not women from the United States or Canada that I've worked on exclusively with people that looked like me. You know, I look a lot like a, the comic book guy, if you don't know what I look like from the Simpsons. Right. I fit the, the stereotype really well. And so I pivoted the movie to be about the lack of women and people of color, especially in the industry. Because it's it's, as I say, in the film, it wasn't that there weren't enough women or people of color in, in, in In software development. It was that I had never noticed there weren't enough. Like, it just didn't even occur to me to notice. And I like to think of myself as someone who's, you know, at least should notice those sorts of things. And so in that same time, I was having a dinner with Richard Campbell years and years ago. And he was mentioning about the early women in software development, being the first programmers, which was a story I didn't know. And, and that's part of what we talk about is sort of the history. Of software development and how this sort of went from one thing to another. And then I looked back and it had been five years and I didn't know what I was doing with my life. Jon: [00:02:43] it's a, it's really fascinating that you've kind of created a documentary during a time of some transition. And some of my favorite documentaries that I've seen have kind of. Almost, but either through discovery during the filming, or just kind of by happy accident with evolution, you know, with history of evolving have kind of captured things. I remember there was a documentary I saw called startup.com and it happened during the.com startup time and that startup bust and it followed these founders and, you know, getting huge valuation and going and interviewing. You know, in the white house and then everything. And then they get into huge fights and then the whole thing comes crashing down and the, and the film captured all that. And it sounds to me like, I mean, and just observing everything that's gone on, it's been a lot of change and a lot of awareness has occurred just over this past year and few years. So what does that look like in terms of. You know, things changing as you're filming. Do you just kind of keep filming more stuff and figure it out in editing? Or do you kind of, you know, how do you pivot a film? Shawn: [00:03:57] It's difficult. We interviewed 50 different people software engineers. We interviewed some people in education and a couple of others and what, what I learned, cause I didn't, I've never made a film before. Right? I mean, I've done some little things, but nothing like certainly of this size that you find the story in the editing bay, even though I had an idea originally, it almost always changes and it reminds me of software in a, in a lot of ways, because often what you think you're building when you start that first sprint, or when you write that first spec often, isn't what it really looks like because you it's, it's this continuous discovery of what is going on. And that really attracted you know, it attracted me to it because I liked the way that I. Like to build software, which is finding a group of people that all have specific skills that are gonna lend themselves to it. Not thinking that one person is going to be the best at everything and getting over the idea that I could be the best at everything. You know, for me, it's been, eye-opening not only in how I spend the rest of my life, but also like, Oh, you know what? That's a lot less pressure. Jon: [00:05:07] Hm. Yeah. As you're talking about that, then it makes me wonder, like with software there's been a change over the past, you know, I mean over our software development careers to moving to a more agile and, you know, being able to like pivoting is considered just something you do every day. Like you're constantly redeveloping, you know, like. Figuring out the next best spin thing based on today's information, is that is that something that felt similar? Like, are you able to apply those kinds of like agile development sorts of things to film development? Shawn: [00:05:42] You are in a lot of ways, though it's a little different. So one of the things I learned early on was that there's a difference between documentary and let's say you know, regular films that you might see with a story in them. So when the Avengers was filmed, the Avengers shot about four minutes of film for everyone, one minute on screen. And because they go in knowing exactly what they're going to film, like they have a script, they have this, they have this, they've got it all planned and documentary isn't like that. In many cases it's a hundred to one. A lot of it is this filtering mechanism, or if you take a movie like hoop dreams, which is four hours, which is really a long time for a film they had like 4,000 hours of footage cause they spent 10 years with these kids. And so it is, it is really, you know, mining that information and digging through and reading transcripts and watching the footage as you're shooting it. And the, the, the agileness comes from as you're gaining information from, let's say an interview or spending the day with somebody or watching an event happen. Things are really changing. There's a good example of that. I was interviewing Debra karata who you may or may not know, but Jon: [00:06:59] Oh, yeah. Shawn: [00:06:59] does a lot of angular stuff with Pluralsight and I was interviewing Jon: [00:07:03] when I was first learning to program, one of her books was the, one of the first books I read. And I, it was, it was like mind blowing when I actually met her in person. I was just like, Oh yeah, she's amazing. Shawn: [00:07:16] She is. And she hadn't mentioned that her, I think it was her daughter or a friend of her daughters had gone to this college in California Harvey Mudd college, and that they had changed to be graduating from 15% to 50% women in their computer science. And that like changed my perspective of like, Oh, I need to go back and do some research about the education piece of this. And that really changed the whole view because you're in the middle of, you know, information gathering or mining or whatever you want to think about the way filming does. And you go, Oh, this changes, everything was changed is the way we think about this in an entirely different way. And that's, you know, that's what happens at least happened for me with documentary film. And when I talk to other filmmakers, it's very much like that, depending on the kind of film they're trying to make, but being unwilling to move or pivot or adjust. Has that idea has really changed the way we build software has allowed me to make a film because I was already sort of adept at it, but it's also...

Does time still exist? Maybe! Kevin, Rob, and Jon chat about some of the top concerns of our current time: Sourdough breadWordPress and PHPNo Code developmentKnock knock jokes Download / Listen: Herding Code 242: The COVID Cabin Fever https://herdingcode.com/wp-content/uploads/HerdingCode-242-Sourdough-and-PHP-and-No-Code-Dev-and-Knock-Knock-Jokes.mp3 Links: https://github.com/nushell/nushellhttps://jeffsternberg.com/2020/03/11/beyond-spreadsheets/ Transcript: Jon: [00:00:07] And hello, welcome to Herding Code. It is July 31, 2020 on the one hand. Holy cow. The year is like getting closer to done on the other hand. Will this year ever end? Rob: [00:00:20] Yeah, can the year just be over? Can we just be done? Jon: [00:00:25] Wow. Yes, it is. Rob: [00:00:29] I think I mentioned before the podcast that wasn’t going to be salty. I think I lied. Jon: [00:00:33] Yeah. Kevin: [00:00:34] This is the bad place. The year will never end. Jon: [00:00:37] You know, on the one hand. So it was looking at it with since April, we talked last and we did the, Freaky Friday episode where we talked about the trading trading placces, Mac and Windows and all that. And then I was like, man, on the one hand has much changed. I mean, cause cause it’s like nerds in captivity. What do we do? Kevin: [00:00:57] It’s not actually that different from nerds, not in captivity, sadly. Jon: [00:01:00] That’s true. That’s true. All right. Has anyone else, w we just, we have to cross this off the list who here has made a loaf of sourdough bread. Okay. I’ve made enough for everybody. I’ve made all the sourdough bread. Rob: [00:01:12] We just… Kevin: [00:01:13] ship it out, man. Send us some! Rob: [00:01:15] Yeah, I know. Wait, where’s my, where’s my bread, man. Jon: [00:01:18] Okay. So it was like after a while, I have three d...

Episode 242 Does time still exist? Maybe! Kevin, Rob, and Jon chat about some of the top concerns of our current time: Sourdough breadWordpress and PHPNo Code developmentKnock knock jokes Download / Listen: Herding Code 242: The COVID Cabin Fever Links: https://github.com/nushell/nushellhttps://jeffsternberg.com/2020/03/11/beyond-spreadsheets/ Transcript: Jon: [00:00:07] And hello, welcome to Herding Code. It is July 31, 2020 on the one hand. Holy cow. The year is like getting closer to done on the other hand. Will this year ever end? Rob: [00:00:20] Yeah, can the year just be over? Can we just be done? Jon: [00:00:25] Wow. Yes, it is. Rob: [00:00:29] I think I mentioned before the podcast that wasn't going to be salty. I think I lied. Jon: [00:00:33] Yeah. Kevin: [00:00:34] This is the bad place. The year will never end. Jon: [00:00:37] You know, on the one hand. So it was looking at it with since April, we talked last and we did the, Freaky Friday episode where we talked about the trading trading placces, Mac and Windows and all that. And then I was like, man, on the one hand has much changed. I mean, cause cause it's like nerds in captivity. What do we do? Kevin: [00:00:57] It's not actually that different from nerds, not in captivity, sadly. Jon: [00:01:00] That's true. That's true. All right. Has anyone else, w we just, we have to cross this off the list who here has made a loaf of sourdough bread. Okay. I've made enough for everybody. I've made all the sourdough bread. Rob: [00:01:12] We just... Kevin: [00:01:13] ship it out, man. Send us some! Rob: [00:01:15] Yeah, I know. Wait, where's my, where's my bread, man. Jon: [00:01:18] Okay. So it was like after a while, I have three daughters and they're getting bored too. And so the middle one kind of gets into baking. So I was like, all right, let's try it out. You know? And then it's totally the nerd rabbit hole. Once you start it, then you're like, Oh, I really need a Dutch oven now. And now, now I need this, but it's pretty fun. I halfway through, I really there's this website Breadtopia, and there's this no knead bread recipe. And it's actually like, most of the work like you do, maybe about a half hour of work, but it's spread over two days. So you could like go mix ingredients, you walk away for hours and then you come back and you'd like, flip it around and then you come back and then you put it in the oven and you walk away. So it's a lot of walkaway comeback stuff. But the one thing I realized after a while is that. It was not very sour. And then I started reading and there was all these hacks you could do, but then people are like, you know, sourdough, you buy from the store has some sort of acid in it, citric acid or lactic acid, some sort of acid. So I just started putting white wine vinegar in, and then I had to like, it messed with the chemistry and I had to change around the ingredients and stuff, but that totally worked. Then everyone's like, this is the best ever. So don't tell my family, I'm putting. White wine vinegar in the sourdough and we're all good. Rob: [00:02:35] Yeah. You know, it reminds me of making, cause you know bread and beer are very similar and yeah. And so I used to be a huge, I haven't brewed beer in a very long time, but I remember going to the store and they're like, well, you know, if you, if you can't get that bitterness, you're looking for here's some extract, you know, or if you can't get the aroma here, just drop a few drops of this. It's you know, I like, wait, that's, that's cheating. Jon: [00:03:00] It's totally cheating. And yet, Rob: [00:03:04] Yeah. And yet, right. If the beer tastes good and people drink it and they like it. So who cares? I don't Jon: [00:03:09] that reminds me in a Malcolm Gladwell book. I forget what it was, but it was. One of these things where they're like, they did these taste tests and they had some kind of beer taste test and they put in, basalmic vinegar into some of them. And people like picked the basalmic vinegar is like much better beer and it like just had a few vinegar in it. So I don't even know. Yeah. Kevin: [00:03:33] the most like San Francisco story, I heard. Through this COVID period is some, some dude was like going all over San Francisco, leaving sourdough starter packets, like randomly scattered around the city. Jon: [00:03:48] It's pretty amazing stuff. It's like, I've, I've seen videos. People take like completely like abandoned cultures that have been in the back of their refrigerator for months, you know, and they'll awaken it. And it's like, I don't even know. Yeah. Kevin: [00:04:04] Our version of it is we got an ice cream maker, which is even less healthy than making your own so we've been kind of experimenting a little bit, although we haven't gotten too crazy yet. So. Jon: [00:04:15] So I ran into Nik Molnar in the, before times in Montreal, I was at Node. What was it? Node JS Interactive up there. And, and I forgot that he is like, Crazy like trained chef, like really good. And so I was like, Oh yeah, I'm cooking some stuff for Christmas. He's like, you know, I told him and it was something like just simple thing, you know? And he was like visibly disappointed. Okay. And I'm like, what are you doing? He's like, yeah, I'm just making ice cream. But he had like three different ice creams in each one had like a savory and a sweet component. And I mean, he had like, obviously planned out this very in depth stuff. And I was like, well, I'm sorry. But ice cream ice cream is Rob: [00:05:00] I, I had a really fun experience. I mean, I know this podcast is supposed to be back technical stuff and we're supposed to get into it, but you know what? This is, this is the human aspect of it. But you know, what, if someone can gain some value from this hooray, So my buddy, my buddy and I we're going, gonna make some burgers one night. And I said, well, you know, I've always wanted to make a burger on a skillet and he's got a really good set of skillets, you know, like, Black, you know, just super cured over the last million years. And I'm like, I'm going to make a burger on that. And so I go online and I'm like, I'm going to look at the perfect burger tutorial. Like, how do you make it? And of course, I find my favorite chef Gordon Ramsey, and he's got this YouTube video called the perfect burger tutorial. And so I watched it and amazingly for the burger fans out there, he did not make it in a skillet. He made it on a barbecue. And anyway, the reason I'm saying all this is I, I kind of watched this whole thing, what he was doing and the ingredients to use. And so I'm like, alright, I'm going to take myself to the store and I'm going to buy this beef. I'm going to put an egg in it. Cause he recommends putting an egg in like a, what is it? Two pounds of beef. And then I'm going to like get this cheese and do all the things he did, salt and pepper. That's all he uses for, for seasoning. And they did exactly what he recommends doing. And I, I'm not kidding. My friend made this buddy of this guy was making a burger with, he is a huge meat fan. He's got like a $2,500 smoker. He spends, I mean, hours and hours, ma like making meat every single week seriously. And so I was like, listen, I'm going to make, I'm going to try and make this burger. I'm just going to go get some stuff from our local market. And don't beat me up. I'm going to do my best. And he's like, all right, you know, whatever, you know, little lamb go have a good time. So I did. And he swears to me and it's the best burger he's ever had in his life. And I was just like, I was, the funny part is I'm not, I don't, I'm not big burger person. You know what I mean? I somehow just stumbled into this. Anyway, I left you a link here in chat. So if you want to put it on the post. It's it's literally took me, I want to say 30 minutes from start to finish. And my kid has said this to me, best burger I've ever had in my life. My buddy said this to me. I'm like really? Cause that's a pretty big thing for someone to say that. So anyway, I thought, since we're talking about food, I made a damn good hamburger, you know, and I'm proud of myself. Jon: [00:07:29] Well done. It is funny how much, like a lot of these things come down to really simple. Like the bread that I made is like, Three ingredients, you know, and then last week we made mozzarella and it's four ingredients. And a lot of it is like doing the process and, and YouTube, it's hard to beat YouTube, you know, like I've used. Rob: [00:07:51] I was going to say, right when it's Gordon Ramsay, I mean, he kind of just stares at you through the thing and he's like, if you make a burger any other way, I will come find you and kill you. Jon: [00:08:02] True. True. Yeah. I mean, I've used, I mean, it's, it's...