TopPodcast.com
Menu
  • Home
  • Top Charts
  • Top Networks
  • Top Apps
  • Top Independents
  • Top Podfluencers
  • Top Picks
    • Top Business Podcasts
    • Top True Crime Podcasts
    • Top Finance Podcasts
    • Top Comedy Podcasts
    • Top Music Podcasts
    • Top Womens Podcasts
    • Top Kids Podcasts
    • Top Sports Podcasts
    • Top News Podcasts
    • Top Tech Podcasts
    • Top Crypto Podcasts
    • Top Entrepreneurial Podcasts
    • Top Fantasy Sports Podcasts
    • Top Political Podcasts
    • Top Science Podcasts
    • Top Self Help Podcasts
    • Top Sports Betting Podcasts
    • Top Stocks Podcasts
  • Podcast News
  • About Us
  • Podcast Advertising
  • Contact
Not in our directory?
Add Show Here
Podcast Equipment
Center

toppodcastlogoOur TOPPODCAST Picks

  • Comedy
  • Crypto
  • Sports
  • News
  • Politics
  • True Crime
  • Business
  • Finance

Follow Us

toppodcastlogoStay Connected

    View Top 200 Chart
    Back to Rankings Page
    News

    Herding Code

    A technology podcast with Jon Galloway, Scott Allen, Kevin Dente, Scott Koon

    Advertise

    Copyright: © Creative Commons (by-nc-sa)

    • Apple Podcasts
    • Google Play
    • Spotify

    Latest Episodes:
    Herding Code 246 - David Ortinau on .NET MAUI May 25, 2022
    Show notes

    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, all the things that you would want to have access to in a native application is all there at your fingertips, even though you might be standing up UI that's HTML and CSS. So yeah, I don't, you know, I don't have specific examples for you. We'll see what people do. Jon: Yeah. Well, and a lot of it, right? It goes into like, you test it and you see what works. And I, like you're saying browsers have gotten, we're recording this, this podcast over video in a browser now. Right? David: Yeah. Jon: The thinking of doing that years ago, it would be like, that's just ridiculous. And it's like, and now I guess most platforms don't have to spin up a whole browser. This there's this like web view to are these native built-in browser controls. David: Yeah. Yeah. So WebView2 is, is something that we actually use on the desktop. We use it on, on Windows right now. So when you are building a a hybrid application Blazor hybrid application with Maui, you're going to end up with web V2 on, on Windows on, Mac you're going to use w was it WK with. And I think that's the same thing on, on iPhone. So, I know that a WebView2 is coming to more platforms. we see. don't have any announcements, I'm not announcing anything. But I'm pretty sure that that that's out there. So, you know yeah, they're, they're super performance. You can bundle it with your application.It can be acquired separate from your application depending on what the OS allows for. So there's a lot of things you can do with the browser these days. And, and even on mobile context, they can run super, super. Jon: So a lot of what I think of mentally. I still am in this, you know, MAUI and I'm feeling, I initially think of mobile apps. but, but I have to like reset my brain because going way back when that .NET first chipped, and it was like, cool, I can build, you know what wind form applications. And, and then people are like, can I run it on Mac? Well, you know, and it's like, yeah, with mano sort of, you know, but not really, you know? And so like Can I really build like a full featured, like desktop application and it runs on Windows and then I can ship it and it runs on a Mac too. David: Believe it or not. Yeah. Yeah. And you know, so we, we have done several things that are different than Xamarin to enable those, you know, desktop scenarios that differ from mobile. So one of those is multi window. So you can have multi window applications when you want to. We are working with several customers that I cannot name, but really cool customers to build out new desktop application experiences. And, you know, their requirements are pretty demanding in terms of performance, in terms of multi window custom MDI. Implementations MDI is multi document interface, something I didn't learn until we started doing Maui and realized that we needed to do desktop things. So I needed to learn what, what is a desktop thing, you know? And so, you know, that's essentially MDI is the kind of thing you would experience in Visual Studio where you can dock and undock panels, and you can have things all floating around inside of Europe. Your primary window. So, you know, then mouse, gestures and pointers and not pointers, like, You know, sciency pointers, but, you know, your cursor, You know, I want that to be a finger, I want that to be a hand or whatever. So all of these things are new in MAUI. And that's not to say that we've got everything immediately at GA that you could ever imagine for a desktop application, but that's where, you know, our vendor partners that build awesome components step up and because, you know, sync fusion to lyric dev express, I, you know, I could go on and on. Have desktop components and widgets and they can adapt them for MAUI and they are, they're doing just that or they're building new controls. So so far we have not hit a limit or a blocker in terms of What we can Do for desktop. What I think is really cool is, I mean, I don't know, years ago, and you're given that you've got, you know, web developer experience. Do you remember the whole mobile first design? Kind of wave that happened there and it kind of swept the world. It's like, okay, when you're going to build an application, that's going to run multiple places. Start with your smallest screen. We build out from there... Jon: That was actually, my next question is like, how that runs well on a phone and a, you know, huge desktop, right. David: Well, I mean, the good news is because the Xamarin has always been and and now MAUI of course, inherits is it adapts to different screen sizes and resolutions? So all from one project, you can have one set of images and SVGs and raw assets and And then you, you stand up your layout with the appropriate constraints and it will adapt to whatever screen you put in. And then we've got a whole host of solutions for, you know, markup extensions so that you can do on platform for, you know, Hey, if it's running on Android, do this one thing, or adaptive triggers, you know, if I, it, which is a akin to a media queries right. Jon: Okay. David: So essentially, you know, if, if the screen gets to be larger than 1200 pixels, Add another column to the layout, or if it gets below that remove that right-hand column, because I don't have room for it anymore. That kind of stuff, super easy to do with, with .NET MAUI, or idioms, you know, like, Hey, if I'm running in a desktop context to use a menu bar, if I'm not running in a desktop context, do a fly out menu or, or however you decide to design your application. So. Tons of options. pretty Much you can do anything you need to. And if and if those things, you know, start to make your, your UI super muddy, you can always say, Hey if I'm running on desktop, use this desktop specific layout it's a separate XAML file or whatever. And then, you know, if I'm running on mobile, I've got a separate iPhone or, or mobile layout. So tons of ways you can do it.Plus we support multi-target. I could go on and on. Jon: tell me about multi target in there. David: so-so with and this has kind of been supported, Claire Novotny RO a library. I don't even remember what exactly was called. Was it SDK mobile tools or rescue? I don't know. but it was a way in which you could use this underlying multitask editing functionality and .NET, where with some conventions. You could say, Hey, I want this file to work on this platform. And I want this file to work on this platform. And they're basically sharing an interface or they're sharing the same class at their partials. Jon: Yeah. David: And, so it allows you to do these multi-platform. From a single project typically. Prior to that, you would end up writing all your Android code, for example, in an Android specific project. And then you'd have a separate project for all your…

    Full show notes at the publisher

    Herding Code 245 - Catching up on Java dev with Bruno Borges and Mark Heckler Mar 17, 2022
    Show notes

    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 it sounds like you're already there. And if, of course, if you have a frame of reference that you're going from, like you mentioned J hipster, which by the way, a Julian Dubois, who is well, my manager is the lead of that project. You know, so he's, he's a Microsoft in as well and heavily involved with community. So that's that's something that is, if you're coming from a frame of reference, it should be easier to pick up in that regard, but everybody doesn't share the same frames of reference. So that's part of the, I guess, struggle that we're all trying to help help solve, help make better. [00:08:58] Bruno Borges: Yeah. Ecosystem can be frightening. After you spend an hour reading blogs and articles and try to make us some sense out of it because, because it's a. Diversified equal system. There's no single technology vendor for any component in the Java ecosystem. Oh, I need, I need the JDK. Right? That's the basic component you need. There are seven vendors, right? [00:09:27] Mark Heckler: maybe more [00:09:28] Bruno Borges: Or, or, or, or more, oh, I need a, I need an IDE or EDS or, well, there are five options out there. Right. And then I need a framework to build my application. Well, there are probably two. And then finally, okay. I chose, I selected my JDK, my enter, or IDE I have a framework in mind. I still don't know what that means, but it has some pity and meta choice, but it's there. And I see me to build that project, so I need to build. Right. And there are actually more than two Maven in great are the most, most used ones. But is that true? Important too. There is a patchy and Apache Ivy and, and babble or not double, sorry, something like [00:10:14] Mark Heckler: I'm going to paraphrase. We don't talk about those Bruno. [00:10:17] Bruno Borges: too many, too many. So it can be frightening. But what Mark said, I think it touch if a person doesn't know, doesn't know anything about Java. Just go online search for something that says getting started with Java and something that does not involve building a level of education on the very first step and then get started with that. Okay. Here's my first job application. Here's my first hello board application. And if a developer is already familiar with an IDE or editor, try to see if that's technology supports Java. And if it does use that once you got a good sense of here's my hell award application, I'm reading a file. I'm counting lines in the file, or, you know, doing some math, get some sense of the language. Then next step is okay. I actually want to do a web server. I want to get each to be required to then provide HTP responses. Then there is again, a multitude of frameworks that can do that, because that is ultimately the majority of systems that are built today, but just go and get started with anything and then start learning from there. And once you pick a framework and you feel like, oh, this is interesting. This is cool. And your criteria was probably, oh, this is the most usable, or this is, has the nicest website. I don't know, whatever criteria. Right. And try to dive in a little bit on data, want to understand concepts and understand what are the features capabilities. Cause the reality is most frameworks can do the same thing. Last there's a lot of overlap of features and, and, and back to what I said before, it can be frightening because yeah. Dot net is awesome because you know, it is opensource, but it's also coming from a single company, right? There's no, you don't how many web frameworks aren't out there for.net it's it's not there, right? [00:12:13] Jon Galloway: There's a few, but you're right? It's basically there's one. [00:12:16] Bruno Borges: Yeah, exactly. So, so that can help for, for beginners and developers that have to get through that barrier for the Java ecosystem. For sure. So follow Mark's advice. So if something gets started, [00:12:30] Mark Heckler: Yeah. And I don't want to chase this down this rabbit hole too far, but I mean, what are the, I mean, you, you always, what you're familiar with, you always see the, the pros and you also see the glaring. I hate to say deficiencies, but you can see the gaps. right. So one of the strengths and weaknesses of Java is exactly what Bruno said. You, you know, oh, I need a JDK. I need, I need a version of Java. Well, what version and where do I get it? Which one? But you have options. And, and the good news is that means it's open. I mean, you can, if you want to use the Microsoft, build them up in JDK. If you were using yesterday, if you're using somebody else's new swap in this one and it's like, wow, it just, everything just works, which is amazing. But when you're coming at it fresh and you're new and you're like, okay, where do I go to get this? Well, pick one. Oh, okay. Which one do I pick? And why? You know, so it it's, it gets a little weird at times. Bruna mentioning the tons of frameworks and stuff. I mean, we're not JavaScript, so there's not a new desert every day and, you know, 22 of them who die the next day, you know, so I guess there's that. But but yeah, it's the same things that make it so flexible in, in many ways, make it a little more imposing for somebody coming into the ecosystem new, but, you know, I mean, like every ecosystem, we have tools that help with a lot of these things. I, I couldn't live without SDK man, so I can choose between various different SDKs just with, you know, a simple command at the command line. And then I'm using something else or somebody else's built or a different version or, or whatever. And it just takes a lot of the pain out of that. But again, if you're new to the ecosystem, you're not aware of that. So then you're manually doing some of the steps that you wouldn't necessarily have. [00:14:08] Bruno Borges: Yeah. Mark mentioned the command line tool called SDK man. And it's one funny enough. It's one of the many tools that we can use to manage JD case. So, so there are actually important online. So there's always that meme, right? These 14 standards are bad. We need a new one. Now you have 15 standards. It's the same thing, the Java ecosystem. But the, this goes. Well, all the way back to in Java store and Java became open source with with Eva actually, before Jon became open source, because the way the Java was offered by some of Microsystems as a, as a free technology from day one, not necessarily open-source, but free for production allowed developers in the world to build products on top of Java. And that's why lots of libraries came to B to B, lots of build tools were got created and frameworks for applications that stuff, applications, lab applications of all kinds, they were bored. So that, that allowed this ecosystem to exist the way it exists today. And it only gets better for whatever definition of battery or you look for. [00:15:22] Mark Heckler: 15 standards. [00:15:23] Jon Galloway: Yeah. Yeah. There you go. Yeah. So, so like he came in and that makes me think, like there's, you…

    Full show notes at the publisher

    Herding Code 244: Ben Scheirman on SwiftUI and Combine Mar 29, 2021
    Show notes

    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 around that. Jon: [00:07:53] Sometimes when you move from an imperative style to a declarative style, like 90% of the time, it's awesome because it cuts down your code and it like allows you to describe what you want to happen. Sometimes it can be a little tough to troubleshoot what the heck is going on because things may have side effects or, you know what I mean? You change one that you're not sure what is driving an update. That sort of thing is, is that a, is that a problem you run into with this. Ben: [00:08:20] Yes. I think that's probably a universal truth that like the more declarative and the more like magic you get, the harder it is when something breaks down and. And trying to figure out what, what is going on, what I found to be really helpful. Just in general, on the Combine side of things you have it's basically like a functional pipeline where you say, like, let's say I have an array of characters from a movie or whatever. I can filter the array. I can map the characters to their last name or whatever. And I can add delays and debounces and stuff like that. And then when you think, well, it doesn't really have to be an array. It could be a network response, or it could be user tapping on the screen. Right? Any source of events can be transformed in the same way. And so they have some tools that you can just insert in the middle of this pipeline to say, I just want to print out and know when this is happening, or I want to insert this little side effect block. That's just going to sit in the middle and let me set a break point or you know, print out values or whatever. And I'll just delete that when I'm done, but it doesn't affect the chain. It still passes the values downstream. So you have some ability to diagnose like the data flow on the SwiftUI side I find that to be also true, where you've got a lot of things happening and the more complicated review becomes, you know, true strives you to say, okay, I want to make this a smaller thing. I want, I want to design things at really small, granular level. And I mentioned the the SwiftUI preview you know, on the right side of the editor, you can create previews for whatever you want. It doesn't have to be an entire screen. So I can have say we've got a screen that has like a, that avatar that that we want to, you know, round the corners, make it a circle and put a border around it and a shadow or whatever. I could just like. Create a new SwiftUI view avatar view and just zero in on just that one component. And then I can see how it looks on large screens, how it looks on small screens, how it looks in dark mode how it looks if we have accessibility, like low contrast settings turned on or whatever, and I can have all those previews up at the same time when I'm working on that one component you can also do. Interactive like user interaction in these previous as well, because it's running a simulator iOS simulator behind the scenes. So if I'm doing a button component and I want to be able to tell like, okay, here's the button in? Like it's 12 different States. I've got different background colors. I've got one that has a spinner embedded in the, in the button. And I've got like depressed States and highlighted States and, and disabled States and all that. And I also want to be able to like animate, you know, maybe when he, we push the button, maybe we want to animate that the shadow kind of gets smaller or whatever to indicate that the buttons kind of going into the interface a little bit. It's, skeuomorphism, it's coming back. Things like that, I think are it's, it's real, it's really just not fun to be designing something like that. And it's like that button say is like two screens deep into your UI. And if you run, you have to build and run the application and like, okay. Click to the screen, you know, just that turnaround time. It's just. Not fun and the faster I can get to, I would just really like to be able to click on it right there inside of Xcode. And SwiftUI previews lets me do that. I can actually run the preview, which runs an instance of SwiftUI standalone and then, you know, click through and toggle it and be able to design these things at the small level and then use that in a bigger context. So I think, you know, to, to circle back around to your question, like when things don't go right. Or, or confusing. I tried to like zero in on little components and try to make their you know, the data flow more obvious and, and to design the UI in a, in a way that I can start small and just grow out from there. Kevin: [00:11:52] So when I've, when I've done a little bit, I've done a little bit of SwiftUI and I definitely have hit situations where that preview thing sort of breaks and you can't really tell why, and I've never been sure if it's just me doing something stupid or, you know, I'm hitting some, like, you know, I'm trying to do something in my view that just not supported or is that a, is that a common problem or is that something that. Ben: [00:12:14] it's a common problem, but I've been able to get around it. Again, just going back to the, make things simpler, you can comment out stuff and, and until it renders, all of a sudden will pop in. You'd be like, okay, it's something with between this part. And this part, there is a Little like a little diagnostics button, that'll say like the preview agent crashed and you can click diagnostics and it literally never tells me anything helpful. But if you go to on a Mac in your home folder, library logs, diagnostic reports That's where all your crash logs show up and Xcode will have a crash log in there. And so I just keep that window open. And so when the preview stops loading it's because they tried to run the app and I did something I'm not supposed to. And anyway, so usually I can go in there and it literally the crash log shows me the line number of the problem. So Xcode has all this data at its fingertips. It's just not quite right. It's not quite helpful enough to tell you exactly where the line is in the editor you're using. But I think that will improve over time. Jon: [00:13:15] You mentioned components so different, there's different. Like it's useful to build with components and stuff. Is there actually like a, an ecosystem? Do people sell components? Is there like a packaging and distribution thing for components? Ben: [00:13:28] So we have Swift package manager, which is just starting to become useful. Before that we had a couple of, you know community driven efforts to bring independencies. Nothing like what I remember when I used to be a .NET developer where people would sell like package products and they come wit…

    Full show notes at the publisher

    Herding Code 243: Shawn Wildermuth on his new film, Hello World Nov 25, 2020
    Show notes

    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 forced me to in my everyday life not be so entrenched in my views or my ideas or how I expect my relationships to go or whatever the case may be. It, it. It's been a really good practice for, for you know, just being able to not be as, as rigid as I've spent some of my career being like, what do you mean C sharp? Isn't the best language? What do you mean that like, whatever it is, you know, that Of course, we can't do anything outside of Firefox. I mean FoxPro, there's the word I was looking for. Everything has to be FoxPro it. Like we have these weird entrenched opinions that sometimes we look back and like, what kind of bullshit was I talking about? Jon: [00:09:05] Yeah. Yeah. It's a, it's amazing how like, awareness, all of a sudden opens your eyes and then you see something that should have been right under your nose. Like it was right under your nose all the time, and you're just blind to blind to it, you know? Did you observe during the time that during, because this has been years for you to create this, did you observe any change in, you know, in the industry during that time? Like you mentioned the me too movement, and then of course, you know, more awareness in underrepresented minorities is here. Did you see any hopefully positive change during that time? Yeah. Shawn: [00:09:42] I did, you know, I went into the film once we made the pivot, worrying that the industry that I love so much had these sort of sexist or racist overtones. And I came out of it really with this idea of that it's mostly due to unconscious bias and you know, fit. So what I, what I saw is that we were changing the way we. Talked about software and software teams. One of the ideas in the film that is very important to me is whether you buy into the social justice of, of course, this is the right thing, and this could be generally generally changing for people in certain communities, especially underserved communities, especially underserved communities around the world, not just here in the us but that we can make better software with better integrated teams with better diversity. And I'm not just talking about diversity of race and gender, but also. Just backgrounds and ages. And you know, the idea that a company would release a app to track the period cycle of women and make it all pink. Because obviously there were four guys on the team. It was like, well, it's a app for women. It's gotta be pink, you know? And just having a better exposure, you know, the facial recognition that doesn't work as well on, on dark complected skin or the fact that the early airbags were never tested with crash test dummies, the size of women. And so they killed a bunch of women before they figured that out. You know, it's not, it's an engineering problem that. If we, again, if we ignore whether the right or wrong of it, you know, some people can argue about, you know, merit based or meritocracies and all that at the end of the day, I think we can make better software when we have these different perspectives to help us figure out how to build better software, you know Scott Hanselman talks about it sort of like an intersectionality of are you building medical software? Do you have people on the team who have had medical problems on dealt with medicine as a user? Are you building software for fireman? Do you have access to someone who knows fireman on the team? Like it's this idea of, of, you know, it used to be that we would get a spec and they would write an app over two years, or we used to call them programs, but app over two years and then you show it to the customer and it was either right or wrong. And then you'd have to train them to figure out how to make it right for them. And we've changed a lot of that, but I still feel like the representation is still hurting the quality of the software we build. You know, there are places where. In our industry, where there is great representation. You know, it's not, it's not you know, a big solution, but I think we need to own the lack of representation when we can like get out in front of the story. If you're running a conference and 90% of the people who submit papers are men. Talk about that. Say why can't we get women or people of color to submit, talks to our thing and, and, and talk about it instead of trying to make the numbers look good, which is actually, I feel like happens sometimes. Okay. Well, except all the women in the backfield with men and I don't, again, that's not about fairness, that's hiding the fact that we don't have enough. You know, let's say women's speakers at conferences. That doesn't help us because it doesn't, I think we're missing part of that. And that's something that I think is finally getting better, but still think we have a long way to go. Jon: [00:13:23] Yeah. Yeah. You mentioned that, it, it makes a better product and a better team at a better experience for everyone when there is more diversity of background and thought and you know, all the different things, education level, and, you know, just different languages spoken and so many things that we are unconsciously. I mean, that's the whole thing. It's unconscious bias. And I think. You know, going into this, a lot of us had thought, well, okay, we should be nice to different, you know, people that are different than us, but it's going to put a cost, you know, it's going to slow us down and it's going to put a cost and it's harder to hire and all that. And really the result, as you're saying is you end up building better software and being a better team. And you know, like all these, it's an, it's a huge net positive. It is something that I've worked with on conferences putting together conferences, is it, it does take some work to find speakers, and some of it, I think comes from people not seeing themselves as speakers and not, you know what I mean? And so like for instance, women speakers. It takes some encouraging sometimes for, for a few reasons. One is they don't see themselves as speakers because they've always seen men speaking on stage. And also there's a little bit of fear that they're going to be, you know, singled out and, you know, kind of harassed in a way that men just aren't aware of. Did you, did you talk to people where, where that was an issue, you know, where people are scared or just don't want to put up with negativity. Shawn: [00:14:59] Yeah, we did. We, you know, we reached out to a lot of people that I thought would really have good stories, but there still was a reticence with a…

    Full show notes at the publisher

    Herding Code 242: The COVID Cabin Fever Sep 17, 2020
    Show notes

    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, you know, cliche at this point, but I used YouTube recently to repair, you know, leaking gaskets and in my espresso machines, you use it for fixing dishwashers and everything. So why not cooking too, but it really does make a difference as long as it's not the long boring, you know, Rob: [00:08:24] Yup. Jon: [00:08:25] People want to talk a little too much? Just get to the point. Rob: [00:08:29] Speaking of this is supposed to be a tech podcast, right? I mean, Jon: [00:08:35] Oh, I guess so Rob: [00:08:36] I know. Jon: [00:08:37] what's happened. Well, okay. Kevin did point out there's been, there was a Mac, there was an Apple event, an Apple developer event. What do we call them now? WWDC is. There was a thing. Rob: [00:08:56] Oh, Jon. Kevin: [00:08:57] This is the guy who's on the Visual Studio for Mac team, right. Rob: [00:09:00] Yeah. Jon: [00:09:01] Yeah. Well, I watched it, Rob: [00:09:04] There was a Mac thing. Jon: [00:09:06] I watched it, I didn't get the tattoo... So now we got to do stuff for ARM. We got to do some ARM stuff, so that's Rob: [00:09:16] like arm templates, like Azure templates as your resource minute. Jon: [00:09:21] ARM chips. Yeah. a thing now. Kevin: [00:09:25] Silicon, Jon, Jon: [00:09:26] Oh, that's right. That's Rob: [00:09:27] Yeah, no, I was just Kevin: [00:09:30] excited for this? Jon: [00:09:32] Yeah. I who me? Rob: [00:09:34] no, Jon: [00:09:35] Everyone's excited. I guess it's better battery life, right? That's a good thing. Kevin: [00:09:41] Yeah, we don't know that. That's the big question. We don't know what it means aside from the fact that it's going to be screaming fast. Jon: [00:09:48] True. So, so there there's been a windows windows on arm thing for a while, but you know, I kind of generally follow along, but I don't know how much stuff works on it. And people are like, you know, getting things, working on it, with, with the Mac, the Apple Silicon, they have Rosetta, which kind of does some cross compiling thing, which seems pretty smart. so that I do know from the. Vs Mac team. That's the at least original plan is like, make sure everything works with that. Right. So you have to get the dev kit, which is basically a Mac mini and, you know, with the new Silicon and you test on that. But, yeah, Rob: [00:10:28] you Kevin: [00:10:28] I wouldn't, I would ask you if you guys are using those, but I don't think you're allowed to say so. Jon: [00:10:33] using the Mac minis or the D Kevin: [00:10:35] the dev kits, the Jon: [00:10:37] So I'm personally, I'm not on the, I'm not an engineer, so I'm, I'm not, I don't have one. Maybe I could talk someone into getting me one at one point at some point, but they're like, I think they're about a thousand bucks. Kevin: [00:10:50] No, the 500 bucks, Jon: [00:10:52] Alright. Yeah. I'll Kevin: [00:10:53] you don't get to keep it. You gotta send it back. Jon: [00:10:55] Oh, that sucks. Yeah. Yeah. Rob: [00:10:58] know, I was just telling, for those out there listening, I was just telling Kevin and Jon that right now, my computer hasn't slept. actually like, you know, when he closed the lid, like your computer goes to sleep. I use a Mac book pro 16 inch. My computer hasn't slept in two weeks, because where every time we would try and wait for him sleep, it would kernel panic and it's akin to the blue screen of death in windows. And I kind of got tired of, I need to force reboot my machine every time I opened the damn lid. So right. Come to find out this is a deal. It's a software glitch as opposed to a hardware one, which is good. And so there's good news and bad news here. You know, the good news is Apple engineering is pretty good about dealing with things. The bad news is sometimes it takes a while for the update to roll out. And so, as I was preparing to go ahead Jon: [00:11:45] Is it a, is it which year Macbook is it? Rob: [00:11:49] last year it was brand new. Jon: [00:11:51] Cause I got a 16, 2019 and I'm running Catalina, Rob: [00:11:56] Yeah. I don't know. I don't know. I don't know what the deal is. It apparently, apparently just kind of affects certain machines somewhere. But anyway, I just checked, as I was sitting here preparing, like to tell you all this story, I would look at the software update in the Control Yeah. You know, going through this like, Oh, this update, you know, includes bug fixes, whatever. So this is the 10.15.6 Update. And one of their bullet points is. That it fixes an issue where the computer name may change after installing a software update. I'm like, okay, I'm sorry, what year is this? What do we do at what? How is this possibly a bug? How are you going to change the name of my machine? No. Can you fix, can you just fix the thing where my machine will fricking blue screen? Oh my God. Anyway, computers, I don't know. I don't know what's going on. Kevin help. What's happening. Kevin: [00:12:50] I don't know, I'd be pretty pissed to that one. Is it, is it like you, because you're plugged into an external monitor or you're like have some weird peripherals or. Rob: [00:13:00] I have a feeling it's probably like a configuration that got going, which is yes, I have two external monitors and it's probably trying to reconcile something. And I was reading something on the forums where they're like, Oh, it's a threading issue. And there's a race condition deep inside the GPU, blah, blah, blah, blah. You know, it makes sense, I guess. Right. Cause. Computers are hard and then concurrency is triple hard. And so, right. So you Jon: [00:13:22] Yeah, but concurrency shouldn't rename your computer. Rob: [00:13:27] is what I know. Like Jon: [00:13:31] If something's renaming your computer, I guarantee it we're being renamed to the developer who worked on the bug fix. Rob: [00:13:40] Yeah, not to beat up on Apple team. I mean, they deserve to be beat up on it. I don't want to stand here and defend, but at the same time, Two weeks ago, I got this notice on my Windows machine. It says this build of windows is going to expire on July 31st. And I'm like, what can my operating system literally expire like near to this? Jon: [00:14:01] It goes bad, like, like cheese or eggs. Rob: [00:14:03] yeah. Like, like, like what does that mean? Expire and it's. So I had to ping some people internally, right. And like, Hey, so if I get this message. It's like, well, click on more info. What does it tell you?…

    Full show notes at the publisher

    Herding Code 241: The Freaky Friday macOS / Windows Switch Apr 16, 2020
    Show notes

    Episode 241 Recently Jon switched to developing on macOS, and Rob's been developing on Windows. It's time for the Freaky Friday edition! The guys compare notes, what they like, what's confusing, and what they've learned. Download / Listen: Herding Code 241: The Freaky Friday macOS / Windows Switch Links: HomebrewOhMyZSHGitHub CLIAZX.ms Transcript: Kevin: [00:00:08] Hello and welcome to Herding Code. This episode is being recorded on eight April, April 3rd. Is that right? 2028 or is it still March? I feel like it's still March. Rob: [00:00:19] Kevin. That was smooth, man. You should do this for a living. Kevin: [00:00:24] And I am joined today by, smart ass, Rob Conery and, and Jon Galloway. Jon: [00:00:30] Hello. Kevin: [00:00:31] Okay. And we are here today to talk about, transitioning between Mac and Windows. Jon recently made a, a life change and, is doing more work on the Mac side and Rob has, recently transitioned over, do more Windows stuff. So we thought it'd be fun to talk about how those switches went. Jon wanted, why don't you, sorry, go ahead. Jon: [00:00:51] we're calling this, this is the freaky Friday edition. Kevin: [00:00:54] right. Rob and Jon have switched over. Jon: [00:00:56] Over. On a Friday. Yes. Yup. Yeah. So I recently switched to , I'm working, I'm working with the VS for Mac team. I'm kinda like, I'm like, so it's a little bit less, I don't know. So my, my role really is just like dotnet dev on a Mac. So, but you know, mostly looking at, Visual Studio for Mac. Yeah. So that's been fun. I've been doing most of my dev work on, on Mac for the past several months, and, and, yeah. Kevin: [00:01:25] So for people who don't know, like what is, what is Visual Studio for Mac, like what, what's the kind of the backstory there. Jon: [00:01:33] Yeah. Well, so this is confusing, right? So there is Visual Studio for Windows that's been around since it was, I dunno, Interdev or whatever. They'll, you know what I mean? It's like early, late nineties, early two thousands, whatever. It's been around quite a long time. Then, there was. There was Mono, there was Mono Develop, and then Mono became Xamarin and they had Xamarin studio and it was really focused on building Xamarin products. And then with the acquisition of, of Xamarin by Microsoft, and then they've kind of productized it into Visual Studio and some of the, you know, like over time. Mono develop Mono is change. Like, so originally it was this cross platform, it was all GTK. It was, There's some tradeoffs to doing that, you know, like in being fully open source cross platform thing too. Like there's not the same kind of quality stability kind of things that you can get out of Visual Studio for Windows. So that's been a lot of the focus. And then the other. Visual studio is Visual Studio Code. And that confuses people. Like, cause we've done things where we'll do like a customer interview and it's like, okay, we're talking to a team that works on Visual Studio for Mac. And then we'll talk to them. And they're like, yeah, I'm on my Mac using Visual Studio Code and you know, and we're like, Oh, okay. Well, so, you know, and that's partly our fault. Like branding and naming is hard. but the idea is Visual Studio Code is like a lightweight editor. You know, it's quick startup. It doesn't, it doesn't have a whole lot of bells and whistles. which is fine for a lot of people that just want to type code and that code really fast. And then there are a bunch of extensions for it. And it's cross platform and open source. And then the idea is, you know, Visual Studio for Windows and Visual Studio for Mac. The idea is more of a. Integrated developer environment. So something where you're, you know, you're going to have more like project templates and scaffolding built in and, and you know, more debuggers and analyzers and, and, that kind of stuff. So, so that's kinda, you know, the difference between the two. Kevin: [00:03:43] Okay. So. Why don't you give us like the quick, you know, like what was the initial transition to being a, a, a real Mac user like for you? Like what were the, what were the, what was the pain points? What was frustrating? What'd you love. Rob: [00:03:59] It was. It was joyous to watch this go down on Twitter, I have to say. Jon: [00:04:04] Okay. Well, so let me give him my full Apple back story. I learned to, I learned to program on an Apple ][ in high school for summary. We had somebody that was a previous Apple exec. Like was part of the board of my school or whatever. And so we had all these Macs. So I was actually like the high school Mac geek and I was, I was doing all this, like I was way into HyperCard and I just loved all the Mac stuff. And then over time I went to college, I'm like, what's this Windows crap where you have to do Windows? And so whatever. I learned some Windows and you know, over time it's, it's, I've had like two brains to it because. There's undeniably like Apple hardware and most software is like the fit and finish is just beautiful and it all just works really well. And there's all, it's like just this one kind of. There's only, you know, one of them. So like they, they test it and make sure it's perfect and it works. And then Windows is kinda, yeah, it's been different. There's, you know, registries and I don't know, there's all kinds of stuff, but I got used to it. Right. So, and then kind of more recently I was looking at my Twitter history cause I was asking stuff about Homebrew and I was like, you know, I was, I would say at Microsoft when .NET Core first was becoming a thing. It was first K project K, and then it was DNX, and then it was, .NET Core, and now it's going back to just .NET. but anyhow, that part of the thing with that was it was cross platform. And so I, I, for a while traveled with two laptops everywhere. You know, I had a Windows laptop and a Mac book air, and I would, you know, pop it out and say like, here's my quick little demo, see it runs.NET core. And then I would put the laptop back away and go back to Windows. You know, I mean, we really like, it was air quotes worked on Mac, but it didn't, I don't know. We didn't really do much with it, you know, we just made sure it compiled and ran, but there was no like IDE for it or editor. And there wasn't much that you could really. You know, w the most, I would say most of Microsoft presenters when they said it runs on Mac, that's about all they do is like, okay, we're done. Rob: [00:06:19] yeah, the punchline, the forever punchline. Jon: [00:06:22] Right. And runs on a Mac. I did have one experience with that though. I was in Moscow speaking at a conference. I was actually doing a, I had like a little five minute, five or 10 minute thing in a keynote at a conference here, and I had my Windows machine and my Mac. And I spilled coffee. I was like sitting in my hotel room. I'm like, I am so ready for this. I've got all these demos ready and everything. I spilled coffee on my Windows machine. And it got into the keyboard and like I could very quickly like turned it upside down, put towels on and everything, and I'm like, okay, it's working fine, it's working fine. Going through, I start typing and I'm like, huh, the letter N isn't actually responding on my keyboard. And then slowly like there is liquid inside the keyboard. It's like slowly like other keys stop working, you know? And I am in full panic mode. Cause I actually had a tech check that afternoon in the keynote the next day and I'm in Moscow. Like, I don't know what to do, you know, and then I'm like, wait a minute, I bet I could do most of these demos on the Mac. And then I, I, I was like, wait a minute, this is an Azure demo. I can do this. I can, I can totally spin it. This is Docker. I can do that, you know? And I was like, I can do this entire thing on Mac. So. Yeah. So that was that. so anyhow, more recently, I, Kevin: [00:07:44] Jon Jon, do you realize that it was your subconscious that made you spill that coffee? Right? It was. Jon: [00:07:51] you should have seen the panic though. I was like, Oh, no, what are we gonna do? So, yeah, so I, I got this MacBook in September and I did the standard stuff. I've always done like I, so the first one I got was a loner and it was previously an intern had it. And I went through and did all the, you know, I got my old scripts, my, my Homebrew, and I did all my stuff and I just, you know, and then, and then I got the real nice one in January. And that was actually where Rob and I started having a conversation. Cause I. was like, do I even need Homebrew and do I need, what's, what's like, I've just always been doing stuff the same way and maybe there's, I don't even, you know, I'm not like a week-in, week-out Mac dev user. So I guess some of some of the stuff that was interesting to me is kind of figuring out the best way to install things. and I guess to answer your original question, what's the experience like? You know, honestly, it's, it's kind of weird, but I feel like operating systems have gotten a lot less different over time. Like, I don't really feel like I hopped back and forth between Windows and Mac regularly. I use my Windows machine every day to, I, I ran OBS on it and I use it for, for some, some conference calls and I try to keep up with Visual Studio for Windows and. And, I, you know, honestly, it's like, they both have like, you know, a quick launcher thing, you know, there's, there's, I use Alfred, but there's also whatever spotlight. And then on Windows you've got the Windows key to launch stuff, and they both have decent, like Windows now as a pretty good terminal. But the terminal experience is pretty good. I mean, there's little things like on the Mac, I miss. I missed the touch screen. I actually am one of the few people that uses touchscreen and my MacBook, I'm looking at it now, it has all these fingerprints on the screen from when I tried to touch it and move something. but yeah, I, I don't know, it's actually been less, a little less crazy than I thought. I don't have to edit the registry, so there's that. Kevin: [00:10:00] what about from like an application perspective? Are there things that you. you, you know, you use on the Mac that you really love or things that from Windows that you really miss. Jon: [00:10:11] It's taken me actually like doing dedicated development on the Mac to really dig into using the touch pad. the, all the things, the three finger swipes, the four finger swipes, the eight finger swipes, all those swipes. and things I really never kind of learned before, and I kind of finally get it. Like, that's, that's usable. That's nice. I like... What else do I like? the, I would say generally it, you know, it's, it's most of the time better. As far as, battery life, like I don't have to worry about battery life. When it was fresh and new, it was amazing. Then over time I slowly, I had to install, you know, some of the work stuff and, you know, then I'm running Docker on it and I've got syncing programs and stuff and it's not a, you know, and that eats away at, at some, but for the most part it's pretty darn amazing. I actually, I don't think I'm supposed to, but I like the touch bar. I'm in the fingerprint scanner thing. I like all that. I, I kind of find that pretty handy. I mean, Kevin: [00:11:14] Jon, you're killing your tread here, you know. Jon: [00:11:18] Well, so let me see what's frustrating to me. Some of the stuff is just muscle memory, like I don't know how to do something, and then I go look, Oh, you know, one thing is Windows I think is generally more stable. Like they move the cheese less often. So like if I don't know how to do something, I'll look something up and then it'll be like, and here's how you do it on a Mac, but it works on like Lion or it works on, you know, whatever. Like, you know. Like an old version and then like, Oh crap, what do I got to do? And then I find some long script and it's basically some like Unix hackers making something go, but then I don't know what all this bash stuff is doing. And then somebody else is like, just buy this app and it's $5 and so there's a little bit, whereas on Windows pretty much I can go and find some random StackOverflow question (marked as not a question) eight years ago, but it still has the answer and it still works. Rob: [00:12:16] You know, I think with Catalina and some of the latest OS updates, they have locked so much down in the name of security, I suppose. I mean, you know, I don't want to poo poo that, but at the same time, Whoa, you know what I was trying to use the other day is a Audacity and it's like, no, it was totally blocked. And I go to the developer's website like, yeah, sorry, can't use it on Catalina. I'm like, what? Kevin: [00:12:38] Really, you can't use Audacity at all? Rob: [00:12:42] You couldn't up until a month or two ago, I guess it Kevin: [00:12:45] Oh wow. Rob: [00:12:46] but what, what, this is an interesting thing to me is what Apple's trying to do is, you know, lock down, lock everything down just a little tighter now. And people Jon: [00:12:55] I mean, how is that different? Is that basically the Vista moment? Rob: [00:12:59] yeah, I know, right? That's what a lot of people have been saying. It's pretty funny. Jon: [00:13:04] Cause I mean that was, now, I don't know if they've done it better or worse, but part of the deal with Vista was like. It was a little heavy handed and it was, the UAC thing popped up all the time and it, and it was, yeah, and it didn't like remember things. I think that they over time, like with Windows 7, they got it better where it was like, don't elevate all the time. Or, or, you know, like be smarter about when to elevate. Kevin: [00:13:29] I found that with Catalina, like when I first installed it, there was always this like flurry of new popups and approved this and that, but in the steady state, I don't really see that stuff very much. Jon: [00:13:40] Okay. So, so I think that's actually a really big deal there. The steady state on either Mac or Windows is a lot less bad than the kind of time to time usage. So like for instance, I've, you know, I know people say like, Hey, I just stepped on my Windows VM and it's installing 90 updates and this sucks. You know? And, and actually I think that's gotten a lot better with Windows 10 but. I have the same thing. Like when I used to open up my Mac every two months and it would have a ton of updates and X codes updating and blah, blah, blah, you know, and, and, I've, I feel like UAC and the Catalina elevation stuff is the same where it's like, first install, this sucks. I hate it. And then after a few days, you're right, you've got everything installed and you don't have to worry so much. One thing we gotta dig into this Homebrew thing. Cause Rob really kind of pointed me to some of the big benefits I was thinking of. Homebrew is basically like, it's another Chocolatey. and Chocolatey's cool but it doesn't work quite as well for things that auto update. and you know what I mean? They're not like kept in sync. And then I F I find like a lot of stuff when I would search for the installers on, on the Mac, it would, there would be like a big bootstrap blue dow…

    Full show notes at the publisher

    Herding Code 240: Phil Haack on Working from Home Mar 25, 2020
    Show notes

    Episode 240 Download / Listen: Herding Code 240: Phil Haack on Working from Home Jon, Kevin, and Rob talk to Phil Haack about working from home. Links: How To Work From HomeHow to Lead From HomeGeographically Distributed Teams When Remote Work Goes WrongHerding Code Podcast on Twitter: "We're going to be talking to @haacked today about working from home. Questions or comments for him?" / TwitterAmazon.com : TRX ALL-IN-ONE Suspension Training: Bodyweight Resistance System | Full Body Workouts for Home, Travel, and Outdoors | Build Muscle, Burn Fat, Improve Cardio | Free Workouts Included : Home Gyms : Sports & OutdoorsWork in the Time of Corona – Alice GoldfussBe This Manager Now - Nicole Sanchez - MediumHerding Code 63: Victory in Software Development with K Scott Allen – Herding Code Transcript: Note: We're new at this. Should we publish an SRT file? WEBVTT? Jon: [00:00:00] Welcome to Herding Code. This episode is being recorded March 24 2020. This is Jon Galloway. Kevin: [00:00:16] This is Kevin Dente. Rob: [00:00:17] This is Rob Conery. Jon: [00:00:19] Hey, and today we're talking to Phil Haack working from home. So before we jump into that, Scott Allen, when one of our hosts passed away in January, and I, I'm sure most of our listeners have probably already seen that. But, you know, I don't even know what to say. K Scott was an amazing friend, and, we were just so lucky to have him on the show for so many years. Some, some people recommended one of their favorite episodes was episode 63. Rob, I think you brought that one up. That was Victory in Software Development. Rob: [00:00:52] Oh man that was amazing. Jon: [00:00:54] And he was telling the story of the battle of Antietam and, man, I could listen to that show over and over. You know, yeah. Rob: [00:01:02] One thing I was trying to explain to my wife. Cause she, when I told her the news, she, she was like, Oh, right. You knew him. And I started to explain, what, what case Scott was, to me and to everyone. I mean, I've never known anyone with such an insane gift for telling a story. And, and just being affable, and kind. Anyway, I started to tell her about just him and she's like, oh right. We, we met him and went hiking with him in Oslo, and I totally forgot, but it was so cool because it just, all of a sudden, the memory of, of hiking with him, this last June, NDC, Oslo, was just kind of the spur of the moment that he was running downstairs. He and Richard Campbell were going on a hike and they're like, Hey, come with us. And I said, Oh, sure. And that was the last time I ever saw him. And. I can't say enough what a great person. he was, and I, I really, I think we're all the better for knowing him for sure as an industry, but also as people. Jon: [00:02:02] Yeah, I just, looking on Twitter, you know, I always of him as one of my best friends, and he always took time, you know, like when we're at, at a conference or whatever, he'd say like, Hey, Jon, let's, you know, let's go grab a bite and we're just whatever, and we'd just go hang out. And, It was Phil: [00:02:18] Yeah Jon: [00:02:19] seeing how he was very intentional about doing that with so many people, you know, like just everyone kind of sharing their stories about, you know, including people that were like, I him a question at a conference and it was kind of a random question and he spent a lot of time just talking it through with me and you know, like it just, yeah, just so thoughtful and kind. Phil: [00:02:40] Okay Yeah. I really loved talking to him at conferences. I'd only see him in places like London or, or, you know. Oslo or wherever at conferences. Jon, you might remember that, you mean Atwood and, Barnett wrote a book with, Scott Allen a long time ago Jon: [00:02:58] Yeah. Yep. Phil: [00:02:59] The ASP.NET 2.0 anthology And I don't mean the MVC I mean like Jon: [00:03:06] 2.0 Yup Phil: [00:03:11] Yeah, that's right. Jon: [00:03:14] Oh man. Yeah. I actually co-wrote several, cause I picked up that, the MVC book, the five heads book, Rob, that you worked on. And then I, you know, K Scott stayed on for several additions of that and I co-wrote with him. So, Phil: [00:03:26] Okay Jon: [00:03:27] and you know, it was always like I was, I for some reason signed myself up as lead author and I was always chasing down other coauthors and K Scott is like, I always knew that his was just going to be like. You know, on time and perfect. And it's nothing to worry about. Phil: [00:03:43] Yup. Jon: [00:03:44] Yeah. Oh, man. Well, so, Phil: [00:03:49] On that note. Jon: [00:03:50] yeah. Yeah. Well, so these are, these are times. We're all, we're all bunkered down from, from this coronavirus and, You know, people have been talking about working from home. you know, Microsoft has sent everybody home. A lot of other large companies have. and then after that, a lot, a lot of States have gone into and different countries to have gone into some sort of lockdown as well. so we've got, all of us have worked remotely, for a good chunk of our careers. And so Phil: [00:04:22] Okay Jon: [00:04:23] it's been interesting seeing people trying to adapt to it in different, different companies and stuff. So Phil, you wrote a series of blog posts about how to work from home. so for people that don't know you, which is probably nobody, but for people that don't know, what's kind of your background on, how did you transition into working from home. Phil: [00:04:41] Oh, that's a great question. So probably the first time I did a work from home significantly with a long time ago when I started a company with a friend, and Jon, you might remember this, called VelocIT that we hired, Jon was our first employee. And we all work together using the state of the art of collaboration software back then, groove, by Ray Ozzie. Jon: [00:05:05] that's right. Phil: [00:05:07] yeah. And, and then we would use a, I forget what the video conference software, but like, we actually, you know, cobbled together.. Jon: [00:05:15] amount Phil: [00:05:16] Yeah, that's right. It's Skype was around. Then we use Skype and I think we use subversion for the version control. And, you know, we made it work. We did a pretty good job as a remote distributed company, but we were only like, you know, three, four employees, you know, at the time. And then I remember we hired a, Steve Harmon came on and, and, so Simone, but anyways, and then, you know, I went after that, I joined. Microsoft, and that was, you know, right back into being in the office all the time. AI did have this one, coworker who was remote, Scott Hanselman, who, you know, we would try to set up a computer in my office so that he could just dial in at any time and be like a talking head there. Rob: [00:06:01] Okay Phil: [00:06:02] But it was really interesting to, you know, like when I think about those times and how difficult. it must've been for him to be a remote employee in a company that just really didn't get it. And you could tell they didn't get it because their products didn't reflect, what it meant to be remote work. so I left Microsoft after about four years and I joined GitHub and the GitHub was, you know, just night and day, right? This is a company that really. Started off as sort of a remote distributed company. It had it in its DNA and its tools really reflected that as well. In fact, they were really geared towards, you know, teams of open source developers who were all strewn about all over the world, didn't know each other. And I worked there for just shy of seven years. I was started off as a developer. And then, this is at a time when GitHub, didn't even have managers. And then later when they introduced managers, I became a manager and then I became a director. So I've had the, you know, I guess good fortune to kind of experience what it's like to be in a remote and distributed company from a individual contributor, perspective, from a management perspective and from a director perspective. Jon: [00:07:14] Yeah. It's interesting you mentioned the, you know, Microsoft, and initially when I started at Microsoft as well, you could really tell so many things required VPN in and any, you know, you want to, would say like, Hey, you know. You want to join our, dog, you know, you want to beta our thing, you know, here's where to sign up. And it would be an to an internal SharePoint and you wouldn't have to join a security group. And you know, everything was file shares and it was just not, and it's been interesting watching, you know, a transition of that over time. It definitely, it's, it's still not perfect, but it's changed a bit. And I feel like some of that is due to the open source. You know, the needs of open source, kind of pushing things. Kevin: [00:07:58] . It was good. They had always seemed like Okay Hanselman made Phil: [00:08:00] Yeah Kevin: [00:08:01] through sort of force of will. Like he was able to like it and have, you know, impose that onto the company through his own, just sheer, you know, energy. is that, is that accurate and how has that changed over time? Jon: [00:08:15] . It definitely, from my point of view, it definitely always took some effort to kind of like, there'd be a meeting and then you'd say like, Hey, can you add a team's invite? And you bug people enough? And they're like, finally, like, sure, I'll get you off my back, you know? But, or like, . Rob: [00:08:31] I remember talking to Scott about this back in 2006 because that's when, that's when I started. So I remember right, Scott Scott started there. I was contracting for awhile. Then Phil started and then I think I got full time like right after, right after Phil got in there and yeah, cause Phil and I went to a dude, we got to kneel together. Phil: [00:08:51] I think, I don't remember if we went to near together, but I do remember that you started not, not long after because you were working on, helper methods for ASP.NET MVC. Rob: [00:08:59] That's right. But I do I remember I remember Scott talking to me about, about the importance of you know, making sure that, you know, here's all the checklists and things you have to do. Make sure they know you're there. in the hallways when you're Phil: [00:09:14] it was, I Yeah Rob: [00:09:15] it being a really big deal. And, And every time I'd go back to, cause I would go back every other month for about a week. time I to Redmond, I'd have the conversation with somebody, either my manager or something like, so Rob, uh, you thinking about maybe moving to Redmond and I, you know, I just kind of laugh it off and say, you know, we're not, of good where we're living. Cause at the time we were living in Hawaii and, So this, this, finally, the conversation stopped one day because I was at a cafe. I think it was building 53. I can't remember, but I was sitting there and my boss, came and sat kind of at this Phil: [00:09:51] okay Rob: [00:09:51] with me. Phil: [00:09:52] Okay Rob: [00:09:52] then next thing I know, here comes Brad Abrams, who is like a, I think he was a Phil: [00:09:56] Okay Rob: [00:09:56] at that time. And then Scott goo came and sat right next to me and he's sitting there looking at me. He's like, so, Whoa. So Rob, like, Oh boy. Here we go, here we Phil: [00:10:07] That's a great impression. Yeah. Rob: [00:10:08] feel, you know these, you know these meetings, right? Like Phil: [00:10:11] Hey, Rob. Rob: [00:10:11] at you like. There you go. So, yeah, you know, I was thinking, we could really use you on campus here. What do you think about, you know, maybe in the future, your future here with the company? I'm like, Oh, the full press, you know? Jon: [00:10:23] Whoa Rob: [00:10:23] just kind of looked at him and I said, you do know where I live, right? And kind of looked around the table. I'm like, you guys, come on. Seriously, I'm not, I'm not, I'm not moving here. I'm sorry. Phil: [00:10:35] Hard to balance those. Rob: [00:10:37] Yeah. Anyway, Phil: [00:10:37] Yeah Rob: [00:10:38] laughed. It was pretty funny. But yeah, it's, it was kind of a big deal back then because if you weren't in the you pretty much weren't there. And like Scott would is you have to demand that they put you on speaker or make sure you're there and you have to speak up during the meeting and say, I'm here, I'm still here. You know? Phil: [00:10:55] Yeah. I think the rise of it, there's two kind of big factors that I see both one's cultural and one's technical on the technical side. if you know who Ben Thompson is, he writes this newsletter called stratechery.com or strategery at an, I pronounce it, but, he had a really great post and is really focused on the way information is disseminated in the midst of the Corona pandemic and like, how. we're getting good information from social networks compared to what, you know, the news is given out. But, by analogy, he went into this whole digression about a zero trust information as an analogy to zero trust networking and zero trust networking. You know, like back in the old day that Microsoft, you had this sort of castle and the moat, right? The castle was protected by the great firewall of Microsoft. And then once you're in through a VPN, you had access to everything. and that's a castle and moat model, right? You build a big S, Oh, excuse me, a big old castle. Big old motor rounding Jon: [00:11:53] We prefer the, the Queen's English a big arse. Phil: [00:11:56] and arse. Yeah. So big arse castle and my, yeah. And then, you know, especially we're talking about castles, but a, what we've moved to is, you know, sort of zero trust networking, right. Where you secure. everything like, the, every user has sort of the username and password for each service. And you might use a single sign on to make that easier, but you know, you're validating credentials at every point in the thing. And so, that made it so that like, you don't need a VPN and working. Style, such as working on GitHub is a really good example of that, right? So like, you know, we can all work on out, we don't need a VPN in. And I think that kind of points to the cultural change, which is, as Microsoft started to embrace open source more. and they started to have people actually work on open source. And thus they're working with people who are outside their firewall. And you can't tell these folks, Hey, you know, you need to, we need to find a way to give you guests access to our VPN so that we can collaborate in a software. No. Microsoft was like, okay, well we're going to go to where all the developers are. I mean, it took them a while to reach that conclusion, but they eventually got to the point where like, okay, we'll just go to get up and work on GitHub, because that's where all the open source developers live and breathe every single day. And I think that's a big cultural change because then, you know, a group of you being in Redmond. isn't necessarily this big as big an advantage. but there is a whole other cultural element of, that I think, you know, Hanselman had to really fight against, which is. You know, if you have a meeting, and I write about this in my blog series, if you have a meeting in person, you're, you're, you're excluding the people who aren't there. Right. And, if one of you is remote, you know, I recommend for teams to protect, to behave like everyone's remote. And everyone calls in to the zoom chat. which is actually a better experience. Like if you've ever been in a meeting where a group of you…

    Full show notes at the publisher

    Herding Code 239: Jerome Laban on Uno Platform Sep 10, 2019
    Show notes

    Episode 239

    Download / Listen: Herding Code 239: Jerome Laban on Uno Platform

    At Xamarin Developer Summit, Jon talks with Jerome Laban about building applications that run everywhere using the Uno Platform.

    • (00:20) Jerome explains that the Uno Platform is XAML and C# for iOS, Android and WebAssembly using WinUI XAML. On iOS and Android, it's running on Xamarin.
    • (01:25) Jerome tells the history of the platform, and how they've been working on the platform for six years. When the team at nventive saw WebAssembly support coming, they ported their existing framework to run there, too.
    • (02:55) The Uno Platform is free and open source; nventive is a service agency that offers development and support for the platform. Jon asks for more information about nventive. It started as a training and general development company, then did Windows Phone, Windows 8 and Windows 10 applications. When Windows Phone went away, they moved their focus to Xamarin development, predating Xamarin Forms. They believe the strucucture of Uno and UWP is often a better approach for them than Xamarin Forms.
    • (04:55) Jon asks for the relationship between Uno and Xamarin Forms. Jerome explains that they're generally at the same layer. However, since Uno implements the UWP contract, anything that targets the UWP contract can run on Uno. Xamarin Forms has a part that implements that contract to run on Windows. So... a Xamarin Forms can run on WebAssembly using Uno. You can run Uno components in a Xamarin app, since Uno components are actually Xamarin classic components. You can also run Xamarin components in an Uno application.
    • (07:00) Jon asks how the XAML front end is run in the browser. Jerome says that Uno renders the XAML as HTML elements. If you view source, it's mostly div's. HTML is treated as a subsystem that's abstracted away.
    • (08:37) Jon asks about the Calculator application. The Uno team took the Microsoft open source calculator application, written in C++ and XAML, and got it to run on Uno. Jon was very impressed to bring it up on his phone's browser. Jerome says that works on Android in the browser, and there are also Android and iOS applications.
    • (09:35) Jon asks how they ported Calc to Uno. Jerome said that the tricky part was to pinvoke into C and C++ from a WebAssembly module - Jerome had to add that support and submitted the pull request to Mono. There are three parts - a calculation that dates back to 1999 / Windows 3 that is all C and C++ code that they didn't change; the rest is C++ 11 code which they translated to C# using regular expressions. The XAML and resources are the same.
    • (12:20) The Calculator is in published in 65 languages, so they are getting bug reports in 65 languages. There's good accessibility support, so for instance you can enable voiceover in the mobile application.
    • (13:10) Jon asks how to build an application for Uno Platform. Jerome explains the File / New Project process using the extension.
    • (13:55) Jon asks about deployment. For iOS and Android, the output is the same as any Xamarin project; it's just a standard UWP application, and for WebAssembly it currently tags along with the Blazor tooling.
    • (15:00) Jon asks about other getting started information. Jerome runs through several, and points to the GitHub repo for more links.
    • (16:20) Jon wraps up with a callout to UnoConf on September 19-20, as well as plans for a 2020 UnoConf in the works.

    Links:

    • https://platform.uno/
    • https://github.com/unoplatform/calculator
    • https://unoconf.com/

    Herding Code 238: Martin Beeby on AWS for .NET Developers Jun 24, 2019
    Show notes

    Episode 238

    Download / Listen: Herding Code 238: Martin Beeby on AWS for .NET Developers

    At DevSum Stockholm, Jon talks with Martin Beeby about .NET development on AWS.

    • (00:20) The guys reminisce about Martin’s awesome blog post, Client Requests Through the Years.
    • (03:30) Martin walks us through his career, which includes early adoption of .NET, stepping away for a bit to pursue Node and Java development, and returning to the .NET fold in his current role as a Developer Evangelist focused on .NET for AWS.
    • (08:00) Martin shares to how other developers are returning to .NET and the freshness in the community. .NET developers are progressive with AWS and large systems.
    • (10:40) Martin speaks to his evangelism roles with Microsoft, Oracle and now AWS. Spoiler alert. It’s not just standing at a booth, but real-world storytelling of customer use cases and encouraging platform adoption.
    • (13:15) Jon and Martin talk about the intersection of AWS and .NET development in which AWS is the original cloud hosting option so there are highly skilled, highly progressive .NET shops along with AWS experts that are new to .NET, and .NET developers who are completely new to AWS and cloud computing.
    • (16:35) Jon asks about the fastest way for a .NET developer to get up and running on AWS. Martin talks to the AWS SDK for .NET and AWS Toolkit for Visual Studio, which is an extension that features the AWS Explorer.
    • (18:40) Martin explores AWS deployment options including CLI scripting, AWS CloudFormation Templates, Cloud Development Kit, AWS extensions for CI/CD tools like Jenkins, AWS’s own suite of CI/CD tooling and even Powershell.
    • (20:35) Jon asks about AWS Lambda. Martin touches upon other hosting options including Elastic Beanstalk and containers and then digs into serverless.
    • (22:35) Martin shares how one can spin up a full-blown application which leverages serverless infrastructure using AWS Visual Studio Tools. It’s something along the lines of AWS Visual Studio Tools > File > New > AWS Lambda and Sample Projects > ASP.NET Core Project, which creates an MVC website with Lambda entry point and provisioned API Gateway, which provides complete MVC sample application hosted in AWS.
    • (25:40) Martin drives home the message that when AWS Lambda isn’t being used, you aren’t paying anything. You only pay for the compute time you consume. Jon speaks to massive scaling and “micro scaling” in the cloud.
    • (27:15) Martin talks further about low cost and low scale with functions as well as statically hosting websites which use serverless for auth and lambda processing. Martin walks through the specific use case of Comic Relief, which benefited greatly (93% cost savings) from serverless hosting.
    • (29:50) Martin speaks to AWS Amplify and there’s more discussion of scalability, burstability, and agility.
    • (31:00) Martin wraps up the chat sharing how functions allow developers to mix-and-match languages, which promotes using the right tool for the job. For example, audio manipulation using Python, when the rest of the application may be written in C#.
    • (33:00) Explore AWS and .NET on AWS.
    • (33:30) Read more from The Beebs.

    Thanks to Ben Griswold for writing up the show notes!


    Herding Code 237: Tess Ferrandez on Three Real World Machine Learning Projects Jun 17, 2019
    Show notes

    Episode 237

    Download / Listen: Herding Code 237: Tess Ferrandez on Three Real World Machine Learning Projects

    At DevSum Stockholm, Jon talks with Tess Ferrandez about some machine learning applications she's worked on recently, from sports to shoplifting to cancer detection. Tess talks about the specific ethical considerations that come up when classifying and predicting behavior, and how they worked with them in these real-life examples.

    Topics:

    • (00:20) Tess has been working on some applied machine learning projects with large customers lately, all focused on computer vision. One project detects soccer goals using computer vision (saving money over hardware based solutions), another detects cancer in microscopy slides, and the third detects shoplifting patterns to minimize
    • (02:55) Tess has been doing this work in Python rather than .NET. Jon asks if it's possible to use ML.NET, but Tess says Python is necessary, both because the language is better suited and the community libraries are all in Python.
    • (04:35) Jon asks Tess about her experiences moving from .NET to Python, and Tess says it's a struggle since it's not strongly typed. You can use testing on the parts that handle data, but not on the machine learning parts.
    • (05:40) Jon asks how much of Tess' work is done using Jupyter Notebooks. For data exploration, Jypyter works great, but for the actual execution you'll want to use scripts so it's testable.
    • (07:00) Jon asks more about how you can detect shoplifting behavior, since it's an activity that happens over time. Tess says it's also difficult because the prediction may be biased against a demographic, e.g. 20-40 year old men.
    • (07:54) Tess say ethics and machine learning are close to causing the third machine winter, and goes on to describe the previous two machine winters. We now have the machines and the data, but often the data is so unfair that it could lead to severe ripple effects. This can cause bias in predicting behavior racially, biasing against things like medical analysis due to sample source, etc.
    • (11:30) Jon and Tess discuss the dangers of creating bad feedback loops. Tess talks about an example where Amazon created a system to review CV's which was biased against women because historically women have had fewer software engineering positions, so this system would have reinforced that by preventing women from getting software engineering positions in the future.
    • (13:35) There's also a danger of classifying people based on pictures, since we may assume the computer is unbiased even though the bias may have been introduced due to the sample data. Classifying based in pictures would imply that either people were born criminals or criminality changes their appearance, neither of which are acceptable assumptions.
    • (16:09) Going back to the shoplifting case, we need to make sure we're detecting the action of shoplifting rather than classifying the individual's appearance. For instance, detecting poses, whether the individual was alone. Pre-trained models for things like object and activities help. There are also subtle sources of bias, for instance if all the source videos are from Christmas, the model may be biased against Santa Claus, so you also need to use pre-trained models for background subtraction.
    • (18:13) Jon asks how important it is to be able to understand how the decisions were made. Tess says it depends based on the impact of the decision, and explains how in the case of cancer detection they determined that color differentiation could be used as a predictor, so the actual application didn't require machine learning. In the case of football goal detection, there was such a large amount of data (time, video, and sound), it was possible to get very good results.
    • (21:26) Jon asks how developers can learn more. Tess says that software engineers don't need to start with math - you can use pre-trained models and go from there. She recommends a book called Deep Learning with Python by Francois Chollet - it's very approachable. Tess also recommends the Machine Learning at Microsoft YouTube channel.

    1 2 3 25 Next

    Related Podcasts

    Inside Strategic Coach: Connecting Entrepreneurs With What Really Matters

    1

    Inside Strategic Coach: Connecting Entrepreneurs With What Really Matters Business
    WSJ Your Money Briefing

    2

    WSJ Your Money Briefing Business
    FORTUNE Unfiltered with Aaron Task

    3

    FORTUNE Unfiltered with Aaron Task Business
    FORTUNE OnStage Presents: The Most Powerful Women

    4

    FORTUNE OnStage Presents: The Most Powerful Women Business
    Slate Money

    5

    Slate Money Business
    In The Dark – The New Yorker

    6

    In The Dark – The New Yorker Business News
    footer-logo

    Contact Us

    Toll Free: 844-670-7747

    Links

    • Home
    • Top Charts
    • Networks
    • Apps
    • Independents Podcasts
    • Podcast Advertising
    • Podcast News
    • Contact Us
    • About Us
    • Analytics & Insights

    Stay Connected

      Privacy, Terms of Use & Our Code of Ethics Protecting Content Creators Copyrights