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