Category Archives: discussion

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 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 file somewhere. And sure enough, you go and you look up 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 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 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 216: Bash on Windows, Angular 2, Surface Book, Kindle Oasis, Windows Phone

Kevin, K Scott and Jon talk about Bash support in the new Windows Insider builds, their thoughts on Angular 2, K Scott’s new Surface Book, some general apathy on Kindles, and whether Windows Phone is alive, dead, or undead.

Download / Listen: Herding Code 216: Bash on Windows, Angular 2, Surface Book, Kindle Oasis, Windows Phone

Show Notes:

    • Bash on Windows and Windows Insider stuff
      • (00:44) Jon mentions the Bash on Windows announcement at Build and asks if Kevin or K Scott have played with it. This devolves into a discussion of Windows Insider previews. Jon likes it and talks about the steps for enabling Windows Insider preview builds. K Scott has been scared to try it, but it sounds like he’s convinced. Kevin is put off by the Insider term – Windows Insider, Visual Studio Code Insider previews, etc. K Scott adds “Windows Insider” it to his e-mail signature.
      • (05:15) Jon talks about the steps for enabling Bash on Windows. or Windows Subsystem for Linux (Beta), to use the official terminology.
      • (07:08) Feel the excitement of listening to someone type commands into a console window as Kevin asks questions about what’s installed and Jon tries to apt-get it all. K Scott and Kevin wonder about how things like filesystem and processes work, and Jon tries to make up answers.
      • (09:50) Kevin says it feels like an admission of defeat to add *nix support to Windows. Jon says it feels practical to him – developers are building for multiple operating systems (especially including mobile), so it’s nice to have it supported.
      • (11:19) Kevin’s ready for Cygwin to die in a fire, and Jon’s excited about ssh working less horribly on Windows. Kevin says the race is on to get Wine working on Bash on Windows.
    • Angular 2 and React
      • (12:55) Jon worked on a hands on lab for Build that had master-details using Angular 2 and ASP.NET Core. He said Angular 2 seemed a lot simpler than Angular 1 now. K Scott said the component model is simpler, but he’s seeing some resistance to the ECMAScript / TypeScript updates, new binding syntax, etc. The Angular 1.5 release also includes a component model that’s a much easier programming model. It almost feels like some older Microsoft component-based programming frameworks going back to Visual Basic 6: you’re working with components that have simple properties and events. The guys speculate on how soon someone will build the big visual editor for Angular 2.
      • (16:21) Kevin says TypeScript seems like a barrier. K Scott says it’s not strictly required. He rejected TypeScript for a while, but when he was working with Angular 2 and tools and editors supported it he decided he liked it. Jon and K Scott talk about how a lot of things that throw people off about TypeScript are really just modern JavaScript syntax.
      • (18:50) The guys discuss how Angular 2 and React mindshare will play out. Jon likes React as long as he never views source. Jon thinks the unidirectional flow is really simple, and Kevin agrees – after years of lower level Backbone, the simpler flow in React saves some mental energy.
      • (20:29) Jon mentions that React Native recently came to Windows, too.
    • Devices: Surface Book, Kindle and big batteries
      • (20:56) K Scott got a new Surface Book (after waiting to make sure nothing new was coming out at Build). He says it’s the best piece of PC hardware he’s bought in years – the build quality is good, the keyboard is good, he gives the trackpad of 9 out of 10. He says that the detachable tablet is a bit large as a tablet, so he’s using an older Surface for reading.
      • (23:58) Jon jokes that K Scott’s not likely to buy a Kindle and says he gradually stopped using his Kindle when he moved to Audiobooks, and kind of associates reading with work now. Kevin says that’s sad. They talk about Kindles for kids’ books.
      • (27:07) Kevin says the two big things he picked up for the new Kindle are physical page buttons and a three month battery. He says the main thing he likes about Kindle for both him and his kids (as opposed to a tablet) is that it forces you to read instead of getting distracted. The guys decide that tripling the life of an already one month battery isn’t a huge win.
      • (29:20) Jon says he recently bought a portable battery that can recharge his laptop, which is handy for long flights. (note: he said it was iPad size, it’s a lot smaller but is 1.2 pounds)
      • (31:15) Jon asks Kevin about new Apple hardware. Kevin says the iPad Pro screen is apparently astounding – he’s expecting them to be amazing in a few generations. Same for Apple Watch – he doesn’t have one yet, he’s waiting for version two. Jon says the improvement from Microsoft Band 1 to Band 2 was pretty nice, especially in the industrial design.
    • Lightning Round: Will Windows Phone be dead in one year?
      • (33:40) K Scott asks if Windows Phone will be dead in a year. Jon hopes not, as he just bought a Lumia 950 XL. He’d had a budget Blu Windows Phone since September, and the Windows 10 Insider builds were nice, but the camera wasn’t very good. He really likes Windows 10 as a phone operating system and thinks it’s sad that so few people will actually see it.
      • (35:55) K Scott got a Lumia 950 XL in January (when he dropped something on his previous phone). He got the docking station, too, and said it worked surprisingly well. The guys discuss how useful docking a phone is; Jon postulates that it could be useful for someone who does everything on their phone and occasionally needs to write a long email or edit their resume – especially if it can be hooked up to a TV.
      • (38:30) Kevin says that Windows Phone isn’t dead. it’s undead. It will linger on in a zombie-like state indefinitely.
    • Scott Koon sends us out with a request for further information by e-mail.


Herding Code 197: Summer Stories, C# 6, Vim and Atom, Terrible Keyboards, Poorly Aged Hipster Code, React and the Apple Watch

It’s time for a discussion show!

Download / Listen: Herding Code 197 – Summer Stories, C# 6, Vim and Atom, Terrible Keyboards, Poorly Aged Hipster Code, React and the Apple Watch

Show Notes:

  • (01:22) What’s new for Kevin? Node, Backbone, working at Brandcast, some talk about how the shop runs. Plus he’s been busy moving.
  • (03:12) What’s new for K Scott? Lots of JavaScript, C# / MVC, AngularJS, MongoDB. Jon asks how Mongo is working in production in the healthcare application K Scott had mentioned earlier. K Scott talks about some performance issues he’s looked at, including some that came down to C# queries, and an issue with a 16MB document size limit. Jon asks if they’re using Redis or other front end caching outside of Mongo. K Scott says they’re just map-reducing and storing the information in other collections. He’s not travelling quite as much
  • (06:50) Jon asks K Scott about his recent posts on C# 6 and EcmaScript 6. K Scott talks about looking into traceur to write current code today in ES6, compiling to ES5 to work in current browsers.
  • (07:25) Jon asks K Scott about his recent C# posts on property initializers and primary constructors. K Scott talks about those as well as the new "using static" feature to invoke static members without needing to use the type name.
  • (08:42) Scott K mentions a discussion about required properties with property initializers. K Scott says he was hesitant about a few things with the new syntax, and problem being that there’s no initializer body for validation. You can mitigate that a little using an assert in a the initializer. It’s nice not having to write explicit setters.
  • (11:06) Scott K says he doesn’t even think about property syntax all that much because Resharper and CodeRush handle that for him. Jon speculates how long it will take for Resharper to start yelling at him to use primary constructors everywhere. Scott K says he uses CodeRush for that reason and turns off the code hints.
  • (12:27) K Scott asks what software Kevin is using: OSX and MacVim.
  • (12:40) Jon asks if anyone’s using Scott K says he tried it and it was way too slow. Kevin says that after using Vim he has a hard time with heavy IDE’s – even WebStorm. He’s skeptical about the longevity of new code editors, while Vim is eternal. Jon says he’s interested in because it’s cross-platform and open source.
  • (16:05) What’s new for Jon? He’s been doing some courses for Microsoft Virtual Academy – Introduction to ASP.NET MVC and a Bootstrap course including some advanced stuff like Bootstrap Mix-ins. Wrox Professional ASP.NET MVC book is out. He went to Norway for fun and went to pulpit rock. He’s been spending some more time on non-Microsoft web stacks and platforms now that Azure and ASP.NET vNext are cross-platform. Scott K and Kevin talk about the fun of switching operating systems and remembering keyboard shortcuts. Jon says the biggest frustration is that he keeps trying to touch the screen on a MacBook and it doesn’t do anything.
  • (21:30) What’s New for Scott K? He got a new computer a Lenovo U530 – he calls it the consumer version of the Carbon. He talks about some of the confusing things about the Lenovo keyboard, especially the function keys. Everyone talks about function keys and keyboard problems. K Scott has a newer Carbon, and the keyboard is driving him nuts. Scott K says he’s constantly hitting the touchpad because his keyboard is off-center, which always brings up the Windows charms. Jon mentions touchfreeze and other ways of disabling the touchpad while typing. Jon says he rarely uses the touchpad because he just uses the touchscreen. Scott says he never uses it, he thinks it’s weird that you use two fingers to scroll on the touchpad and one on the screen. K Scott said he accidentally put his Carbon in caps lock, but he doesn’t have a caps lock button so it was hard to turn off. Kevin is unhappy with the Microsoft Sculpt Keyboard’s function keys. Everyone, please stop messing up the function keys.
  • (34:13) Jon asks if anyone’s use the CODE keyboard. He and Jon both agree that it looks great, but they can’t use non-ergo keyboards. Scott K wants keyboards to keep it simple and last a long time.
  • (35:27) Scott K get back to telling us about his summer activities. He was working on upgrading a MonoRail that drove him crazy due to being "craftstmanned up" with lots of opinions in the code like fluent extension methods, Brails view engines and difficulty in upgrading libraries due to dependency injection and breaking changes in NHibernate. Jon says that he’s developed an aversion to things that make great blog posts but will be hard to work with in a few years. Scott K says 90% of the problems came from strong naming – binding redirects and ILMerge with aliases didn’t help. They’ve been evaluating MongoDb and AngularJS a bit at work
  • (41:50) Scott K used React with Grunt in his MonoRail project to allow him to add client-side functionality into a frightening legacy application. Jon asks how he sets it up so it works at dev time and Scott K explains. Kevin’s been hearing a lot about React lately. Scott K like that it’s not trying to be MVC, just the V – e.g. no two-way binding – and the virtual DOM diffing is so fast that people are even using it with AngularJS and Ember just to speed up diffing large lists. Plus it’s used by Facebook for Instagram and the commenting / messenging on Facebook, so it’s been proven to work in big apps. He thinks it’s going to be bigger than Angular and Ember in the next few years.
  • Lightning round
  • (46:34) Who’s getting the new Apple Watch? Kevin says it seems iPad 1-ish. Jon likes some things about the watch UI, including the automatic answer prompts from instant messages with questions. He says the Moto 360 looks better, and we haven’t heard anything about battery life. He’s not sure what he’d do with today’s smart watches, but hopes watches will be really cool in a few years. Jon doesn’t like all the proprietary stuff – payment, chargers, etc. Scott K says he could easily switch to Android and it wouldn’t bother him, so he’s not going to be getting the new iPhone. He’s got a Pebble and likes the notifications and battery life. He thinks the Apple Watch is too little too late. He thinks everything from Apple has gone downhill post-Jobs. He also talks about his recent laptop purchase – if he wanted a posix system, he’d rather just buy a laptop and put Linux on it. He starts ranting about npm and K Scott cuts him off. But then the guys start complaining about the live stream and things go off the rails again.
  • (1:02:32) Jon asks why nobody’s moved to CouchDb. K Scott says the company behind MongoDb is pretty pushy. Nobody had looked at DocumentDb yet, and both Kevin and Scott K are bullish on Postgres.

Show Links:


This show is brought to you by Runscope – find out more at

Herding Code 137 – Mass Assignment, New New iPad, JavaScript libraries, Windows 8, Visual Studio, and Sad Trombones

Oh, hey. A discussion show. Haven’t done one of those for a while. Bonus: recorded during the day so K Scott’s awake. Download / Listen: Herding Code 137: Mass Assignment, New New iPad, JavaScript libraries, Windows 8, Visual Studio, and Sad Trombones Show Notes: K Scott asks everyone’s opinions on the GitHub / Ruby on […]

Herding Code 95: MonoDroid with Miguel and the Mono gang

Hey, it’s a bunch of Mono guys! That’s always fun. This time they’re talking about MonoDroid. Joining the gang this week are Miguel de Icaza, Joseph Hill, Geoff Norton, and Mike Kestner talk about developing .NET applications for the Android platform with Mono. Jon asks about where MonoDroid is at in the product lifecycle. Jon […]