Herding Code 242: The COVID Cabin Fever

Does time still exist? Maybe! The Kevin, Rob, and Jon chat about some of the top concerns of our current time:

  • Sourdough bread
  • WordPress and PHP
  • No Code development
  • Knock knock jokes

Download / Listen: Herding Code 242: The COVID Cabin Fever


  • https://github.com/nushell/nushell
  • https://jeffsternberg.com/2020/03/11/beyond-spreadsheets/


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? And so I click on more info and it leads me to a 404 page, like, Oh, okay.

Jon: [00:14:23] So my solution to this is always run the latest of everything,

Rob: [00:14:27] Oh, I tried it. So the funny thing is, and this is the best part of the whole story. So internally we have, you know, we have tech support and I.T. And whatever. So I like pinging these people and it’s amazing the level of support we have internal, which is lovely. And so I pinged a person over teams and I said, here’s the problem?

And they said, do you mind if I come in and take a look at your machine? And I said, of course, you know, so he, we start sharing screens, right? He comes in and starts going to the control panel and like, Oh no, you’re not. He goes to control panel and then, you know, windows update and like, don’t please don’t do that.

Cause I had just checked windows update. Right. I literally just checked the updater and there was nothing there. He goes in there and he checks the update and sure enough, there’s an update. And he said, what do you think if we apply this update and restart your machine. And then of course that that’s solved the entire problem

Jon: [00:15:18] fixed it. Good.

Kevin: [00:15:20] Well, so Rob, you just have to go get a job at Apple, get them to fix your Mac.

Rob: [00:15:24] I know, right.

Jon: [00:15:25] You can work at the Genius Bar.

Rob: [00:15:28] Oh my goodness. I am sorry. It’s a Friday. It’s like end of a long week. I’m a little bit fried and loopy. Yeah. Anyway.

Kevin: [00:15:37] I will say I have a, sorry. I was just say I have an older 15 inch MacBook pro and if there’s one thing that will kill it, it’s not, doesn’t happen all the time. But if there’s one thing that will kill it, it’s. Unplugging it from the external monitor, like, like 90% of the time when I, if it’s going to, if it’s going to die.

That’s what does it,

Rob: [00:15:55] Yeah, I think what is happening? Like, is it just like an energy loss or are there like little gremlins running around like, Oh my God, you know, like we have to wait for them to come back, you know, no gremlin left behind, what are you doing in there?

Jon: [00:16:05] I swear video, the three things that  all computers are terrible about video drivers printing. And I feel like USB hubs too. Like in general, like especially windows, my, my desktop machine. I’ve got like a few hubs. I have a thousand USB devices and windows does not like that.

Rob: [00:16:24] Wait, Jon,

Jon: [00:16:26] yes.

Rob: [00:16:26] still there,Jon. I think you’re on mute. I can’t hear you. I can’t, I can’t hear you. I’m sorry. What?

Jon: [00:16:33] I see a video monitor. It shows wave forms. I can tell you’re messing with me. Yeah. But seriously, like printers printers are still bad. I have a printer and you can. You can email to it. Like I don’t print, right. Cause I’m, you know, a nerd, but like my family wants to print things apparently. And like, I got this printer, an HP, you can at least email.

So I have a, an email address, which I’m tempted to say on the phone and people could be on the call and people could email my printer, but it is, it’s pretty neat, but everyone’s like, I don’t want to do that. You know?

Rob: [00:17:09] that’s like the 20, 20 version of a fax. Like I’ll just email you this document that your

Jon: [00:17:13] It’s true, but it is a good way to get people off my back. They’re like I have a report due. I can’t do it. I’m like just email it to the printer, like, okay. You

Rob: [00:17:22] Yeah, just email it to the printers. Then you just fax me. Oh my God. We’ve come so far. So far.

Jon: [00:17:31] And video devices. Let me tell you about video devices. Cause we’ve been doing stuff with like, because of the remote thing and my team, you know, working with community .NET things and we have this community standup show we do. And so we’re using OBS, but OBS is complicated. And then we have more and more shows splitting off from more and more people hosting, but we not, all of them have fancy computers and fast internet and know how to use OBS and stuff.

So, so then we’ve been messing with other things on top of that and we set up a virtual machine with, so that’s pretty crazy. We set up an Azure virtual machine and they have a VM SKU? They have a VM that you can get that has Nvidia like access to the Nvidia GPU. And for some reason they have like promotional pricing.

So it’s not very expensive. It’s like a buck an hour. and then you can hook it up. So that OBS is using the GPU and it’s like GPU accelerated, super nice and stuff, and actually works. But it’s, then it’s still like a. You need to go, you need to control access to this virtual machine and you have to like log in and apply updates and crap.

So we finally like we’ve settled on using some like services for that lately. We’ve been using StreamYard and Restream, and they have kind of like a web based based thing where you can kind of like we’re using Zencaster now for like, you know, you call into and it’s all on a webpage Restream and StreamYard are both very similar, but it’s like, You, your webcam shows up your, your microphone, your audio, like just are connected to it.

And it’s all like in a webpage and then you just click and you’d like add and remove people from the live feed and stuff. So,

Rob: [00:19:19] Yeah. You know, thing is I’ve, I’ve crawled really deeply into all of this stuff. I mean, I won’t say that I know anything about ops, sorry. Oh BS. But, so no, it’s one of the cool things that I started to do here at Microsoft is I’m working on the LearnTV backend. so I’m, I’m actually leading the engineering on that.

It’s really fun. I can’t believe. Yeah, I know. They asked me to do it. I’m like what you serious? Okay, sure.

Jon: [00:19:46] What does that mean? What is, what is this thing?

Rob: [00:19:50] LearnTV. Well, you know,

Jon: [00:19:53] well, I’m partly, I’m, I’m asking for, I’m pretending to be dumb, but I’m

Rob: [00:19:57] You giving me a toss here? That’s what the,


Jon: [00:20:00] the ideal dumb guy, because I actually I’m dumb.

Rob: [00:20:03] okay. No, so no LearnTV is a, it’s just the broadcasting from, from, Microsoft. And it’s kind of funny, you know, I feel like there’s still exploration happening. What are you trying to do with it? And I’m not going to try and be the spokesman for it. Yeah.

Cause they could probably get fired. However, the idea so far is like, you know, a friend, a friend of mine that I worked with here, I’m working on it. He said, I love to listen to Twitch just over my shoulder and it’s always running. And if I hear something interesting, I’ll stop what I’m doing and listen.

And so I tried to explain to a friend of mine that way, just the other day. And I said, you know, he listened to NPR or someone listened to music or whatever. You get tired of music, you turn on something else. And to have something just running in the background, That pertains to what you’re doing every single day.

it’s kinda neat, you know, you just kinda hear tidbits of things. And, and so anyway, LearnTV is, is sorta trying to be that and a little bit more. And so, they’re trying to bang it into shape, but for right now, we’re trying to do the next rev of it. So they’ve asked me to step in and help out. So I am, and it’s kind of fun to step into the streaming world because wow.

Right. Wow. There’s so much happening out there. And, and to dig into all these things and I, I’m not even gonna pretend I know what’s going on. The person I’m working with, Eric st. Martin. He is, he is. He’s amazing. He, he. I guess built the Comcast, switcher, like for Comcast.

So yeah, like he designed and implemented it. Yeah. I know. It’s crazy when you work in like places like Microsoft or wherever, you know, like these big tech companies and you talk to the people you work with and they’re like, Oh yeah, you know, I.

Jon: [00:21:35] Yeah. I wrote that spec.

Rob: [00:21:37] I created Kubernetes. Yeah. I mean, that happened to me at build.

That happened to me, a build when someone said, Hey, you should have this person come talk about Kubernetes and like, well, who is he? And they’re like, well, he’s the guy that made it. I’m like, well, I mean, is he cool? Like hanging out at a Microsoft thing? And they’re like, dude, dude, he works. He works for us like, Oh, Oh,

Jon: [00:21:57] I know he spoke yesterday at, they did the .NET Conf Focus on Microservices and his talk was like super, I mean, it was just really low, key and fun.   I mean, I guess he’s probably spoken about microservices more than once, but his talk was just, it was like, it was just fun, you know?


Rob: [00:22:18] Yeah, no, it’s fun. And I don’t mean to sit here and gloat about all this stuff. It’s just to me, I’m like a kid in a candy shop. It’s really fun. So.

Jon: [00:22:26] Well, that’s

Rob: [00:22:27] blah, blah.

Jon: [00:22:28] So, so, yeah, the, the engineering for that’s gotta be pretty interesting. Huh?

Rob: [00:22:32] Yeah. Well, he does all the streaming stuff in the back end and I have no idea what’s going on with that. I’m more involved with other aspects of it, but, he’ll, he’ll tell me, like, he’ll pop into Slack and he’d be like, Hey, you know, here’s what we’re going to do. And, or here’s what I’m thinking of doing.

And I’m like, sure, whatever you think, man. That’s great. For those of you wondering, I just really want to quickly say this. we have clearance to do this open source, so we are going to make it open. And I’m not sure if I’m supposed to say that I might get in trouble for it, but well, that’s what we’re going to do.

Jon: [00:23:07] Awesome. It’s too bad. This isn’t live streamed itself. You could get fired, live on the podcast.

Rob: [00:23:14] Yes. That would probably be the feather in my cap that I need.

Jon: [00:23:20] Yeah, it’s pretty interesting. The whole like live and definitely this year with the. Remote staff, you know, I, some of my experience with this, I work with, with Hank Pullman on, work kind of behind the scenes, helping with the producing for Juneteenth cough. So we just, and it was really cool. Like we use streaming yard for it and it was like, just, you know, we’re the backend producer is Mike check people.

Okay. You’re set to go and boom and streaming harvest, like after having done OB acids. Great. But it’s definitely the. It’s like Photoshop level, there’s a million knobs and switches and you can, you can do that. Anything you want with it, but you it’s, it’s not, it’s, there’s a lot of like touch that button and the whole broadcast ends

Rob: [00:24:05] Yeah. If someone described it to me as the PHP of online broadcasting

Jon: [00:24:12] They’re like, you can do anything with it. It powers it’s everywhere and it’s, it works, but it’s yeah. So, and then it’s, it’s pretty cool seeing these services that kind of automate, you know. Yeah.

Rob: [00:24:26] Sorry. No, I just have to caveat that with this is something I heard Microsofts and official stance is not that it was just something I heard online and someone was talking about

Jon: [00:24:36] It’s and it’s, it’s also one of those things where probably like PHP, once you’ve learned it, it’s, it’s kind of a sunk cost Stockholm syndrome thing, but it’s like, now you like it. Cause you’ve put in all the work to learn it, you know? So

Rob: [00:24:50] and the fascinating thing about it is like PHP. And PHB applications. Like if you need to get streaming and online fast, boom, you’re up. You know what I mean? You’re like,

Jon: [00:24:59] Yep.

Rob: [00:25:00] anyway, Kevin, I’m sorry. You’re gonna say something.

Kevin: [00:25:01] I’m not sure I’ve ever heard it’s the PHP have ever intended as a compliment, however,

Jon: [00:25:09] But PHP is still all over the place on the web, you know, I mean, it’s, it powers a lot of forums powers, WordPress

Rob: [00:25:16] Well,

Jon: [00:25:16] Herding

Rob: [00:25:16] though. If you want to, if you want to get up and running and doing something quickly, I mean, there, there really is no alternative to PHP based applications. I mean, that’s my argument.

Jon: [00:25:28] Although get hub pages is pretty close.

Rob: [00:25:32] It’s getting there. That’s for sure.

Jon: [00:25:35] It’s interesting to seem. They’re kind of, you know, scooping things together now, like with, I don’t know, I mean, there’s get hub pages and there’s get hub actions and stuff like that. You really could cobble a lot of things together. I mean, I feel like that’s kind of something I’m seeing too lately is like the many platforms kind of bundled together.

I don’t know, partly I’m thinking about this because like, With work stuff. I, so I was mentioning, we do this is peanut community stand up. And then we’ve also helped with .NET foundation where you’re like, Hey, you guys have a bunch of meetups running around the world and if you want to livestream, here’s how, here’s the stuff we did.

You know, we can kind of share it over to you and you can, you know, run your meetups as live streams worldwide. You know, and all this stuff, there’s also like a good amount of it, admin, where it’s like, okay, someone needs a schedule show. That means you need to notify someone. That means you need to create a stream and you need to put it in, meetup and you know, all these steps and stuff.

So we’ve on our team. Been automating some things using Power Automate. It used to be called Microsoft Flow. And it’s a lot of, kind of plugging stuff together. So it’s like when you fill in a form, it adds a row into SharePoint and then it sends an email and then it puts a planner task and it assigns it to a person.

And then if the task is overdue, it sends in it, you know, and like all this stuff kind of like these blocks that you hook together. And before, before we started, you know, the podcast, Kevin was reminding me, that’s basically Yahoo pipes. so,

Rob: [00:27:11] Yeah. Yeah, that’s it. That’s the problem.

Jon: [00:27:16] but, but you really can do quite a bit, you know, the whole kind of no code thing. And there’s always, you know, like the, If This Then That (IFTTT), and there’s the, you know, like it is, it is interesting to be able to share, you know, and, and I feel like if you’re doing a bunch of stuff, hooking a bunch of. Like Microsoft officey sorta things together. This is better than a bunch of like power shell scripts, or I don’t know how else you’d do it, you know, just to kind of hook things together.

Rob: [00:27:46] is, you know, I was just having a big argument, not argument, but like a, a back and forth is the best way to put it with a friend of mine. About, about all of these things. Like, no. I’m not going to give away the context because it doesn’t really matter, but there are just like the, you know, this is like the best part of computing, you know, we can do serverless, we can do these Lambdas.

We can do, you know, like pushing like Netflix, talking about Netflix and pushing the JAMstack stuff and like, it’s great. I mean, I do agree. It’s great. And Kevin, I don’t know if you’re going to disagree with me on any of this or maybe you won’t, but there’s like, there’s. You get to a point where you’re like, ah, you know, I, the only the analogy I can come up with is like, wow, that ocean is beautiful.

I’m going to go swim in it. And then you get in and you realize that just under the surface is like this load of coral, not coral, but like a kelp. Right. And it’s like, you just wrapped around and kelp and you’re like, I can’t move. much stuff happening. And you know, and I’m like, Oh, and I just kind of went through this with a project I was working on like, wait, where’s that function and what is it doing?

Oh, well we have to upgrade the node version on that one. Cause that one’s going to expire, but these other ones. Okay. You know, like, Oh, God kills me.

Jon: [00:29:01] Yup. Well, and so this is kind of more the, like, as a service sort of thing, like it’s, it’s a more serverless applied to the serverless sort of idea, applied to business process automation, things, you know, that’s like.

Kevin: [00:29:17] Yeah, this is, this has been sort of a fascinating trend for me, cause like coming out of college, you know, 1,001 years ago, I, the first company I worked for was a, what was then known as BPM business process management company, which was essentially a no code, low code development platform, right?

So it was a graphical workflow model or where you would, you know, drag these blocks and connect them. And you could, you know, make decisions that kind of like model a data flow. And there were queues where people could connect and find work. And so like, you know, this, this is literally like old hat to me.

and then, you know, we had yellow pipes, which is sort of a very early version of that kind of thing. And then it all kind of, I don’t know, I don’t want to say it went backward, but it kind of went simpler with the, like, If This Then That (IFTTT) Zapier stuff where it was really literally like a, it was almost like a top to bottom script, but you were very limited in the flexibility.

And now, you know, now there’s this sort of Renaissance, not everybody would agree. It’s a Renaissance, but you know, this kind of, if you look at the like companies that are being funded startup, the company is being funded. There’s been this whole raft of these no code, low code platforms, which are basically like, you know, sort of graphical, you know, business application builders, where you can model workflows by connecting services together in a graphical way.

So, I mean, it’s one of those things where like, I’ve been kind of eyeing this space. I haven’t really looked that much yet the current offerings out there, but I’ve kind of always kept an eye on that because of my original background. And, you know, there there’s always. Have been problems with this kind of approach.

Right. You know, eventually things get so complicated and then you, you know, you don’t have

Jon: [00:31:05] how did they grow up?

Kevin: [00:31:06] diff and like, it’s, you do tend to hit some complexity walls. But, it is, I think it is an interesting space. And, you know, when you pile on like serverless stuff where you can like, basically run these applications for extremely cheaply on somebody else’s infrastructure, it’s, it’s an interesting thing.

And, you know, It’s there’s always been this sort of like, you know, there’s, there’s kind of like the Excel world, right. Where like, you know, which is, you know, programming for non-programmers basically. and then there’s yeah. Coding world. And this is in between, and it’s never, it’s, it’s always kind of struggled to like break through.

I feel like, like it doesn’t, it doesn’t break through all the way to the, to the. People who aren’t really coders. and, and you have the coders sort of looked down on it. So it has always been stuck in this little bit of a Valley, I feel like, but it’ll be interesting to see whether this iteration of it, you know, gets any legs.

Jon: [00:32:02] It’s a, you know, that whole kind of like the problem with a lot of this, like you’re saying, is it doesn’t, it’s not a smooth continuum. It’s kinda like you can work with, you know, Excel or you can work with like a block Walkley style programming, you get to a certain point and then it just gets like horrendous and then you basically have to rewrite to move. To something better, you know, or, I mean, in the past there was also an access, right. You know, or whatever, there’s these things where these businesses are, man, I worked on a project long time ago and it was moving basically moving a union union software. And so it was like, you know, relatively big schools and, you know, all kinds of government institutions and healthcare and they, and they were running there.

Ops and HR systems on Excel. And we moved them into a system that was managed. It was based on an open source HR system. and it horrendous because I wrote a lot of the data import stuff and it was these ridiculous SQL scripts, you know, to like, and, and I remember one, there was one thing where it was like, things were keyed on unique kid on first name, last name.

And so then everyone had multiple rows in this table and they just added ones and twos. And three is to the last names I had to de dupe all these, you know, like that kind of stuff. But, but, you know, I guess, I guess what you’re pointing out, Kevin is the whole, like, if there’s a way to move more smoothly between these worlds, that would be nice.

And one, one thing, actually that I saw on this just last night, Gene Kim shared this, a tweet is a blog post from Jeff Sternberg. And he’s talking about his he’s recommending that instead of using spreadsheets, like Excel to use Jupiter notebooks or something like it. And, and, you know, he talks about like, here’s all the limitations you run into when you run a business on Excel and something like Jupiter notebooks.

Can grow up better than that. I don’t know if Jupiter notebooks, I don’t feel like Jupiter notebooks is friendly or simple enough that to somebody that, you know what I mean, like a small business can jump into Excel and just start getting stuff done in a way that you can’t with Jupiter notebooks, but maybe that’s like the start of an idea, you know? like for instance, Google sheets too, like whatever, you know, how do you, how do you make Google sheets? Like show as code and move and go to the next thing, you know, I’m trying to think there have, it seems like there’ve been some things that do that better where you can, you can start, you can go to a certain level with the kind of easy, easy mode, and then you can say, show me my code and now I’ll extend it and change it over. And any thoughts? Now it’s, it’s a, it’s

Kevin: [00:35:08] I’m not thinking of it, but I mean, I know what you’re, I understand the concept of like, you know, like you need to get when you need to take it to the next level of sophistication. Like how do you do that without having to throw it away and start over physically?

Jon: [00:35:21] yeah, yeah.

Kevin: [00:35:22] And yeah, I think that, I definitely think there’s a there’s possibilities there.

I’m just not sure anybody’s cracked that. Not yet.

Rob: [00:35:30] I dunno, I just was having a really fun discussion with a friend of mine about WordPress. And so here’s my situation, right? So I’ve got literally 45 videos all based on imposter handbook stuff and interviewing and just blah, blah, blah, blah. Right. And, you know, these are some high value videos, at least to me.

And I think people can find value in these videos. And so my problem is I need a way to get these videos in front of people, you know? And so, you know, then, then your brain starts to explode. It’s like, what can you do? Right. And so I’ve gone all over the place. I’ve, I’ve checked out learning management platforms.

I’ve. You don’t like podia and teachable and I mean, you name it. I’ve gone there. Kajabi is another one I looked at. I mean, all of these are really, really cool. And you know, the whole time I’m trying to focus on what, what is it I’m trying to do? What’s the business angle here. What’s the payoff. And eventually, like, I always come down to like, like my thing is I want least friction between the person.

And the video. Right. And, and for some, I want to charge money because some of them are like five hours long. Right. So I charged for it, but I want to make it, I want to make it like, they feel good about it. And it’s just not like me being cheesy and whatever. And I just want to make it feel like a really good experience.

And so eventually I come down to the technology angle, what am I going to use? And then that’s where just everything explodes. You know, cause you roll your own. Right? And then we’re having these discussions, right? So, you know, you got to know analytics, you got to know all this other crap. You gotta know so many things about what’s happening.

How are you going to charge this person? How are you going to makes them feel like they didn’t get gypped off? You know, you want to send them an email based on their purchases and communicate with him. And it’s easy to see why. So when just goes with WordPress, because like with the installation, if you plugins you’re off and running.

A year from now, on the other hand, you know, you’re going to be pulling your hair out because things are broken and not working. So I don’t know. I think about this every time I have a discussion with somebody about, you know, technology and functionality, what should we do? Which even comes back to the discussions I’m having now internally about what we’re going to do with learning TV.

We’re not going to use WordPress by the way, but you know, But seriously, like I did post this to somebody on the team. Like if we just had a WordPress site where we could post videos every hour, talk to me, like literally a curl script, like you’re just going to post and redirect post redirect, talk to me about what’s better than that, you know?

And like, I think that level of grounding, and again, I know people out there are going to be like, Oh my God, Connor is an absolute idiot. However, however, like. I feel like WordPress has one great use in this world, which is to be the touchstone experience in terms of what people out in the internet, you know, or out in the world expect from technology, because they have managed to capture that, you know what I’m saying?

Like a business person or whomever has an idea. They can implement it in WordPress, probably within, I would say within a week and probably within three to five days. Or last three to five hours, if it’s simple enough,

Jon: [00:38:54] It’s like the Excel, it’s the Excel of the web, you know? I mean, like,

Kevin: [00:38:58] totally is.

Jon: [00:39:00] and, and some of the things like I’ve, I’ve kept and it’s been partly an experience just cause I want to learn and understand it, but we’ve had the Herding Code website running on WordPress since the beginning. And. Aside from the fact that PHP is a fascinating platform when you get hacked, because you can override things at some really interesting levels. Mmm But, but they have done a pretty good job with some things. One thing they continued to improve the upgrade. experience. So now it auto updates and it auto updates with like security features in a pretty good way. The, the extension model I feel like is pretty good. Like there’s some pretty good hooks.

And I wrote an extension. There was a problem where Feedburner could only like Feedburner would only accept a certain number of. A certain feed size and then it would just choke. And so I went in and modify it. I wrote an extension or WordPress, add an extension, whatever. Yeah. Call it. That would for the, the latest, like 50 posts, it would grab the entire thing.

And then for the, all the other ones in the history, I would just grab a truncated. You know, like truncate I’m at a hundred words or something. and I mean, it was like, it took a little time to like understand the model, but then I was like, Oh, this second actually pretty elegant, you know, it’s and they have a pretty good system for like versioning and marking, extensions, being tested with.

Certain updates, PHP itself, like is not a beautiful language to me, but like it’s, you’re not, you’re not writing PHP when you’re developing WordPress, you know?

Rob: [00:40:42] Yeah. Yeah. Yeah. I feel like, I feel like we’ve probably tuned, made a lot of people tune

Jon: [00:40:47] yeah.

Rob: [00:40:49] There’s a WordPress again.

Jon: [00:40:51] You know, Rob, when you’re doing, you’re talking about like WordPress that you’ve done, is it mostly just configuring sites or are you like extending and writing PHP stuff?

Rob: [00:41:03] Well, No, I have, I won’t, I mean, I w I shouldn’t say it like that. I only have, I only have so much left in my brain. Like, I feel like PHP, PHP is, is a universe, and a different way of thinking. And I think it’s interesting. I just, if I start down that path, I probably will get lost in the forest. So I,


Kevin: [00:41:25] will it dominate your destiny?

Rob: [00:41:27] Yes. Forever really dominate. Right. Exactly. Oh God. So no. So what I’m doing now is I’m just literally, I’m trying to come up with ways to put videos in front of people. So

Jon: [00:41:39] Yeah.

Rob: [00:41:40] you know, it’s, I’ve, I’ve gone with, I actually made a Nuxt app, you know, that. And it works. Okay. But then it’s, it’s interesting because like, I was able to get the functionality of this Nuxt app up and going fast, like, you know, next video and what are you watching?

And I’ve got, it was really beautiful. I mean, it came together really well, but then, but then it’s like, well, okay, cool. So we’ve got, we’ve got to, you know, a 0.01, you know, the next part is like, well, what are people watching? How often are they watching it? You know, and like what, what about an RSS feed?

What about, you know, like these Twitter cards, what about blah, blah, blah, like on and on and on you start to getting into marketing and like, Oh my God. And then you just realize, like, I don’t want to do any of this and then like search functionality. And what about like, having like maybe just a partial thing where someone can watch the first 20 seconds and then you turn it off like, Oh God spare me from this.

And then of course you go into WordPress. It’s like, Hey, here’s a plugin for Vimeo that only show the first 30 seconds lesser part of your membership site. Like, wait, how did you, how do you, Oh right. Cause you run half or third of the fricking internet. Of course you, you know, anyway.

Jon: [00:42:50] Yeah, that’s

Kevin: [00:42:50] orchard? Rob is orchard, still a thing.

Rob: [00:42:54] Oh,

Jon: [00:42:57] You know, it’s funny. I mean, orchard, orchard still plugging away.

Rob: [00:43:02] Oh.

Jon: [00:43:04] Well, so, but I mean, I don’t think orchard now orchard core. Is it all related to

Rob: [00:43:10] Oh, you said

Jon: [00:43:11] or treatment?

Rob: [00:43:12] you said plugin. So I had to,

Jon: [00:43:13] yes.

Rob: [00:43:14] So you did your own dad joke and didn’t even realize it. yeah, no, I, yeah. Yeah. I’m sure orchard would probably be a I’ll investigate that later. Thanks, Kevin.

Kevin: [00:43:26] Sure.

Rob: [00:43:28] I know Bertrand’s probably listening right now. Nevermind. I can’t swear. And can’t swear in French and I won’t bother cause like bothers him more if I try.

Jon: [00:43:39] Yeah, good stuff. Yeah. I mean, I guess that is part of the thing, like the whole plugin model is just pretty amazing, right? It’s like, that is a reason why WordPress works so well. And that’s the reason why a lot of languages get super popular. Like, you know, I don’t know. I’m just thinking around like NPM and, you know, I

Rob: [00:44:01] Well, you know, it’s funny you bring up WordPress to people and they’re like, Oh my God, it’s such a pile of stinking crap, which I’m not going to debate at the same time. You know, like a lot of people will say, Oh, it’s so insecure. You know, like it’s, it’s this structured really simple platform that is hackable, which it is it’s insecure because blah, blah, blah it’s.

So they. It’s interesting to me, they make the next logical leap, which is, will therefore PHP and WordPress, my suck, you know, and then my counter to that is, dude, this thing runs a third of the frickin web. Right. So yeah, I mean, It’s going to be under a, just crazy amount of attack. Right? So if .NET ran a third of the damn web, you could be, you could be guaranteed.

You will find every, a single hack possible to get into whatever platform you’re using. You know what I mean? And like, I mean, ah, I don’t want to go too off on that, but to me that’s important to

Jon: [00:44:57] Your surface

Rob: [00:44:57] that perspective. Yeah, not again, I sound like a total WordPress advocate right now. I’m not, I just, I look at this, like, I feel I like as technology people there’s there is a split brain kind of thing happening here where.

You know, we, as software people look have down on WordPress, you know, let’s software people, whatever, call them. I don’t know this, like subset of people who are, who are doing it, Ruby and Python, node, .NET, et cetera. Right. And you’re like, Oh God, WordPress. You know, you know, I don’t, I’m not going to touch that.

That’s horrible. But yet WordPress is the dominant thing and I’ve never, I, for the last few years, I’ve never really, I understood that. And I really feel like it’s important for everybody to do that.

Jon: [00:45:39] I just really am impressed with how they’ve continued to like grow up as a platform and move from. Like, there was a time, five or more years ago where. I was always worried about getting hacked and now, like every time I log in, it’s automatically updated. I there’s a few extensions, you install, I put CloudFlare on it and it’s like, I don’t worry about it.

You know? And it just, it scales pretty well. It’s like, I don’t. So I guess that’s, I feel like that’s a success story as a, as an open source platform to have evolve that well, like their release management is just solid, you know?

Rob: [00:46:15] Yeah. Yeah. I mean, you know,

Kevin: [00:46:17] Yes. We talk about cutting edge technology here

Jon: [00:46:19] There you go.

Kevin: [00:46:20] and gentlemen.

Jon: [00:46:22] What did we talk about? Excel word, press. What’s next.

Rob: [00:46:29] what is fine? It, Eric, the guy working with Erickson, Martin, we were talking about doing this streaming thing and he, and he was, you know, he was just gushing about all this technology and he’s like, you know, what, if we’re going to do that, we have to learn rust. I don’t know. And I’m like, yes, I just jumped out of my chair, like anything to learn rust. then, you know, it’s like in the back of my mind and like, what. What is that going to serve again?

Jon: [00:46:54] I read some things that Microsoft is using rest more. I don’t really know much. I’ve already said more than I understand, but

Rob: [00:47:02] No, I don’t know.

Jon: [00:47:03] I have read like, I mean, I guess for, for system level stuff, it’s. It’s better for writing safe code. that’s about all

Rob: [00:47:15] Let’s

Jon: [00:47:16] those are words. I feel those are words. I feel mostly confident about saying I don’t understand why.

Rob: [00:47:22] are, there are hundreds of developers getting out of their seat right now, walking into their boss’s office, going Jon Galloway says…

Jon: [00:47:28] That’s

Rob: [00:47:29] rust makes things safer.

Jon: [00:47:32] You know, it will be interesting. That’s something we should like maybe try and get someone onto that knows rest to talk about that. Cause it’s but I have, I read some sort of thing and it was like, God, I don’t know. I’ve read a thing.

Rob: [00:47:47] There’s a person in my group at Microsoft. His name is Ryan Leveck and he was on the Wunderlist team and he is our local rust expert. He runs rest meetups in Berlin. He’s an amazing guy. And I hate him because his voice he’s got one of these voices. It’s like, Just dripping silk, just deep. I don’t know.

It’s just a first time I talked to him. I said, I hated him. was, you know, it’s like, hi, I’m Ryan. I hate you. Right now

Jon: [00:48:17] Yeah, no, I don’t know

Rob: [00:48:18] Yeah. All right.

Jon: [00:48:19] what, what is rests package manager? Everybody’s got to have a package manager

Kevin: [00:48:25] Cargo.

Jon: [00:48:26] cargo. That’s right. I installed it at one point for some thing. And then have not since. I don’t know. It’s good

Kevin: [00:48:35] I, the only thing I know about rust is one of the cargo is my commander, but, two is that, somebody, I forget who it was, wrote a shell in rust. God now I’m totally blanking on the name and it’s going to piss me off. hold on one sec. Googling

Jon: [00:48:52] I’ll have to look it up.

Kevin: [00:48:54] Oh yeah. New shell. It’s called. and I was intrigued by it because, so I never really took the PowerShell.

I mean, I can kind of fumble my way through it, but I always kind of hated the. The, the verbosity of it and the kind of weird syntax. but I did like the object orientation of it, I guess the, you know, the fact that the things that go flow through the pipeline or objects and not just text, that was like the killer feature.

so new shell is, has that philosophy where, you know, you’re, you’re piping objects between. You know, different operators and functions.

Jon: [00:49:34] Yeah. I’m looking at it now. It’s

Kevin: [00:49:36] but without the kind of arcane syntax that, that, PowerShell uses. So

Jon: [00:49:41] It’s funny though, as I’m looking at the sample code here, so it’s github/nushell/nushell and it’s like a. It’s funny because PowerShell does have a lot of aliases that are similar to this. So like LS, pipe, something, or other would work in PowerShell too. but you have to know the things, you know, I dunno.

Yeah. That’s neat. yeah. cool. Cool. Yeah. I guess, you know, one other thing, just, you know, as far as new issue on the way things there’s, they’re .NET 5, .NET 6. so I

Kevin: [00:50:21] I did six. Wait,

Jon: [00:50:22] I, okay, so .NET 5 do out November and then .NET 6 is the LTS, the longterm support version due out in 2021.

And, and so the idea is they’re having similar to like node and Ubuntu, and the like this, I don’t know, kind of a guaranteed release schedule so that people can plan on it. and then they went with, instead of people were confused, like we actually did have people that mix because there’s .NET Framework 4.8 and .NET Core 3, people were like, Oh, the new, the highest version number. It must be the right one. So they would use .NET Framework 4.8 instead. so anyhow that’s they were just like, Nope, it’s all.net. It’s not in that five. Then that net six.net, whatever. So in originally there were like some neat features that were going to be in Dutton at five, but because of COVID and changing stuff around schedule wise and things, some of that stuff is now in .NET 6.

so. Yeah, I’m just the, I don’t know. Neat. I keep an eye on their, they’re doing, they keep doing neat stuff with, intrinsics hardware intrinsics which like blows my mind to see like they’ll, they’ll optimize stuff in the compiler. So like, it’s doing all kinds of, like, it’s just using all these features that have apparently been in, you know, the chips out for awhile, but you have to like, write some smart assembly code to actually use them. So that’s kind of cool.

Kevin: [00:51:55] So I have a purely hypothetical question, which is not hypothetical at all, which is, you know, we have a, we have a applicant, one of our applications is written in.net framework for, and, you know, hosted on windows. And I would love to have it not be someday. you know, what is the, what is the migration path for.net framework?

You know, asp.net, MVC kind of applications. Is that hugely painful? Is it. There, you know, conversion tools.

Jon: [00:52:24] Well, so a lot of it is, it depends. there’s, there’s not like a run a tool and it’ll update your. Your thing. If you’re using MVC, it’s a lot. It’s generally smoother it, but it depends how much you’ve customized stuff. So like, if you’ve done action filters and you’ve written, you’ve like, you know, hooked into a lot of stuff in the pipeline.

And especially if you’re doing, using like the identity system, then like all of those are areas where they change over time, the actual like model view and controller thing, those are probably the least likely, you know, those have changed the least like razor as a language hasn’t changed that much. And yeah.

You know, the controllers are pretty similar. So it’s more of the, kind of got some internals where you could override an extend stuff. Those are, those are the cases I’ve talked to people where it’s like, Oh, you’re kind of screwed. You know? Like, so I don’t know if that makes sense, but

Kevin: [00:53:23] This is not a, not a case where I can like open my project in visual studio, 2021. And like, you know, magically works

Jon: [00:53:33] no, no, not really. Yeah. So it’s like a, you know, there’s definitely, there is a migration, out in the, in the ASP.NET Docs where they like talk through, here are the steps you do. and it really depends on like how well factored it is. Like the service code you can, you can use .NET standard and you can like, You know, that migrates over pretty cleanly.

Cause it’s just .net is .net code, but it’s more the, really, a lot of it is the startup hosting staff. So like there’s no more Global.asax There’s no more web.Config. All the configuration and startup stuff have changed around. and then some other things get simpler. Cause there’s dependency injection, like just it’s built into everything.

So that simplifies some stuff where before. You know, you had to, you had to configure all that sort of stuff. So, but it’s, it’s hard. There’s not like a simple one size fits all because MVC is like, there are a lot of different ways people use MVC. you know, there’s not like a canned answer for it really. I don’t know if it’s helpful, but you know what I’m saying? You could, you could override the view engine. You could override the, you know, Stuff about, you know, you could have complex stuff set up with, with dependency. You could have action filters. You could have, you know, custom, I dunno, ActionInvokers and all kinds of things that are already escaping my brain now.

Well, so it’s right about an hour. Do you think we should kind of wrap up here?

Rob: [00:55:08] We haven’t picked on Kevin enough.

Jon: [00:55:11] Nice. Alright. Well, I have no idea how we can wrap this up. So I think we should end up with a knock knock joke. No, I’m kidding.

Rob: [00:55:22] I got it. I got a good one. Knock,

Jon: [00:55:24] Oh, good. Who’s there.

Rob: [00:55:26] smell, mop.

Jon: [00:55:30] and that’s all the time we have this week.

Rob: [00:55:35] Come on. It’s like the biggest and oldest dad joke. You guys have heard that one, right?

Jon: [00:55:40] Yeah,

Rob: [00:55:41] You’ve never heard smell mob. Are you going to cut this out, Jon? You can’t cut this out. Smell. Mop is probably one of the best jokes ever.

Jon: [00:55:48] smell mop.

Rob: [00:55:50] Yeah. There you go. That’s gross, Jon. I can’t, I can’t believe you actually said it.

That’s really gross.

Jon: [00:55:56] we’re going to get kicked off the internet. If we have that end a podcast that includes PHP WordPress.

Rob: [00:56:04] Yeah, it’s true. I have to agree with that one,

Jon: [00:56:07] I think, yeah, I think to balance this out, we need to end with, with like maybe an English accent in some like, you know, some like, what is it? , you know, some like, you know, erudite music.

Rob: [00:56:22] You mean like talking about Brexit?

Jon: [00:56:25] Wonderful. Alright. Well,

Kevin: [00:56:28] are, I promise our Q3 podcast will be better.

Rob: [00:56:34] Oh, man.

Jon: [00:56:35] right. Well, since I’m cutting a chunk out, I’m just going to cut all that out.

Rob: [00:56:40] Yeah, you should start using start the whole podcast with that.

Jon: [00:56:44] That’s right. Well, this has been, well, this has been a fascinating discussion. Hopefully the next time we talk, it will be an even more fascinating discussion and I will not be wearing a mask, the entire podcast.

Rob: [00:57:00] Okay. My name is smell. Mop. All right. This

Kevin: [00:57:11] Jon, when we have our, when we have our subscription program, this is the kind of

Jon: [00:57:15] That’s right. That’s right.

Rob: [00:57:17] Yeah,

Jon: [00:57:18] No, I think people will pay to exclude it. They will pay more to not have this portion.

Rob: [00:57:24] And maybe the podcast will be hosted on WordPress at that. Oh, wait a

Jon: [00:57:28] it already is. It already is wonderful.

Rob: [00:57:32] Sorry.

Jon: [00:57:33] All right.

Rob: [00:57:35] Bye

Jon: [00:57:35] That’s wonderful. Thanks everyone. I will now stop recording. 

Rob: [00:57:42] Smell mop!

Herding Code 241: The Freaky Friday macOS / Windows Switch

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


 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.


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 download button and it would just download an installer, you know? And then I’m like, well, if, if everybody’s got these big blue download buttons, why do I need Homebrew again?

Rob: [00:15:10] Yeah. Well, it’s, I mean, it’s, Kevin I’m sure would agree with, well, I don’t know, maybe not   the thing with that is that there’s often two or three ways to do something. you know, like if you go, wow, where does I, I was looking at something, I was gonna have an example ready at the top of my head, but like, if you go to any one of these sites.

Out there that make these development tools, for instance, you can download the source and compile it and build it your own self. You know? That’s one way you can use Homebrew to install a package. And then yeah, you can also just download this gimme a DMG file and I’m going to just drag over the compiled binary.

And I think the interesting thing about that is. That that is a spectrum, right? That’s a, like you start being a total neck beard. Like I’m going to read, I’m going to build my own source, which a lot of people like to do. they feel like they have more control over it. But then in the middle is Homebrew, which will download the source and then build it for you, which is pretty cool.

And also shove it into the cellar, which is what we talked about. So you know, it, you have execution rights and all these other things. It just kinda configures these things for you. And the DMG files is, you know, is the.app directories that you just drag over into your application folder. And I think the thing that’s really fascinating to me, watching all this is the security model behind it all.

And that’s one thing I really appreciate about, about Macs. Like you don’t have the UAC, you know, you don’t really elevate. You don’t have to do pseudo, anything that’s in your application directory will run, but it’s only got certain privileges. You know what I mean? Like you can’t touch what’s called wheel inside of the Mac user paradigm.

There’s things that are just, you cannot, even though you’re an administrator and you’re on your machine, it’s, you can’t blow that away because it won’t let you, which is kind of funny.

Jon: [00:16:54] well, it’s, I think that was a huge thing that you pointed out to me because if it’s just a check and scripted and you know, whatever, it’s like, okay, fine, but I don’t plan to rebuild this machine for a while. But then when you pointed out to me that no, it’s actually installing, like, you’re not having to elevate when you do the Homebrew.

Experience and it’s, I don’t know, doing magical sibling things or whatever, but it’s, it’s installing it differently. That’s a big deal. And I think one big example of that is actually this, this past week with Zoom and there are all those things about Zoom, elevating privileges and tricking people and showing like, I, I skimmed it, but it looked like Zoom was showing like fake dialogues that were grabbing your password.

And. I don’t know mining Bitcoins or something.

Kevin: [00:17:43] Yeah. That was as bad scene dancing. It’s like mimicking a operating system login dialogue.

Jon: [00:17:50] Right, right. So, but if you install, I saw somebody tweet and they said from here on out, I’m not installing anything I can install with Homebrew cause I don’t want to give it, I don’t want to give away those elevated permissions to anybody.

Rob: [00:18:01] yeah. Well, it’s, it’s one of those weird things where it’s like, Dropbox is a good example of this. If you install it on a Mac, it will, it will prompt you and say, we need full disk access. Or whatever it is. I think it’s full disk access. I said, you know, what the heck do you need that for?

You know, why do you need that?

Well, it turns out that if you want to integrated with your finder so you can see the little Dropbox icon and you can like move things around, that’s all it wants to do. Well, so they say, but either way it’s like, Oh, right. Well, I mean the finder has full disc access. So you know, Dropbox has to ask for it.

But the hard thing is. Is that they don’t explain it very well. I mean, I’m not saying Zoom. I mean, I’m going to just kind of sidestep that argument

because I mean, it’s one of those things that sometimes people just do something and who’s got the quote, you know, don’t ascribe to malice what you know is you could be ignorance, you know?

I mean, they, they just might say, Oh, we need to elevate because we need to have access to show the screen, you know,

Jon: [00:19:00] Well, yeah, they probably had people freaking out where it’s like, I can’t run this on Catalina and my business is paid for all these licenses and you know, fix it now.

Rob: [00:19:09] Yeah, and I don’t, for the, you know, before you send me hate mail, I don’t mean to defend any bad things that anybody’s doing, but these are just some of the silly things that having a more strict operating system tends to force these application providers into, you know.

Kevin: [00:19:26] So Jon, are you, are you, were you trying to install like applications with, with, with Homebrew?

Jon: [00:19:31] Yeah. Yeah. , okay, so first I put on Visual Studio, Visual Studio Code, GitHub desktop, gosh, virtual box. you know, a bunch of, like, I installed the Windows office stuff. and all of those when I went and, and, you know, bangled it up.

It was always, just the download buttons, you know, and so. and they, they auto update and all that. And they, but then over time I started looking up things like, for instance, I found a shell script. I liked that, that, when I unplug, when I’m plugged into ethernet, disables the. Wifi cause I don’t know, like it toggles, you know, I don’t need to have both on.

And you know, some stuff like that. So then it’s an, and like just different scripts along the way. And then it was like, Oh, you need to add it to path or you need to, you know? And so then I’m starting to like drop scripts all over on my machine and I’m starting to feel a little less in control of like, I don’t really even know what’s going on here.

You know? And then you’re. You know, chmod-ing everything and you’re like, you know what I mean? Right. So then after a while, then when Rob talked to me and he’s like, look, you know, this is, this is organized as repeatable. It’s, you can, you can remove stuff. You can. And I’m like, okay, I get it now cause I’m starting to feel like, you know, messy desktop syndrome from my, from my machine.

Rob: [00:20:50] leave OSX alone.

Jon: [00:20:54] the one, the one that I started

Kevin: [00:20:56] say

Jon: [00:21:00] it, you know, I can sidestep this now cause I can just call it Macko S and I’m safe. Right. I can’t mess that up.

Rob: [00:21:07] Oh, yeah, that’s true. I guess I just did a dumb dumb.

Kevin: [00:21:12] Windows is running his brain?

Jon: [00:21:14] So the one that I ran into, the first one was, I didn’t have Homebrew installed. I used to always have to use Homebrew, like right away because, the SSL implementation that was used in .NET like required Homebrew to install. So that was always first thing on the machine. But then this time around, I was like, I didn’t actually hit anything that said, get it from Homebrew and, or you can only get it from Homebrew until I hit the GitHub CLI, the new, whatever, G H thing.

And then that one was like just “brew install” it, but they had a download button, but the download button was just a zip or tar. And then the tar was just, the X. And then I’m like, okay, do I drop it somewhere and then add it to the path and where’s the best place to put it? You know? That’s, that’s another thing too, that’s being newer to the system.

I’m not sure, like where’s the right place to put it? Do I make a. You know, like just a folder called stuff or you know, like utils or something and, and add its path and, and, or is there, and there’s all these different user directories and I’m not sure which is the right one. Oh, he is. And stuff. So,

Rob: [00:22:28] that’s a good question.

Kevin: [00:22:29] but nobody’s really sure which is the right user directory….

Jon: [00:22:34] so that’s part of why I like, okay, if Homebrew is doing it, I’m guessing somebody like some, some nerds with big beards of like. Fought back and forth about this

Rob: [00:22:42] yeah. Well, I’ll tell you what, you know, I usually, when I, when it comes to these things, you know that people are so creative. With, packaging things. Like for instance, Reddis you know, I, I realized, cause I have a newer machine, I didn’t ever read Reddis on it. And so of course they start ticking off, you know, okay, do I, do I have to install it?

You know, do I use Homebrew? Do I just use Docker? I mean, there’s like all these things, right? And then I’m thinking someone is probably bundled this in a.app file somewhere. And sure enough, you go and you look up reddis.app and they’re like, yeah, just download it, run it, run it as a thing. The little icon shows up in your, in your icon bar.

Oh, that’s cool. So I did that, you know, and it opens up the CLI for you and everything, and I’m like, okay, that’s the best option. I’m doing that.

Jon: [00:23:24] Yeah. So I will tell you too, like experiences that went against the whole Homebrew and one was I did, I’ve been doing these Project Tye. tutorials. So Project Tye is the sing, the dotnet team, David Fowler and some folks who are building that is like kind of a and orchestration layer on top of Kubernetes and Docker that kind of magically discovers stuff.

And then it creates some YAML files. And if you want to override stuff, you can, but it’s got like some conventions and autodiscovery. But so I, one of the pre-recs was like Docker, so I did okay. “brew install” Docker, but I didn’t actually, that installed. I didn’t ha, it didn’t actually run the Docker desktop thing and I didn’t have the daemon and the client and everything going. And then the same thing.

I, so anyhow, then I started doing these tutorials and you know, it’s like barking at me and there’s weird Unix errors and I’m like scared and stuff. And then people on the Twitch stream are like. Type this go type that, you know, like delete your hard drive and stuff. So then, so finally I just did the Docker install and then it just worked, you know, so I don’t know.

Kevin: [00:24:39] I’ve kinda gotten back and forth on this over my Mac career, but the way I’ve kind of landed on it is. If I’m installing “programmery” things like, you know, like “programmery” tools. Then I use Homebrew. If it’s like an application, if there’s a.app that I don’t use on brew. and that I, I found that to be, and I, I’ll, you know, preface that by saying like, I don’t generally like have a big giant script for rebuilding a machine from scratch.

If I want to do that. I haven’t done that in years. So. That is what useful, you know, case for Homebrew. But I generally find for applications like does nicely packaged auto updating applications, it’s not really worth it to use Homebrew.

Jon: [00:25:21] Yeah. Okay. So. That is an interesting trade off is like you don’t, like, Mac does such a good job carrying forward old, like you can reinstall the machine and just bring everything along and like don’t have to rebuild or like, you don’t have to rebuild your machine for one thing, right? You get a new machine and you can just carry your stuff along to it.

So I think on Windows, I, I did that more when I rebuilt my machine. I wanted to have. Scripts to like get it up and running and in a good state. And a lot of the time I actually wouldn’t just execute the script. I’d like copy and paste and execute bit by bit because I wanted a little more control, but it like, at least was my checklist.

I’ll tell you one thing that’s interesting to me that’s different in the Mac and Windows world is you’ve got these like. Okay. So you’ve got the, you know, the big official programs, you’ve got the program or any things where, you know, fine, you Homebrew it and stuff. And then you’ve got these like tiny little one off apps that are in the app store that are $3 or $7 or, or you know, $10 and they do one little thing and they’re beautiful.

And they have, of course, they have like nice fonts and stuff, but it’s like, do I want to pay $8 to the, you know, and it’s like. And those things are not going to be on Homebrew, I don’t think. And you know what I mean? So that, and we don’t really have that whole

mini app thing on Windows so much. There’s the Windows store, but that’s the time you don’t, I don’t know.

I haven’t bought anything off there for awhile.

Rob: [00:26:54] You gotta you shell script son?

Jon: [00:26:58] Right. But, okay, so like there’s all these things, Alfred, right? Is it an example? Do you Homebrew Alfred.

Rob: [00:27:05] Oh, no, I just, that would be an app that I would probably just go and get. Oh, I get what your question is. Yeah. I mean, just in general, the choice between Homebrew and, For me, the choice between Homebrew and going to the app store or a shell script literally is like Kevin said, you know, is this going to be a long running thing that I want?

You know, on my machine, Postgres is a fine example of this because they lately have been revving Postgres constantly and. You know, after a while, you know, you got to pay attention to what’s on there and like the databases that are running, and it’s not going to hurt my machine, but what has worked so much better for me is Postgres dot.

AF or you can Google that, but that’s just an app that runs in your menu bar. And I love it because you can have multiple servers and they can have multiple versions and sometimes I want to bounce between the two, so that’s really nice. but for something that’s like UI ish, like, like GitHub desktop.

for instance, I would, you know, I would expect to go and grab like a DMG and just drag it over. and what else? You mentioned another one. Oh, Alfred too. Like Alfred. Nice. Give me an installer. I wouldn’t want to deal with. Homebrew was at

Jon: [00:28:09] That is one slight difference between like Homebrew and Chocolatey. Chocolatey is more like, it works just fine cause it, it’s more like.

It’ll just didn’t launch an installer, with the silent options. So like on a Windows box, I can install, like for instance, he mentioned Audacity and the, you know, just tends to, I mean, I, you know, like Visual Studio for Windows, like with all the different, like workloads checked off, you can get that on Chocolatey and stuff, right?


Rob: [00:28:39] Yup.

Jon: [00:28:40] So that is a difference where like it is a little nice to not have to remember like, Oh yeah, shoot, I don’t have, you know, Postgres app install. I don’t have this install it, you know, and like go get those all manually.

Kevin: [00:28:55] Yeah. I think I’m, you know, I’m just looking over my, my brew list there and like just about everything is a command line tool that I’ve installed through  Homebrew. I don’t see just about anything that like actually has a GUI.

Jon: [00:29:09] Yeah. Yeah.

Yeah. And it does. It is interesting. Then you get to overlap, like with the auto updating things and the like. I’m not actually even sure. Like if I home brew install something, like say I don’t GitHub desktop and it auto updates

and then does

Kevin: [00:29:29] Yeah. That with MacVim I installed back then through the Homebrew at one point, and then it’s been auto updating and I have no idea. I think I have like three different versions of home Mac on my machine now because that.

You know, you mentioned migration assistant, and I just hold, it was going to mention the one thing that migration assistant does a terrible job of migrating is the Homebrew directory. Every time, every time I go through a migration, it’s like, shit Homebrew’s broken. you know, I have to like, you know, change ownership on a bunch of folders and, that, that is my biggest pain point actually with Homebrew is just the.

It’s just breaks periodically and it’s something that I use rarely enough to, like once every three months I’ll go do something on it and it’s probably broken and I have to brew doctor, you know, change, like some Matt update, change some files as to permission and I have to go re change the, you know, the folder permissions.

It’s my biggest by far complained about Homebrew is that it just tends to break periodically.

 Well, this isn’t really the Homebrew show, so there’s probably other

Jon: [00:30:33] No. No. Okay. Talk to me. Talk to me about dot files. Cause like as I started customizing things and there’s like, you know, Z shell and amazing, how do you pronounce it? Oh my Z. Oh my Z shell.

Rob: [00:30:45] Hey, welcome to the question of

Jon: [00:30:47] Yeah. Okay. So, but then I start like looking at that and customizing it, and I did the obligatory, like everyone has to do like get the power line, I’ll just perfect and stuff.

And then I start looking around and everyone’s like, check out my doc files here. And everyone’s like out there, doc files out. Do you folks do that? Is that,

don’t know.

Rob: [00:31:08] I do. one of the things I love about, Oh, my Z shell, let’s just call it that, is the custom directory and anything that you put inside of there, gets loaded into your shell. So like I have, let’s see, I’m going to bring them up right now. So I have a bunch of little aliases that I use. Have you explored aliases at all?

Jon: [00:31:26] I have. There’s like a ton of, I need like a cheat sheet on the wall.

Rob: [00:31:30] Yeah, well, I mean, you could just make whatever commands you want an alias. And so like, I’m looking at my, I’m looking at my, custom directory here and I’ve got, I got dot ZSH files for all kinds of things. I have one for Jekyll that will make a Jekyll post for me and stamp it with a date. I have another one that will go through a directory and resize all pings in and convert them using image magic to JPEG, you know, and an appropriate size.

Anyway, I’ve got a ton of this crazy stuff and I, you know, it’s not like I’m a shell nerd, but like, if you find yourself doing things over and over and over, I mean, that’s what, that’s why I’m a, Dykstra made shell scripts for us and so we were just kidding. That’s just a Gary Bernhardt and vacation right there anyway.

You can make a little function that gets loaded and, and you can just kick it off to a shell process. And it’s a, it’s really fun the way these things work.

Jon: [00:32:22] I w

Rob: [00:32:23] those are my dot files.

Jon: [00:32:24] I started looking around at, at those plugins. And I would say there’s actually an official.NET XE shell plugin and all that. I mean, it’s just like short little commands for like the.NET SDK scripts and stuff. But I was like, wow. And yeah.

Rob: [00:32:41] I think my favorite plugin for Oh My ZSH is, the dot N or dot E and V plugin. So if you have a N a dot, a dot. ENV file, in your project, it’ll automatically get loaded whenever you CD into that directory. And it just makes life so nice. So if you imagine you’re working on a projects in VS Code, like a node project and you’re tired of running mocha, or you’re tired of setting all these configurations, or you want to have like your.

you want to have something that happens in particular, whatever. And you could just load up your dot, ENV file. And inside that .env file, you can not only put, environment variables, but you can also set aliases. And so they can be aliases that are specific to your project. so for instance, right now I’m actually, I have a project open in front of me that I’ve been working on, and I have a binary that runs it’s node.

And so I’m using commander. And so to run this like I could type, NPM, run, you know, blah, blah, blah. It would automatically load everything. And off we go. But I don’t want to do that. You know, I want to, I want to be able to just type in what my users are going to type in when I pushed this module cause it’s going to be a global executable.

So anyway, inside of my .env file, I have an alias. and it’s an Azure thing. So I just alias to Azure to this node executable. And so now I can run it and execute it as if, you know, it’s just a, if I’m just running it normally, I don’t know. That’s a long screed, but it’s pretty, it’s, these things are addictive and next thing you know, you’re like scouring other people’s things.

Like Ryan Bates of RailsCasts had the most amazing dot files for building servers back in the day when we had to do those things. And, Oh my God, it’s, it’s so, it’s so fun.

Kevin: [00:34:21] Jon, I was going to ask you, do you PowerShell on the Mac or do you do just, you know,

Jon: [00:34:27] So I, I have it, but I’ve been trying to do Z shell mostly. so I, I have it installed and that’s part of, part of why I’m playing more of terminal lately is the new, Visual Studio for Mac has integrated terminal and it’s like, it’s integrated pretty well with the, You know, with the macOS terminal.

So like, I can be running commands in the terminal and then switch over to, you know, the Visual Studio, terminal and up arrow and my command histories there and stuff. so like, so I have like different terminals open, you know, like tab terminals open. So some for PowerShell, honestly, I’m not. Great at PowerShell and I don’t think I ever will be.

It’s just, it’s, it’s like as a language just constructed as in something that I’ve got a bunch of PowerShell scripts saved out every few months. I’ll like geek out on PowerShell and write a script I’m really proud of, and then I’ll look at it three days later and go like, what, what, you know what I mean?

It’s, it’s just the, the, I dunno. Do you folks use PowerShell much?

Kevin: [00:35:35] I don’t, I’m, I’m glad to hear you say that. Cause sometimes I feel like I’m the only, well I’ve been X Windows guy now, but like, you know, even back in the day, I never took to PowerShell. And that’s not a little bit of stuff in it, but it just didn’t really fit my brain in a way. Wait, and it was, I dunno, it just didn’t

Jon: [00:35:51] I’ve, I’ve wanted to like it and I’ll like, you know, for some people, I guess it’s just not intuitive to me. So like, you know what I mean? I like ’em.

I spend a lot, I spend as much time as, I would just like looking up a bash script and there’s, you know, for like Mac or whatever, there’s going to be more like actual bash scripts doing what I want to do.


Kevin: [00:36:13] Yeah. Yeah. I mean, I, I, I, I admire the, some of the principles that they’re trying to address. Like, you know, not just passing text around, but passing richer constructs, but just the way it actually worked. Okay. just never fit in my brain.

Jon: [00:36:29] I’ve done some like PowerShell scripts that I was like, Whoa, this is incredible. You know, like connecting to services and, you know, pulling stuff down and like you’re saying, work, working with things as objects. And it’s nice to be able to use like.NET objects that I know and, and you know, so, I mean, it’s definitely as powerful.

It’s just, I’ve always felt a little bit like I’m writing a long regular expression that I’m not going to understand the next day. You know?

Rob: [00:36:56] so true. Well, I’ll tell you why. Here’s a, here’s a fun, you ever use the GI utility get ignore

That’s a cool one. I think to me that, that really shows the power of what shell scripts can do. you know, cause when you start a projects, everyone needs to get ignore. And sometimes, you know, these binaries will create one for you specific like node might or  whatever.

But anyway, these people created this, These utility called a GI. Anyway, it’s a function and it uses curl, to go out and curl just goes and gets a remote, remote address using HTTP, whatever. Anyway, it just, it just goes out to the web and grabs the get ignore file for you. You just have to pass in the argument of what you want and it drops it in and you’ve just created your getting ignore file and you’re good to go.

Jon: [00:37:45] Oh yeah.

Rob: [00:37:47] if you go to, and I did that a little bit. I was just playing around. So if you go to this website called AZX.ms that’s, that’s mine. And so what I did is I, I, I created the same kind of thing where I created this function that goes into your Z shell and it just curls out to this website if you need to create an Azure script, whatever.

And it just pulls it down, which is pretty fun. I mean, it’s, it’s pretty neat. It’s just like this one line command utility that is not, I mean, and it goes out to a website, pulls down the source, which I think is kinda cool.

Jon: [00:38:21] yeah, yup. For some of these things I’ve, I honestly, I would like, if I’m using it a lot, then I would remember it, but otherwise, I don’t know. You know what I mean? Otherwise, yeah.

Rob: [00:38:34] you got to look it up. I don’t know anybody that knows these shells. Well, I do know a few people, but, I, I can never remember these things.

Jon: [00:38:41] Well, so I’m, I’m curious, Rob, what your experience has been like, eh, you know, and I’m moving over to Windows, how that’s gone.

Rob: [00:38:51] it’s been interesting. So internally, you know, a lot of the people in my group have Macs, I would say, I would say, I don’t want to say the majority, I think maybe the majority do have Macs. So anyway, when we, our group is, is mostly focused on, reaching out, you know, beyond the microsoft.NET developer realm.

So that’s why, you know, we all come from those areas. So anyway, having a Windows machine. Was considered the exception, but slowly, you know, our it departments and, and security people, you know, they’re like, we need you to, we need you to make sure your machine is clean and a bunch of other things. So what did happening is, people were starting to just move over to Windows cause it was easier to connect.

And I’m not saying this in any bad way, it’s just the nature of life, right? And so that’s, and I finally, one day I was like, you know what? You know, I’ve been using this Mac forever. and WSL has come out. And I think I want to try, I want to try it out because the interesting thing to me is, you know, I always liked that part of Mac.

I like Unix. but it’s not, it’s, it’s kind of a weird, contorted bit of Unix, you know, I don’t own this machine. Like I, there’s certain things I cannot do, even even if I wanted to, which is kinda good, but at the same time, it’s sort of like Unix light, I guess. So anyway, going over to going over to the Windows machine and kicking up Ubuntu.

Was freaky and I mean freaky in a good way. Cause I mean, I, I’ve used Ubuntu, but I, I’ve never really like had it as a development machine. And I know that people that have jumped into Linux land, from, from Macs, they swear by it and they will not go back to the Mac. You know, for anything that has to do with development.

They like to Mack as a machine. But you know, operating system is, is interesting. I think it looks pretty, I think it looks the nicest out of any operating system I’ve ever used. But going over to Windows, I was pretty impressed. I mean that the graphics look good. I mean, there’s a little bit of Nudgee things that, you know, for me visually, I can’t stand.

I mean just the, just the spacing and the architectural layout of like, the of the, of the interface of some of these applications drives me absolutely crazy. Like a, what was the one I was using the other day PowerPoint and I was going through the menu bar and I’m like. Was this put together by five different groups of people that like some use metric and some use royalty.

I mean, this is weird, like maybe some use pixels and other use and I have no idea what people are doing, but there’s like misshaped misalign font size differences, IUI, but whatever. I mean, that’s just me being picky. But it’s, it’s funny because like, comparing the, the, our notes, right? You know, you’re having a hard time with Homebrew and installing things and getting work done.

And I’m like, offended by the visuals,

which just I think really describes the communities, right?

Jon: [00:41:45] Yeah, yeah.

Rob: [00:41:47] No, but it was really fun. I remember, Hanselman helped me get, rolling on a WCL too, which required, you have to be on insiders and whatever. But. I remember kicking the thing up just being, I was blown away and I’m like, wait, where is this?

Is it a VM? What’s happening? And, and like, the only answers you can find online or like, it’s kind of a VM kind of not, don’t worry about it. I’m like, but, but, but, but you know, I, what am I resources? And like, you know, being good Unix person, you can go and ask the machine what, you know, what’s available to me.

And sure enough, you’re, you have access to everything. You have full resource, full Ram, full everything. I couldn’t believe it. And I just started like setting up this Unix box and using the Windows terminal, the new one. And I mean, I, I fell in love with it. I mean, I got it. I got Z shell set up. I, I have Dropbox, I have all my stuff in Dropbox, including my bin files, my dot files and whatever.

So once I had Dropbox set up on Windows. I was able to access Windows from inside the om, which blew my mind. But inside the, Unix bits. And so I just did my, like startup using this, you know, Z shell, right? And now I have it starting up the same on all my machines. I have all my aliases. They’re all, they’re all the same.

Jon: [00:43:03] yeah. Okay.

Rob: [00:43:05] Yeah. So Dropbox will sync everything. And that’s what I mean. We talked a little bit about how do you move stuff? I’ve, I haven’t moved anything using the utility, the Mac utility. I haven’t. I did that once and I hated it cause it took like a whole night and I said, why am I doing this? I’ll just pay Dropbox.

And it doesn’t have to be, you could be anything you want, but for me like a sink utility like that, it’s just been, it’s been wonderful. So I don’t have to think about these things. But anyway, I think the only, there’s been a few wrinkles here and there, but I’ve always found a solution. So here’s one. I was working in Windows terminal and I’m so used to, I’m so used to copy pasting little commands here and there and, or like, you know, I’ll ask, I’ll ask the shell to go do something and I’ll just copy paste the result.

And you can’t really do that through Windows terminal. You have to, it’s weird cause you have to right click and do something else. And it was just that, that kind of got to me. But then I found, of course, if I just run the terminal, which you can inside of VS Code, it works. And, and I found that out because I was asking Scott again like, Hey, okay, so I, you know, I need to, I want to open this project, this node project now that I’ve downloaded from get what I do.

And he said, what would you normally do? And I’d say, I don’t know, code dot. And he said, do it. And I did it and it worked. And I was like, that’s voodoo. And that’s when it,

that’s when it hit me upside the head. Then what I actually, and seriously it was, it was one of those moments where, you know, people say, people say like, Oh, it was this, like the air went out of the room, or it was like this transcendent moment.

I mean, no, it truly was. I couldn’t speak for a couple seconds. And I’m like, are you telling me I’ve got a Windows machine? Let’s split brain and on one side is Unix. On the other side is like Excel and word and all these things that I kind of miss. Actually, I like outlook too. I know people don’t even yell at me about that, but like it was, it was really, really bizarre.

And so yeah, VS Code opened up and it’s just in that directory and it knows about WSL. I have the WCL extension running, but I was just like, you’ve got to be kidding me. And cause it looks beautiful. Right. And then I was then, so what I did is, and he said, open up the terminal inside, BS code. And I did. And there was my Z shell terminal, like everything.

I’m like, this is, this is crazy. And so of course, copy paste and everything works as I expect in there. And then I’m like, this is, this is it. This is a very Linuxy, unique sea experience where you, your shell is different than the CLI, which is different than, you know, or your terminal, excuse me. It’s different than your shell.

And you can choose whatever terminal you want, make it look however you like. And I was like, Oh, wow. Oh wow. Oh wow. Oh wow. Oh wow. And it was, it was really fun. So I just started working in that. But here’s actually the best part, and this is a totally, the geekiest dumbest thing. so I bought this, I bought this groovy laptop and I really like it.

it’s not one of the touchscreens cause I don’t, I don’t know. I don’t like fingerprints all over my screen. but I wanted something with horsepower cause I do a lot of video work. And so I got approval for that and I went and just, you know, it got white, small upgrade, not very big, but it was a, it’s a gaming machine.

And so I went to best buy and they had an open box for this monitor that I bought for myself. And then I just went nuts. Wait, I’ve got, I’ve got a killer gaming machine here. Oh my God. I just like, it hit me all of a sudden, like I can now play games and like the PC, it’s been so long. And so I bought this 37 inch monitor that was open box for 280 bucks.

I couldn’t believe it. And then I was like, well, I’m going to get a cool keyboard too. So I got this mechanical keyboard and this gaming mouse and is sitting next to me is like, got all these cool colors and the keyboard is just tremendous. Wow. It’s so cool.

Jon: [00:46:54] Which, which keyboard.

Rob: [00:46:57] I got the Corsair and I forgot the, it’s the quiet key.

It’s a newer one. Corsair, M, X, something like that. but yeah, like you want to hear it?

Jon: [00:47:07] Very nice.

Rob: [00:47:08] Yeah. Yeah. So I’ve been enjoying it. I, you know, it’s one of those things where if I sit down, To do a particular thing. Sometimes I have to use my Mac, for instance. I record a lot of video and I am much faster at ScreenFlow than I am in Camtasia.

So I’ll just, I have, I have two desks and I have one chair that swings between each, and I’ll swing over here and I’ll do my recording or whatever, a keynote. I’m also way better in keynote, so I figured, you know, I don’t know, I’ll just use these things. But then for work stuff. You know, a jump over to a jump over to my other  to the Windows machine and I’ll be there for most of the day.

Just plunking along and doing my thing and it’s pretty fun. I think the one thing that I have to get used to. Is, I’m used to doing like thumb on the command key, like command Q or command w to close a window, you know, command a. So I use my thumb for that. But on the Windows machine I have to use my pinky for the control key.

So that’s taken a bit of a Delian cause yes. Like for the first few weeks that I was doing it, I kept popping open the menu. I’m like, why is it keep,

Oh right.

Because that’s where the Windows key is.

Jon: [00:48:14] You know, it took me some time. Speaking of commands and controls and stuff, it took me a while and I still don’t really have the, it seems still a little bit random. What is control on what’s command on Mac and on on Windows? I feel like there’s kind of a control and. Alt and Windows key, all kind of like conceptually do different things.

I can never remember. Control, command, shift, Q, a, you like, whatever. You know what I mean? It took me a while to remember like what all the screenshot keys are and stuff. so I feel like that’s a little bit weird. I don’t know.

Rob: [00:48:51] Yeah,

Jon: [00:48:53] On Windows lately I’ve been liking also, I don’t know if you use this, but the Windows power toys, There’s some cool stuff that they’re adding in there that’s like just all these cool shell features that it’s like, Oh, I wish they had that a long time ago, but this is beautiful, you know?

Rob: [00:49:07] only thing that I do in Windows proper is, open up edge, which I use. cause it, it, it has all the certificates and everything, so it just goes and accesses a corporate email. So I mean it’s, it’s seamless. And, outlook web is great. I can’t use outlook web, for people who are wondering, the way our security is set up.

I can’t use outlook web unless the machine is registered with the, with the company. So, yeah, I mean, other, I used to be able to do that, but not anymore. But anyway, that’s the only thing I do inside of Windows. And maybe I’ll play around, in outlook or some other too. Like I really like, Oh, what’s the screen capture tool called?

Snagit. Yeah.

Jon: [00:49:48] Yeah. But they have the built in. well, I, I’m sure it’s negative does more, but they do have on Windows now, the wind shift as,

Rob: [00:49:56] yeah, so I’ve been using that to Snagit. snap. I liked the way Snagit stories, everything in a library. and so I’ve been, yeah, I’ve been doing that, but yeah. You have to poke

Kevin: [00:50:05] So wait, Robbie’s, are you saying you mostly just live inside of WSL?

Rob: [00:50:11] yeah. And

Kevin: [00:50:12] So you’re saying your favorite, your favorite feature of Windows is that the one that lets you pretend is not Windows? Is that.

Rob: [00:50:17] Yeah. Well, and yeah, that sounds like that, huh? No, I use a word I use word a lot, like all those, you know, office apps. I mean, our whole team, we use a whole slew of them. I use teams of course. So all of those, corporate  things I use, for sure. But yeah, for development stuff, I don’t, I haven’t gone in, I don’t, I’ve haven’t opened Visual Studio once.

I probably should, but he’s don’t do.NET stuff. And I, you know, for note and anything else VS Code is amazing. So I use, I use mostly that.

Jon: [00:50:48] I think one nice thing that you kind of went through kinda quick as the, the hardware independence, right? You’re able to pick all your stuff, right? And so that’s still, partly I have, you know, the Mac book is great for like. All my office stuff I’m doing on there. Of course, any browser stuff, any dev, like the dev, I’m having a great time with that.

but then I like, if I want to play a game or something, you know, or like I’m recording this call on my, on my Windows machine. Cause like, I’ve got a huge hard drive and I’ve got a ton, you know, like tons of memory and lots of 48 CPUs or whatever. And it’s just doing its thing, you know? So.

Rob: [00:51:28] Yeah, no, that was one of the fun things is going to the Microsoft store. we have right here in our mall. It’s right across, of course, from the Apple store.

but yeah, walking through there and I was texting Damien Edwards and like, alright man, help me out. What do I get? You know? And so of course everyone is pushing me towards the surface book, which, you know, is that what it’s called?

The surface pro, whatever, and the beautiful machines, I mean, the keyboard is amazing and I love the idea of touchscreen, but again, I don’t like touching the screen. I don’t know why. I just couldn’t see myself using that. And then I, that’s when I realized I need horsepower. And so of course they had like six different models.

If all different kinds of machines and they’re all so much cheaper than, you know, the high end Macs. If so, you know.

Jon: [00:52:15] Well, so on both sides of this has been interesting with with the Mac book, I had to try. I installed steam and there’s a decent, not a huge amount, but there were a decent amount of games in my library. Of course, a lot of them were the more kind of like boutique, you know, kind of more, like not the huge first person shooter kinds, but they’re just kind of like cool story focused kind of games that actually did show up on the Mac book.

So that was cool. I think a lot of games are built in unity and so there, that’ll work. Okay.

Rob: [00:52:46] yeah. The days of the days of having isolated games, you know? I think that’s kind of coming to an end. However, I will say that. Gosh, I can’t even believe I’m admitting this out loud. I still jump into world of Warcraft just because that’s me and I have, so I bought a new Mac book, the brand new 16 inch, cause I couldn’t stop myself cause I, the one critique I’ve always had is that the graphics, the graphics look beautiful.

But if you try and do anything graphics intensive, the card is just not very good. You know what I mean? Whereas the Windows machine I have is just all the horsepower in the world. Well, anyway, the new Mac books have. Killer graphics cards. And so I couldn’t stop myself. So I went and got one of those

So the funny thing is, is I was like, all right, I’m going to go see what world of Warcraft, cause that’s my, that’s my benchmark is like how high can I jump the settings on on the thing. So I logged into Warcraft. It was okay. It was pretty good. I would say it was about a 20% improvement over my old machine.

Yeah. You go on, you go on the Windows box, forget about it. I mean, Whoa, like even on this, I have a 34 inch, 37 inch monitor on my desk here, and it’s a big one. And what I mean, I just ramped it all the way out. I have like, it is as smooth as butter. And so to me it’s like, man, there’s still difference is the graphics processing on Windows VR, like as far as some games go versus Mac is just, it’s not there yet.

Jon: [00:54:18] Hmm. One other interesting thing that they’ve done on Windows that they should have done a thousand years ago is there’s an XBox app in Windows 10. And a decent amount of XBox games will run in there. so, and then

Rob: [00:54:36] been wondering about that.

Jon: [00:54:37] I wouldn’t necessarily, myself, I’m very, very cheap. but I, I wouldn’t necessarily like go out and spend on it, but they have the Xbox game pass that they had a really good deal for Microsoft employees.

So I got that. And then there’s all these games on there and I’m like, Whoa, I could play it. So I mean, I already have steam games and. And stop. I mean, I’ve got more games than I’ll ever play. Of course, cause they have the steam sales and you have to buy them all. Then you never play them. But, but it was neat looking at XBox and go like, huh, I could play all these games if I wanted.

Rob: [00:55:09] Yeah.  sitting on a meeting like mute yourself,

Jon. You’re not muted. I can hear you clicking.

Jon: [00:55:16] yeah. I actually have played Wolfenstein lately, but the new Wolfenstein where you’re, it’s like.

Alternate history if Germany had won,

and now it’s modern day. Yeah. That’s fun.

Rob: [00:55:29] fun. I was on a meeting, I think it was. A few months ago and I mean, it was just like a really loose, loose, whatever internal team meeting. like someone had done that and they forgot to mute their, their microphone and like, you could hear him go bang, bang, bang, bang, bang.

Jon: [00:55:46] that’s amazing.

Rob: [00:55:47] you’d think they’d have the headphones set what they did. And anyway, everyone was laughing. I mean, you know, no one cared at all. It was not a big deal.

Jon: [00:55:55] I saw someone tweet recently about a Zoom meeting where it was, I think, medical professionals or something, and somebody thought they were muted and they wear it. They’re like, this guy is an idiot, and they just said it out loud, and then that ended the meeting basically.

Rob: [00:56:09] Oh no. You know, what was it? Maybe he was set up as a potato. I’m going to do that. I’m going to get my potato cam going. Have you read about this? Oh, someone couldn’t figure out the, they changed themselves into a potato. for a meeting and the, and it was something to do with, I think it was snap cam is what they were using, but they thought it was the software.

I think it was Zoom in there like forever trying to figure out how to,

how to undo it, and they couldn’t, so they just carried out the meeting as a potato.

Jon: [00:56:40] And it was a cabinet meeting or something probably right.

Rob: [00:56:43] God, exactly right.

Jon: [00:56:48] Well, yeah, I mean I guess so kind of summarizing some of this stuff. It is weird like I’m able to use, like I went, I had a similar experience, Rob, where I like on the Mac set up all the stuff with Z shell and all the console stuff. And then I was like, I guess I should do this on my Windows machine cause I just never gotten around to doing it.

And it was like basically like copy of the stuff over and do the same thing. And, and. And then I, I am just finding so many of the things are like not that different. I mean, there’s little, there’s minor things about like, the finder doesn’t do exactly the same thing that the Windows Explorer does and stuff, you know?

But for the most part it’s like, dang, it’s a, so many things now I’ve just kinda gotten a lot more simple.

Rob: [00:57:35] Yeah, it’s true. I think for me, the biggest, the biggest thing that I’ve finally did, I was resistant to Dropbox forever. And you know, I’ve tried all these like solutions. In fact, there was one that you could, what was it called? ownCloud, where you can set up a server on digital ocean, download the client, and then you have your on Dropbox and which is kinda cool.

But you know, it just, it would crash. I have a NAS, right. So I have a Synology I tried using that, but it would ramp up my CPU to 100% cause I’m like, nothing works as good as Dropbox. So if I always like, just pay, just pay for the damn thing. So now, yeah, what? I have two terabytes or something like that.

I store absolutely everything on there and I don’t ever have to worry about it.

 Kevin: [00:58:21] Okay. Well, I think we’re about at about an hour, so probably time to wrap up this discussion. Thanks guys.

Jon: [00:58:27] I have one. I had one revelation. Just as you’re saying that,

Kevin: [00:58:31] Go ahead.

Jon: [00:58:32] a very funny thing is, you know, people joke about the year of Linux on the desktop, and part of what I think has made. Both of these Windows and Mac kind of, you know, similar is the whole Linux thing, which is kind of crazy. Right. You know, I mean, it’s the Mac, you know, with the whole thing of moving to Darwin and, and the whole kind of Unix-y underpinnings and then Windows, like just as part of the whole open source development thing, like not just the terminal, but also just like the way that things work has gotten a lot more.

Unix-y. And so it’s just kind of funny seeing that

Kevin: [00:59:11] Yeah. I mean, I’ve, I’ve always thought that the reason why the Mac became so popular in. The development space was, had nothing to do with the, the UI. It was about the fact that it was Unix under the covers and so, and everybody was running Unix on their server. So it gave them like a Unix experience.

and, and now, now Windows is finally getting that.

Rob: [00:59:32] I know, but it’s interesting. It’s like true Linux blows my mind. It just blows my mind.

Jon: [00:59:39] if you know, it’s funny to me too, how Windows has been like for a while I was always jealous of Mac getting more by doing less by just running on top of Unix stuff and using stuff like chromium and all this stuff. Right. And so it’s like.

You know, taking advantage of code that they didn’t have to write and things they didn’t have to design.

and Windows is finally starting to do that. Like there’s the WSL with the whole Linux experience, but also like, you know, Rob, you mentioned edge and edge is running on chromium. You know, and it’s like, they don’t have to, you don’t have to write everything. You don’t have to invent everything, you know. So it’s more about like being the packager and, you know, support.

And. You know, updates and stuff.

All right, now I’ll let you wrap up. Kevin.

Kevin: [01:00:27] Finally. alright, thanks. tune in next time for another episode of Herding Code.

    Rob: [01:00:35] Woo woo.

Herding Code 240: Phil Haack on Working from Home

Download / Listen: Herding Code 240: Phil Haack on Working from Home

Jon, Kevin, and Rob talk to Phil Haack about working from home.


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


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


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


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


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’re sitting in a room and one person is on the screen, it’s not a great experience even for the folks in the room, if that, you know, when they’re trying to hear that person on the screen.

That person on the screen is constantly, you know, trying to, you know, get into the flow of the conversation. And then if you have lag or anything, it’s just a really bad experience. But if we’re all battled in on something like zoom, or if you’re a Microsoft new teams, then you know, you’re all on a level playing field and the meeting can actually go more smoothly that way.

Jon: [00:14:23] Hmm. Yeah. I mean, you pointed out the, the move to open source. I think another thing too is Microsoft just, and it just happened for business reasons, but to move to the cloud first, Azure and you know, Office online and you know, like Microsoft selling all these cloud native products has kind of forced that to like, you know, where it’s like, Hey, people are there, there’s business internal reasons to move and it’s just easier to move stuff instead of hosting your own SharePoint, whatever weird thing to like, just put it up on, you know, whatever.

Like spin up an Azure website or share something with, you know, in one of the hosted cloud solutions. And like you said, then it’s all single sign on and it’s just. You know,

Phil: [00:15:10] Yeah. Like the, the cloud services made, like required. what do you call it? Required federated identity into be a priority at Microsoft. And then, like you said, I think the, the move to cloud services is also related to the move to open source. Because you know, once you’re in the cloud, who cares what you, who cares what anyone runs, you just want them to run on your cloud.

So like supporting open source makes a lot more sense for, for the business model.

Jon: [00:15:38] Well. So I wanted to kind of go through some of the stuff, the recommendations and stuff that you had in your blog posts.  you started off in your, like, how to work from home and, and there’s two things in here. One is you give, you have several things, you know, wear pants, have ritual, set boundaries, set work hours, got your distractions, focus, communicate, you know, like all the, all these things.

And, but at the end, then I think in kind of a counter thing to a lot of that is be flexible. Like in other words, here’s a bunch of things to do. But like in other ways, it can also be a bit of a… I guess I’ll step back to when I started, a lot of these things were things that I had to learn. Like I had a separate office.

I actually had my wife like chat me on the whatever, you know, a chat app. Like instead of like coming in and saying like, Hey, know, need you to, do something or whatever. Right. You know, pretend like I actually was at work and we both liked it better that way. You know, I was at work for the day. But then over time you like realize what you can be flexible.

Phil: [00:16:53] Okay Yeah. I think this is the classic path of the expert, right? you know, when you’re learning programming, you’re, you learn these steps, like, Oh, take these five steps every time you write a method. Oh, don’t forget to write that unit test before every single method. And then like, write one line of code that makes, you know, go through the red, green, refactor. And then as you become an expert, you know, like, it’s good to ingrain those skills. Kind of like, you know, in the original karate kid, wax on, wax off, right? But then over time it, you, you start to learn, Oh wait, you know, I’ve got, I’ve internalized these steps, but now I know. In what nuanced situations, I can relax a step or two, like, Hey, this method, maybe I don’t need to write a unit test first, but for this one, let me just, you know, write that method because it’s relatively small or whatever.

And so that’s kinda, you know, the be flexible part is meant. I meant it as like, once you really internalize these and, once you’ve seen what works for you. yeah, don’t go like, don’t go too hard down the road. Like for example, you know, one concern I think a lot of people have right now is with this pandemic, everyone or a lot of people going remote and then they’re not being as productive.

And so people are, you know, saying, Oh, this is a, an indictment of remote, distributed work, and it’s like, no, it’s an indictment of a global pandemic that is being completely mismanaged in our country at least, and where it’s affecting so many people’s lives. And, a lot of people may die from it. in that circumstance, I don’t care where you work, it’s going to affect your productivity because you probably have more important things to worry about.

And so, you know, one level in terms of being flexible, I recommend like, you know, allowing yourself to realize that this is a really unusual and difficult and challenging time. And if you need to take more breaks, if you need to step away from the computer, a step away from social, I was about to say social security, social networks, you know, do you, so there’s a really great, blog post, by Alice Goldfuss.

She’s actually a former GitHub Employee, but I never really personally worked with her. But, she has this great blog post work in the time of Corona. And a lot of her advice really focuses on sort of how do you preserve and maintain your mental health while adjusting to this new life, you know, and it, you know, one of our first points is.

It’s okay to feel bad and I’ll send you the link later. But, I think, you know, first and foremost right now, it’s okay to be less productive. It’s okay to, you know, take care of your affairs at home and relax. But you know, when you are ready to work, you know, when you are in the right mindset. You know, I hope that the tips that I’ve wrote are good guidelines for, you know, how to set yourself up for success.

because I’ve seen a lot of people who are like, you know, I just can’t focus at work right now because all of this going on. but ironically, I’ve had kind of the opposite, reaction where I haven’t been working all year pretty much, cause I had been burnt out. and then, you know, this happens and suddenly.

I’m a lot more focused that, working on a project. I mean, I wouldn’t, I’m not working full days, but I’m working on a project because it’s giving me something to distract me from all the bad news. And it’s a project that, hopefully is a boon and a benefit to people doing remote distributed work.

Jon: [00:20:25] Yeah.

Rob: [00:20:27] You know, I wanted to echo what you said, Phil. Cause honestly, social media and news, used to, my habit, you know, I’d wake up every morning and kinda give myself a few minutes just to, to, to wake up. And then I had this habit of grabbing my iPad and it just kind of. things cause I’m three hours behind the West coast and like most of the day is already happening.

So I kind of feel like I have to catch up the minute I wake up. But wow. I mean, this last few months I would get up and feel completely drained because I was reading the news and listening to.

And I think it’s important that people stay informed, but I don’t think you need to stay informed the first 10 minutes of your day.

I can’t tell you, I cannot emphasize enough. How that has changed everything for me. I don’t read anything until noon figure, you know, if something really bad happens, I’ll find out about it somehow. Either through work, chat on Slack or whatever. that’s thing one. And the other thing that you said, what was it?

You made two points. Darn it. I forgot the second one.

Phil: [00:21:28] It’s okay to feel bad.

Rob: [00:21:31] Oh, you were talking about how you, how you’re now feeling, you’re feeling enlivened. Because you’re helping

Phil: [00:21:38] Yeah. Yeah.

Rob: [00:21:39] you’re helping people. And I, and I was trying to explain that to my kids, cause you know, they’re down, you know everyone’s down. Right. And, and you know, and coworkers too. And I was like, if you can reach out and help someone else in any way possible, it’s a, it feeling of doing something as opposed to sitting there doing nothing, which is the worst.

But yeah, I wanted to emphasize that too, because fell that’s a great point. Reach out and just help in any way you can. Even if it’s just to say hello on Slack. I mean, a lot of trying to figure out Slack right now and in, you know, teams, if you’re using this this weird kind of thing that they won’t, they, they have to like ask you, is it okay?

Do you have a second to chat? We’ll screw it. Just just chat away, you know, and say hello.

And a lot of times you’ll find people really, really appreciate you given the 

Phil: [00:22:26] time.

Okay Oh, I totally agree with that. I find that a, a lot of people have a sense of helplessness right now because they can’t influence, you know, a global or national policy and they’re seeing how. Yeah. I’d only in that the response has been, to this crisis and they feel like helpless. Right? But there’s always something that you can do within your sphere of influence, you know, even if it’s just helping one person and that, you know, not only helps them, but it also helps you and.

the other day, you know, like, I since leaving GitHub, I’ve been really enjoying going to the gym every day and it’s become my main social outlet, you know, going in, cause it’s a regular class. So I see the same people every time we work out together. Chat. And, you know, I really missed that interaction cause I didn’t really, you know, I wasn’t working at a company so I didn’t have that social network.

but, so the other day I, you know, messaged a few of the folks from the gym, I said, Hey, look, you know, I found this cool workout. I’m going to try it on zoom. If you want to join me, call into this channel. And, Let’s do it. And so, yeah, three guys joined me and we did a, a workout and it was a lot of fun and I had a really good time.

I’ve had, in fact, I’ve been telling people I’m probably a lot more social now than I was before because, through zoom I’ve had several like whiskey meetings or, you know, like hang out at happy hour meetings with people. And there’s a lot of cool benefits. One, I don’t have to get dressed up to, I don’t have to drive anywhere.

Three, I don’t have to call a Lyft to get home after I’ve had too much to drink because I’m already home. When, when our, little hangout is over and I was like, Oh, this is kinda, it’s kind of a nice way to, you know, hang out with your friends.

Jon: [00:24:20] Yeah. It’s been interesting seeing a lot of different things moving online. gotten into through a Tony Horton doing thse P90 things. And he started doing these 3 days a week online, Facebook things. And it’s pretty fun, you know, and it’s like a live thing and people are showing up and know, it’s, it is, I mean, we’re adapting.

We are, you know, it is nice that we all have internet and we all, you know, are able to, to connect in that way.

Rob: [00:24:50] well I was just really quickly going to interject and say that, I was talking to a friend about this, cause we have a gym in the building I live in, which is so lucky. And I, you know, you meet people, like you’re saying, Phil, you meet people and you talk to them and whatever. So they shut down the gym in the building last night.

And, and I was talking to this person that I’ve seen down there before and he’s like, I need to go to the gym. He’s really built because I need to go to the gym at all, I’m going to do. And so I said, well, if you’ve ever seen these, these things called TRX, TRX suspension bands. They’re not like the bendy kind, but they’re like the military  suspended from a doorframe or your ceiling. The straps that you can adjust, they’re amazing. You can get a full gym workout. It’s crazy. So anyway, put a link in our chat here, Jon, if you want to add it on the show people that are at home and they don’t have the equipment and they can’t get to the sporting goods store, Amazon will deliver these, then, yeah, join Phil for a workout.

Why not?

Phil: [00:25:45] Right?

Rob: [00:25:46] You did

Phil: [00:25:46] Yeah.

Rob: [00:25:47] I mean what? I heard you say

Phil: [00:25:50] Sure I, I, I guess I am now.

Rob: [00:25:52] you should. You know what? You should do that. You should Twitch your workout man, and we should all just join. Let’s do it.

Phil: [00:25:57] That’d be fun. You know, and kind of relating back to working from home like this, you know, . People are social beings. And you know, one of the things that, was really challenging when I was at GitHub was the sense of isolation, loneliness, even as a member of a team, especially the leader.

Because you know, a lot of times, like your colleagues, you know, the people you’re working with, they’re not really your peers, right? They’re the people who report to you in this sort of a different relationship there. but it would feel lonely at times. And you know, what we do to try to ameliorate that, is to actually have hangout times with , my colleagues that wasn’t focused on, some work in particular. one thing we would do is we would have, you know, Brown bags, once a week, and then, you know, anyone could call in. I, I may have even blogged about this a while ago. I just can’t find it right now, but we’d have Brown bags once a week, and then we’d all call in and do the, you know, with that zoom was nice as you can do the gallery view, which gives you that whole Brady Bunch look, if you have nine people. Yeah. But we would do these meetings and then, you know, kinda hang out and, and be intentional about the social aspect of working. And I think that’s really important because, you know, when you’re distributed and remote, it’s really easy to fall into the trap of like, Oh, like.

I’m all work all the time. And that’s what it’s all about. But you know, you’re working with human beings and it’s really important to establish that relationship with each other as human being. And that comes a little more naturally when you’re in person, because you know, you run into each other in the hallway, Hey, let’s go grab lunch.

Let’s go grab a coffee. but you know, you’re not running into people when you’re home, or at least I hope not. and, you know, you have to be a little more intentional. Hey, let’s do a hangout where we just hang out.

Jon: [00:27:50] Yeah. I think the whole like intentional is a thing that like going through all your posts as well. There’s a lot of things where you just need to be intentional ways where like. Going to work and being in a building and being in meeting rooms with other people, like there’s a lot of stuff that just that when you’re from home, you need to be intentional.

Like, need to intentionally, you know, communicate. I need to, know, like, being productive and re removing distractions and, you know, setting my work hours, you know, as opposed to like going into a business, you know, office, your work hours are kind of set for you, you know? And that whole thing about intentional communication, I think is so important.

And there’s. W w one thing that I’ve seen with that like, really important to intentional with, what am I doing with this communication? For instance, if it’s a meeting, let’s get it done. Like I want an agenda, I want to be, I want it to be productive, you know, I wanna, I wanna like focus on that. If it’s a…

But then, like you’re also saying, if it’s a social hangout, Hey, be intentional about your social Hangouts as well. And, and you know, like, not mixing the two. I think mixing the two can be frustrating. Like if you want to have a stand up, it should be if it’s a social thing, make it social.

But if it’s a stand up, boom, boom, boom, let’s knock it out and get to work. You know,  always weird when it’s like not communicated. Are we hanging out or are we doing work or what? You know?

Phil: [00:29:26] Yeah. Like when you’re a manager, you learn one of the secrets to, you know, good high functioning teams and good performance is. Having clear expectations and accountability towards those expectations, right? yet at the same time, you, when you go to a typical workplace, you see that that’s not put in practice all the time in all aspects of the company where it would really be a big benefit.

For example, meetings are a really great example, right? Like how often do you go to a meeting and the agendas and clear, and you have no idea. Why are there or what, the goal of the meeting is, and you, and you know, it all comes down to the, there are no clear expectations for that meeting. And the meeting is expensive, right?

You know, you’re, if you’re, if it’s an hour and you have five people, you know, you take their hourly rate and that’s a lot. And a lot of times, you know, those meetings could easily be replaced with an email or a discussion and, you know, some place. And so. Often better to try to replace that, replace meetings with discussions.

Jon: [00:30:30] Yeah. that’s something you called out the asynchronous workflow and the kind of writing things down, and then, you know, a common pet peeve is the how people use chat. Like I think. If you know, in a more office center culture, when you chat people, the, the inclination is to just say, like, Hey, you there, like you just want to get something, but a much better thing is, Hey, could you clarify what you meant when you said we should close issue one 23 like that’s something that works well asynchronously and, and we don’t have to waste the time with, Oh, Hey, sorry, I missed you. I was getting coffee. Oh, Hey, blah, blah, blah. You know, it’s just like, ask your question.

Phil: [00:31:10] Right, right. Embrace the asynchronous nature of chat.

Jon: [00:31:14] and then that flows well over   you know, open source thing as well too. Like, like just like say your say your thing in a way that that allows us to make a decision and move forward.

Phil: [00:31:29] Yeah. You mentioned making decisions and, I think one of the biggest challenges that I saw, and this is an organizational thing, but it, it, I feel like it’s semi-related to, Distributed remote workforces. And one thing I want to be clear before I get into it is, a big theme you’ll see is like all these practices I talk about are, I think equally good, if not more so for co located teams.

So if you work in an office together. I think these are good practices to have because you never know when someone had to take a sick day until they missed out. but I think that they’re compounded when you’re remote and distributed. If you don’t do these things, the, the impact is far more, it’s far bad.

It’s worse. Excuse me. My English is not working

anymore Far

batter. Yeah. Yeah, that’s right. so. What was I going with this?

Jon: [00:32:26] Well, you were saying that it’s these, these are practices that are important for co like located teams as well.

Phil: [00:32:32] Right. But we were talking about something right before that

Jon: [00:32:35] decision making.

Phil: [00:32:36] decision making. Yes. Okay, so what.

Yeah. This is one of the downsides to working alone. A remote distributor for too long is like your ability to have conversations with adults can start to decline.

Rob: [00:32:50] well

Phil: [00:32:51] that’s why.

Rob: [00:32:51] Washington. It’s legal in Washington, so we’re okay. Phil, you’re among friends.

Phil: [00:32:59] So what was I saying? Oh,


a lot of times decision making and remote distributed companies can be really challenging because conversations can feel open-ended if they’re asynchronous, right? Like I posted this question and then I wait like three days and the person didn’t respond, and I’m like, well, do I go ahead?

Or no, I guess I should wait for their response. Whereas if you, you know, if you corral a group of decision makers into a room, you can often, you know, say, Hey, we’re not leaving this room until we come up with a plan of action for X, Y, Z. Although, you know, I’ve seen a lot of companies still can’t make decisions even when they did that.

And so I do in my series, talk a lot about. How do you make decisions as a remote distributed company? And again, it comes down to setting clear expectations. Being very intentional. timeboxing is a really important one, intentionally reaching out to people and making it clear who are the decision makers and who are just being asked to weigh in and who are, is being asked to observe.

Right. and I mentioned a couple of different frameworks for doing that that are very popular, RACI and DACI. But I think, you know, making sure that you have a clear path to making decisions is really important. And as an illustration of that, you know, when that Friedman, took over as CEO of GitHub, not long after there was sort of this, you know, the pace of get up shipping features sort of, you know, really increased.  And from the outward looking in, it seemed like. Oh, wow. You know, Nat is really like rev the engine. but you know, from my experience, a lot of that stuff that they were shipping was already being worked on, but they were being blocked by, you know, indecision, like, Oh, like, you know, this isn’t good enough to ship, or who can make this call?

And that I think went in and just said, Hey, look, let me make those decisions, ship it and iterate. And I think that really unblocked a lot of stuff that had. Already been worked on for a good while. and sometimes you just need that person to say, Hey, this, let’s make decisions as make them quickly, but let’s make sure that we have resiliency in the process of that.

If we make any mistakes with those, we can fix them quickly.

Jon: [00:35:18] Hmm Yeah, yeah. I think focusing on that and as part of communications as well, like very easy, you know. As you mentioned in different, all different kinds of things like there’ve been email threads where people, when you see an email thread you can respond with, here are some thoughts I have about it, but really what’s the point of the email thread?

Is it to make a decision? Is it to, you know, like, and if it is, what are the next steps? So, you know, and, and those sorts of things where, so of just saying, you know, kind of rambling, let’s say like. I, I propose this, this is a, you know, or if I don’t hear back by this day, I will, you know, delete all the files or whatever it


Phil: [00:36:01] Right. Yeah. Time boxing is definitely an important component of that, saying, this group is going to make a decision on this date. You know, you have until then to provide your feedback.

But you know, making it clear, they are the ones who are making the decision. Right.

Jon: [00:36:19] And often they’re, if you have a, if people are not responding or not, then usually the best thing is to propose a very bad idea with the time box. And then people will jump out of the woodwork.

Gosh, how do you handle things like, you know, time zones. you know, and that’s something too where some people asked about that. How, how. You know, how do you handle just the kind of distributed time zone part to that?

Phil: [00:36:46] Yeah. You know, for a lot of companies right now who are quickly moving into it, you know, they’re often, they’re moving into it because they’re forced to buy, like work, work from home decrees. And so they’re already co located. So they are fortunate that they don’t have to deal with the distributed times on things.

But when I was at GitHub, I had a team that had, you know. Oh, almost everyone in a different time zone all across the world. And it, it’s more challenging because your throughput on a single th it’s, it’s a lot like a asynchronous programming, right? Or a parallel programming. Your throughput on any single thread at work will slow down.

if I write a piece of code and the person in New Zealand is the one who’s going to review that piece of code. They’re probably sleeping when I’m done. So, rather than just sit there and be blocked, you know, the thing to do is for me to go on to the next piece of work. Right. and, and then, you know, in the next day, hopefully when I get up, I’ll have a nice code review that I can look at and address.

And so that’s the, you know, one of the main things with being distributed across time zone is to embrace the fact that, you know, you. You may slow down, throughput on any individual line of work, but just like with computers, what you do is you just spin up more processes, right? You spin up more threads of work, you,

you distribute, you, Cool. What is it you try to focus on making sure that nobody is blocked at any time? You don’t want to block threads. Instead, you just move to the next thing. and then the other thing is, you know, making sure that you give people time for feedback. You know, if you propose something and then, you know, you wait an hour and they start going through with it.

Well, the person in the other times and it didn’t get a chance to weigh in and they may, they might have some important, important feedback. one thing we would often do, especially for really important poll requests is we would keep them open roughly 24 hours that way before we immerse them that way people could, You know, chime in who might be effected by the pull request. Now for small things, we didn’t do that for everything. Right? Cause like again, be flexible, be smart. You know, like for something really small, we might say, okay, you know, I got someone here to review it in my time zone. We went ahead and merged it.

And if you see anything wrong with it, you know, we can always do a revert. We can always address it after the fact. You want to look at the cost benefit, right? Like what is the cost of getting this wrong versus the cost of,  all right, getting it right. The first time versus the cost of getting it a little wrong and then fixing it and sometimes getting it wrong and fixing it is actually cheaper than, you know, holding something up to get it.

Absolutely right. It really depends on like how much damage it would cause if you got it wrong the first time. but overall, like taking on. Asynchronous workflows like that. And, and I think the analogy to asynchronous programming is really apt because like, we’ve solved a lot of these things where, you know, Oh, we’re worried about Moore’s law slowing down.

So we started to add more processors and we’ve had to come up with new ways of programming and new way the distributing work across the, and tasks across those processors. Well. It’s not a perfect analogy, but that actually kind of works when you consider people at a distributed across the planet.

Jon: [00:40:11] Hmm. Yeah, it’s interesting. Some of the things you’re talking about, I’ve been reading this book Accelerate, and it’s like lean software and dev ops and applying it to organizations. And, a, it’s a, you know, some of the things like small batch size and all the, you know, like focus on small, short turnaround and those apply very well to the asynchronous work, and if I’m working on a small thing. That’s done. Pass it to the next person. Move on to something else. Oh yeah we got a few questions over Twitter. so one, I think you kind of answered already, but, Khalid says, how do you stay in shape when sweat pants are so comfortable.

Phil: [00:40:53] Well, you, you, you put the sweat and sweat pants, and go, go exercise. But I mean, I think there’s a great question. I think, yeah, organize it with other people. if, some people are really great at. Kind of following their own schedule and being a solitary, you know, gym rat. And if you are, that’s great, on the kind of person that I sorta need that social pressure to motivate myself.

So, you know, getting people to hold each other accountable is a really great way to keep in shape.

Jon: [00:41:28] Cool. Cool. Yeah. I’ve seen people do this different ways. We have, there’s a, I mean, just kind of a, a team check-in thing, like they started this coffee or a, they call it the breakfast club in dev dev, and it’s, people just have, a 15 minute coffee and it’s just a quick little chat. But, you know, a lot of the people will be saying, checking in on, you know, I just got off my bell Peliton or whatever it is, you know?

Phil: [00:41:50] Yeah. I started a little pandemic survival club.

Jon: [00:41:53] there you go.

Phil: [00:41:54] Yeah.

Jon: [00:41:55] Yup. And I know some friends that have a Twitter, just like a DM chat, and they just check in every day and. their workout or whatever.

Cool. Andrea says, what’s your go to brand of whiskey for post remote meeting? Relaxed time.

Phil: [00:42:10] Oh wow. We could do a whole nother episode on that.

So lately I just got this bottle, a monkey shoulder, which is a blend of three different scotches. It’s, Glenfiddich Balvenie and, I, and I don’t know if I’m pronouncing right. And then another one that I blanking on, I really like it. I’m a big fan of Yamazaki 12.

I like, Nika from the, barrel and Nika coffee mall.

and, I, I could go on, but, yeah, right now the monkey shoulder has been, I’ve been a real fan of that one right now.

Jon: [00:42:45] Cool. All right. We’ve got one more question here. so Mathias with a, with a more difficult question how has the HR done, effectively, efficiently, and inclusively remotely, things like grief health support? Is there a good way? And, also if there’s a good way for someone to give their notice.

Phil: [00:43:05] Wow. Yeah, that’s a great

question Yeah, so there’s a blog post that I’ll a post to you called be this manager now. And it’s by, Nicole Sanchez. she, worked at, also worked at GoodHub for a little while and she, kind of implemented the first, diversity and inclusion training at GitHub. And now she is a consultant at via consulting.

she’s amazing. If you, your company can. afford to hire her for management training. I highly, highly recommend her. She’s really great. she has a great blog post about the type of manager you want to be in this tumultuous time or in any tumultuous time. She talks about checking in with everyone one-on-one privately, but, you know, remember like HIPAA, you know, advocate for your employees.

Stay informed and take care of yourself, yada, yada. Really good advice. I mean, yada, yada is in and so on and so on. Yada, yada can sound dismissive. I didn’t mean it that way. So, and, and so on. so going back to the question, I mean, I think as a manager following these guidelines. Is really helpful.

how do you be inclusive in review performance reviews? I have a whole blog post about, my whole view on performance reviews that, I think it’s, yeah, I think it’s worth reading. Of course I wrote it. but I talk a lot about how, existing review systems aren’t, equitable, even if you’re in person.

you can see how certain people, certain classes of people, especially underrepresented folks tend to score lower, for the same work. So, You know, one of the things you want to do is try to, as much as possible, create objective measures of performance. So like set clear expectations, measure people against those expectations in terms of giving someone notice that I assume he means like firing someone as opposed

to selling

Jon: [00:45:03] else, Or if you want to quit as well. Right. Those are harder

Phil: [00:45:06] Oh

Jon: [00:45:07] discussions to have remotely like,

Yeah, I mean, you know, do it, do it on a, a video conference, you know, don’t do it over email. video conferences is about the closest thing you’re going to get to, you know, just being in person and having a Frank conversation. Yeah. If you’re giving notice, you know? Yeah. I would just, have that conversation and then, you know.

Write a letter of resignation and then, and submit that as well. if you’re on the other end though, and you think you have to fire someone, I mean, in this particular time, especially in our country where health care is tied to our jobs and all these people are losing their jobs all of a sudden, hopefully, you know, like more and more people recognize that, you know, having our healthcare tied to employment is a really bad idea when something like this comes along.

And, you know, I would like hook that companies would delay. That sort of thing as much as possible. But I know that, you know, some companies are in a position where they might just go out of business, which leads to the same result for their employees. So I understand that. Like. Yeah. It’s easy to say, but if you’re a company in a strong position and you can afford not to fire people, you know, I hope that you try to do your best to take the humane stance of not firing them until things have calmed down a bit.

You know? other, if you are fired, you know, like, make sure you understand how COBRA works. C, O, B R A. It is a more expensive than what you’re probably paying as an employee. I did a COBRA when I left GitHub. I did Cobra for a year. And, you know, that it wasn’t pleasant on the pocket book, but it was better than not having insurance.

And then I just recently, my family recently moved to Washington, one of the Washington exchange, healthcare plans, which, you know, they’re cheaper, but not, not by much. but anyways, yeah. I hope that helped answer that question.

Yeah. Yeah. Well, I think part of the thing, you know, we were talking about the communications and how do you, You know, how do you have difficult conversations? And one of the things you mentioned is just, you know, like both as a manager and as a, as an employee is to communicate often and to build the trust through regular communications.

So I think that is an important thing, like having regular, know, discussion with, with your manager so that you comfortable. You… If you feel comfortable and you built that trust, then difficult conversations are hopefully easier too.

Phil: [00:47:36] Yeah. And I put a lot of the onus on that, on the manager. Although, like if you’re a nice individual contributor, IC,  a, you obviously don’t have control over your manager, so what can you do in that position? you know, ask or advocate for a regular weekly one on one. All right? You know, there’s this great podcast, the manager tools podcast, and they had this episode.

And I think it’s a two parter about why one-on-ones are so important and how to do them well. And I was so impressed upon me so much the value of it, that when I was at getup, I actually wrote our first guidelines to one-on-one. So that became sort of the official internal documentation for, you know, why we should do one on ones and how to do them.

And you know, the. One of their points is that your job, your primary job as a manager is to, build a relationship with, your people as individuals. And one of the best ways to do that is through one-on-one. You need to build the relationship and build up that trust. And so one on ones should not be like a status update or some sort of a work meeting.

It needs to really focus on what is it that. The employee needs to talk about and get off their chest or what, what is it that they want? And so they have a whole structure, you know, that they called 10, 10, 10 and which I would sometimes just do 15, 15, but it’s basically 10 minutes, whatever the employee wants to talk about, 10 minutes, whatever the manager wants to talk about.

And then 10 minutes. talking about the future, I found in practice I couldn’t talk about the future. Every single one-on-one, is just wasn’t, you know, we talked about last time and not, not a lot has changed in a week, but I found that conducting weekly one-on-ones was immense in building trust and, relationship.

And you’d basically, it’s, it’s  impossible, or very difficult to have a difficult conversation if you haven’t built that foundation of trust. It just doesn’t go well. Like you can have a difficult conversation, but it’s made more difficult when you haven’t established that basis of trust. But if you put in the work to build up trust, then, you know, you come, you can have that conversation where people are giving each other the benefit of the doubt and I’m assuming good intent. And it’s very difficult. And even then, you know, you have to understand that when you’re a manager, there’s a power differential in that conversation and you have to recognize that and, and do your best to. you know, try to balance that as well as she can. And the power differential comes from the fact that, you know, if you want that person fired your opinion, you might not be able to outright do it, but your opinion weighs heavily.

You can, you know, you sort of hold their career in your hand at that company.

And so, and that’s always in the mind of the employee when they’re having that conversation with you, whether consciously or subconsciously. And so it’s really important to recognize those power dynamics and try to, you know, work to, you know, build up trust so that you can have this difficult conversation.

And when you do have those difficult conversations, you know, there’s a really, you know, there’s a lot of good books out there. One of my favorites is, difficult conversations, you know, apt title I, I know others have recommended crucial conversations. but they go through a whole, you know, they go through a lot of scenarios about how to have these conversations and making sure, for example, that you really understand, the context and the perspective of the other person that you’re not just trying to win the conversation, but that you’re trying to understand their point, you know, as well as they do, you know, if possible.

And then, you know, being honest, upright, and avoiding, you know, some of the tripe things, like the, the shit. Sandwich approach, you know, where you’re like, Hey, I have some good news, bad news, good news.

Jon: [00:51:29] Yeah.

Phil: [00:51:30] Yeah. Like a lot of people feel like, Oh, that’s a good way to soften the blow of bad news. But what it does in practice is, anytime you come to someone with good feedback, for example, they’re waiting for the hammer to drop and, the other practice, Oh, you can see, I get excited about this.

The other practice I highly recommend is make sure you’re constantly giving feedback. And give feedback early. That’s positive. so for example, a lot of times, you know, when the mentors like, Hey, I have some feedback for you. What’s your initial reaction when you just hear that phrase like, Oh shit, what did I do?

Right? But, that’s a problem. You know, it shouldn’t be like, Oh, I can’t wait to hear this. You know, like, cause this is probably an opportunity for me to get better or, or an opportunity to reinforce something that I did good. Right? So if your manager is often saying, Hey, you know, I have some feedback for you.

The way you handled that, that outage was phenomenal. I really liked the writeup. Blah, blah, blah. you know, more of that. Thank you. And then like, you know, once in a while when there’s corrective feedback, you know, you’re in a much better position to take it because you’re like, well, you know this, this manager sees all the good things I’m doing.

They see me as an employee. So, you know, if they have something that’s going to help me improve, I want to hear that. But if the, if the only time you come to feedback is negative feedback or corrective feedback, then you sort of lose your credibility as someone who, is in a position to give them feedback because they’re like, well, you’ve never seen all the great things I do.

Jon: [00:53:00] Right, right. Wow. a lot of good stuff. we’ve got a wrap up.   Kevin, do you have any, anything else you want to throw in.

Kevin: [00:53:08] Phil, you had mentioned earlier. You had, had experiences of a rote, employee, both at the kind of individual contributor level, the manager level and the director level. there, are there things that are kind of unique to each of those levels that, people can think about from a

Phil: [00:53:26] Uh yeah I would say yeah. So like I sort of pattern my blog posts around that theme. So the how to work from home, really focused on, individual contributors. How to lead from home focused on managers. And then I would say like all of it, like at the director level, there’s a little more, focus on setting high level goals and a high level objectives.

And how you, you create alignment with your team. And so I think that I cover some of that in the geographically distributed teams posts. and so, you know, at that level, you know, you’re not, you know, a line manager. You’re not like looking at every check and what you’re focused on is how do I make sure that everyone’s pointed in the right general direction, and then you need to trust them.

To do the, you know, what you hired them to do. Like they’re probably the best developers or best product managers, breasts, quality assurance folks that you could find and they know their job and they. They want to do good work. You know, a lot of people ask me like, Hey, how do you make sure everyone’s working?

And I was like, you know, you, how do you, how do you know anyone’s working when you’re in the office? People are really clever at getting out of work. They don’t want to, but if you have a, a clear, mission that motivates people, you know, they’re going to want, to do good work that, you know, people aren’t looking for excuses to get out of it for the most part.

If you connect, you know, meaning to the work that they’re doing. all, all they need from you is to help them connect meaning to the work and to help them see like what the goal and the objective is. And they will, you know, they will do good work. They will work hard to reach that vision. And that’s a, that’s your role as a director and higher.

Jon: [00:55:17] Cool. Yeah. Everyone likes to finish a day at work and go like, yeah, I nailed it. You know, I got something great done. Right. Like enabling people to get to that is, you know, and then like you’re saying, you don’t have watch every step of the way. You just need to help them get to that spot.

Phil: [00:55:35] Right. You don’t need to tell them what to do. You just need to remove obstacles so they can do the great work that they are really wishing that to do.

Jon: [00:55:44] Cool. Well this has been great. but we gotta wrap up. So, maybe we should have you back on some time soon and talk more about other managing stuff. Cause there’s a lot of good stuff here.

Phil: [00:55:57] Yeah. Anytime, anytime.

Jon: [00:55:59] All right, that’s all the time we have quite literally this week. Thanks a bunch for your time and we’ll talk to you again soon.

Herding Code 239: Jerome Laban on Uno Platform

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.


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

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

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.

  • (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

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.


  • (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.