00:00:15 ◼ ► where last week we were talking about some of the realities and the challenges of work from home
00:00:25 ◼ ► and dive into some of the decisions that you have to make when you're working from home,
00:00:31 ◼ ► or at least when you're self-employed and having to choose how your computing setup is going to be,
00:00:53 ◼ ► You have a 15-inch MacBook Pro that you do everything on, and you maybe connect it to an external monitor.
00:01:20 ◼ ► it's this double-edged sword of it's wonderful to tailor your working environment to exactly what you like.
00:01:52 ◼ ► And in general, I tend to take the approach of, if I think it will make me enjoy working more,
00:01:59 ◼ ► I sit in front of this desk a lot, so I want the chair I sit in, for example, to be top-notch.
00:02:20 ◼ ► There's the dedicated workstation with probably some kind of portable thing for occasional use,
00:02:56 ◼ ► and you take that approach, where you just have the one-machine-to-rule-them-all approach.
00:03:00 ◼ ► You take that same machine with you when you travel, you take it to your office, your desk.
00:03:49 ◼ ► you're going to have to make some complicated choices about how you keep things in sync,
00:03:53 ◼ ► and you don't lose files, and you're not getting into the "Oh, no, this thing that I need is actually on my other computer,
00:04:01 ◼ ► You have all these different things that you need to make sure that aren't getting in your way,
00:04:25 ◼ ► Or you could be you, Marco, and you could just buy every laptop that Apple has ever made,
00:05:00 ◼ ► or "Can you develop on a MacBook?" or "Can you develop on a Mac Mini?" or whatever else.
00:05:25 ◼ ► And with some limited exceptions, like if you need a powerful GPU for something that you're doing,
00:05:32 ◼ ► and for some reason you need your computer to have that powerful GPU and not just the iOS device,
00:05:57 ◼ ► And number two, it's nice to have some speed, especially when you're compiling larger projects
00:06:51 ◼ ► But the problem is that there will come a time, you know, a desktop is great for setting up in an office
00:06:57 ◼ ► as a semi-permanent workstation, and that you go to the same place every day and use that desktop,
00:07:25 ◼ ► But almost every software developer I know, at some point ends up, if they have a desktop,
00:07:54 ◼ ► And if you are going to go desktop, you have to be prepared to probably take on a multi-computer lifestyle
00:08:04 ◼ ► So basically, that's the big warning for desktops is they are awesome for so many reasons.
00:08:10 ◼ ► They are better than having a notebook docked to a desk with a monitor and keyboard and mouse.
00:08:16 ◼ ► Dedicated desktops are even better than that because they can be fast or they can be quiet
00:08:43 ◼ ► most developers get a 13 or 15 inch MacBook Pro and that is their only or primary computer.
00:09:19 ◼ ► It is by far the best bang for the buck because you don't have to buy and maintain separate computers
00:09:24 ◼ ► and it is the most versatile because most of the time you have a desktop-like environment
00:10:02 ◼ ► If you were just an independent and you were just starting off today, what should I get?
00:10:28 ◼ ► But it is right in that sweet spot of being like, it's pretty good at almost everything.
00:10:42 ◼ ► My first computer was a 15-inch MacBook Pro and for years that was the approach I took.
00:10:48 ◼ ► And it works pretty well. Especially if you have any job that involves regular moving around.
00:11:05 ◼ ► And so I would take my laptop to client sites and I would be working at home and it would be going back and forth.
00:11:16 ◼ ► For me in my journey though, when I got to a point that I stopped doing a lot of consulting,
00:11:33 ◼ ► In some ways that's a cautionary tale. Don't try that until you can really commit to it and afford it.
00:11:39 ◼ ► Because it's really, really nice. Your performance is much higher and in ways that you may not expect.
00:11:49 ◼ ► But just in general, you're always going to be faster because you don't have all these constraints with heat and power that a laptop has to worry about.
00:12:07 ◼ ► I love my 5K iMac. It is a great machine. And I honestly love that my main machine is physically tied to the wall.
00:12:16 ◼ ► I have occasionally traveled with my iMac, which is a bit hilarious when you have it seat-belted into the passenger seat of your car.
00:12:34 ◼ ► Which is hilarious, but in general, it has changed to this desk in the best possible way.
00:12:41 ◼ ► Because what I found I would do when I had a MacBook Pro is it was so much easier to start to blur the lines between work and home.
00:12:59 ◼ ► At a point in the day when I really shouldn't be working. When I should be engaged with the family.
00:13:07 ◼ ► My wife and I have this joke that it's almost like the bat signal goes up and the Riddler's on the loose.
00:13:13 ◼ ► And all of a sudden it's like, "Honey, I've got to go downstairs. A server just went down. I've got to ping Dim Alert and I'm downstairs."
00:13:20 ◼ ► And when that happens, when the Riddler's on the loose and I run downstairs, that's great and I can deal with it.
00:13:30 ◼ ► I'm going to this dedicated place and I can't trick myself and lie to myself and say, "Oh, no, no, I'm not really working. I'm still around.
00:13:44 ◼ ► And it's nice in some ways, too, that my current setup is an iMac and a 12-inch MacBook.
00:13:52 ◼ ► And the MacBook is certainly not as performant as a MacBook Pro or an iMac or a Mac Pro would be.
00:14:03 ◼ ► Like this past WVDC all week, all I had was my 12-inch MacBook and I did some serious development on it.
00:14:25 ◼ ► Or even the thing that blows my mind with it is I will put it in my laptop when I'm packing.
00:14:43 ◼ ► Because if I am in that situation, I usually will bring a MacBook with me when I go on vacation with my family.
00:15:08 ◼ ► I have prompt the SSH client on my iPhone, so sometimes I fix things by just SSHing into a machine or things.
00:15:18 ◼ ► But I kind of like that if I'm on vacation and I find myself falling into doing work, it's kind of uncomfortable.
00:15:37 ◼ ► But if you do, you're going to get a terrible neck strain, your wrists are going to start hurting, bad things will happen.
00:15:57 ◼ ► And so that's why I kind of ended up in this situation where I have this big beefy iMac downstairs.
00:16:03 ◼ ► And probably this fall end of this year, I'll probably be upgrading to either the iMac Pro or the new Mac Pro, depending on how that all pans out.
00:16:12 ◼ ► But I keep that machine fast, powerful, performant, spend probably a ridiculous amount of money on it because it's a machine that builds my business.
00:16:22 ◼ ► And then I have this teeny light MacBook that I only have for when I absolutely have to work.
00:16:30 ◼ ► And I kind of like that it doesn't do that great of a job, but because that forces me to put it down in those situations where I probably shouldn't be doing work anyway.
00:17:00 ◼ ► If you had a MacBook Pro power in a 12-inch MacBook size, then it's like, "Okay, great. That's awesome. You can totally do that and run with that."
00:17:26 ◼ ► I want my iMac at home to be where I feel like I'm just super productive and tearing away.
00:17:32 ◼ ► And when I'm on the road, I just want to get it done and then be done and move on and not feel like I want to actually stay there.
00:18:03 ◼ ► These big honking headphones that are comfortable to wear all day with a big amp driving them with a big physical volume knob so I don't have to mess with little buttons.
00:18:11 ◼ ► I just love desktops and whenever I have to work on a laptop, I always, it's just like what you said, I'm uncomfortable.
00:18:28 ◼ ► But even when I was, there were a few years where my primary computer was a 15 inch or 13 inch laptop.
00:18:35 ◼ ► And during those times, I always had a desk setup where I would dock it and plug in full sized peripherals.
00:18:48 ◼ ► Anyway, we were sponsored this week by Blue Apron, the number one recipe delivery service with the freshest ingredients.
00:18:55 ◼ ► Blue Apron's mission is to make incredible home cooking accessible to everyone and support a more sustainable food system.
00:19:01 ◼ ► They set the highest standards for ingredients and they're building a community of home chefs.
00:19:05 ◼ ► Here's how it works. For less than $10 per meal, Blue Apron delivers seasonal recipes with fresh, high quality ingredients for you to cook it yourself.
00:19:18 ◼ ► Every meal comes with a step by step, easy to follow recipe card and the ingredients are all portioned out to exactly how much you need and no more.
00:19:28 ◼ ► Blue Apron's freshness guarantee promises that every ingredient makes it there safely and arrives ready to cook or they will make it right.
00:19:40 ◼ ► We have this giant stack of these wonderful recipe cards and their hit rate is so good.
00:19:45 ◼ ► Like, in an entire year, there's been maybe like three meals that we didn't like out of, I mean, how many?
00:19:53 ◼ ► It's, you know, 150 meals or so for that time that we've had with them and it's like their hit rate is so good.
00:19:59 ◼ ► Their food is great, their recipes are great and it makes us a better, it makes us better chefs.
00:20:04 ◼ ► Like, on the nights that we don't have Blue Apron now, we are way better at cooking stuff because we've been doing this for a year.
00:20:09 ◼ ► We've had so many different techniques, different ingredients, entirely different cuisines introduced to us that we never would have had before.
00:20:20 ◼ ► If you go on vacation or if you don't have time next week, you can just cancel next week's, no problem, you don't pay for it.
00:20:28 ◼ ► So anyway, check out this week's menu and get three meals free with your first purchase, including free shipping, by going to BlueApron.com/Radar.
00:20:36 ◼ ► You will love how good it feels and tastes to make incredible home cooked meals yourself with Blue Apron.
00:20:48 ◼ ► Thanks to Blue Apron very much for their support of this show. Blue Apron, a better way to cook.
00:20:53 ◼ ► So once you have decided what computer setup you are, like if you're going the approach of having just like the one computer to rule them all, like the 15 inch MacBook Pro, great.
00:21:21 ◼ ► But if that is not you, and you are going to embrace the multi Mac lifestyle, you're going to have to deal with a few things that can be a little bit tricky.
00:21:32 ◼ ► And it kind of seems like it made sense to just kind of spend the last part of this episode kind of unpacking that.
00:21:36 ◼ ► Because now you're suddenly in this situation where you have two different computers with two different sets of applications on them and developer tools.
00:21:46 ◼ ► And you have two different places that you need to get all your source code, your auxiliary files, your design files, your SSH keys.
00:21:54 ◼ ► Like suddenly all these things need to sort of stay in sync for it to be somewhat seamless.
00:22:00 ◼ ► Because ideally, you can be working on your big workstation at home, and then you go off somewhere, you pick up your laptop, and your travel machine, you open it up, and you can sort of pick up where you left off.
00:22:23 ◼ ► And the key thing, and I think the key place to start is to just try and be conscious about what you will need for where you are going to be, and what are you actually working on.
00:22:35 ◼ ► What are the little things that anytime you come across something that you're missing, like make a mental note of this, make a fork out of the way to keep that in sync.
00:22:43 ◼ ► And for the most part, the approach I take, and I don't know if this is a recommendation so much as an observation, is I sync my source code back and forth between my workstation and my 12-inch MacBook with Dropbox.
00:23:00 ◼ ► No, I sync it back and forth using Dropbox because I'm the only person who ever changes my source code, and so it works fine. Only one person is ever editing it at once.
00:23:11 ◼ ► I absolutely use version control. And that's one thing that I've found that works actually pretty well, is all of my source code is version controlled with Git.
00:23:22 ◼ ► But I don't do the thing where I'm pushing, I make a branch, then I commit all my local changes, push it upstream somewhere, and then pull it down on my laptop.
00:23:34 ◼ ► I found that workflow to be just so cumbersome, to have to go back and forth via version control, that just doing file level sync works fine.
00:23:43 ◼ ► And the nice thing is, because I have version control as well, version control is in this situation.
00:23:50 ◼ ► I would not recommend this if you have anything other than one person. If you have two people, this is a complete non-starter.
00:23:56 ◼ ► Don't go anywhere near something like Dropbox with your source control if you have more than one person.
00:24:00 ◼ ► But if you have one person, I only ever edit source at one time because I'm only one person. I only have two hands.
00:24:07 ◼ ► The nice thing is, if Dropbox does something weird, if some weird file conflict situation happens, I have Git in the background catching those and dealing with them for me.
00:24:17 ◼ ► So in Git, it'll be like, "Hey, you have these two files, one of them are different now."
00:24:23 ◼ ► Or in Dropbox, you end up with the conflicted copy situation. And like I said, not a recommendation, just an observation about how I do it.
00:24:31 ◼ ► Because otherwise, I found it really difficult to make sure that I always have every file I would ever want and need with me at the same time.
00:24:40 ◼ ► Otherwise, I remember doing crazy things like I would be on the road somewhere, off on vacation, and I realized I missed some file somewhere.
00:24:48 ◼ ► And I'd be going into Backblaze and accessing this off-site backup of my computer, trying to dig around in their web interface to try and find the file and then download it.
00:25:04 ◼ ► Backblaze has saved my butt so many times when I forgot a file on my home computer while I've been traveling.
00:25:09 ◼ ► It's great, and I'm super glad and highly recommend having something like that running in the background always. All your files are always in some off-site backup that you can access anywhere.
00:25:20 ◼ ► Every now and then, who knows, you may be in a situation like this has happened to me where I didn't even have a computer or any of my computers with me, but I needed to do some work-related thing.
00:25:30 ◼ ► It's great to have some Backblaze to grab the folder down on someone else's Mac, did a little bit of work, did whatever I needed to sort out, and then I could do that work from anywhere, starting from scratch.
00:25:45 ◼ ► But whatever way you approach, whatever approach you take, you need to do something to keep all of your source files on both machines.
00:25:52 ◼ ► If version control works for you, that's probably the better approach, but at the very least you need something to make sure that your source files are back and forth. Otherwise you're going to drive yourself absolutely crazy.
00:26:03 ◼ ► It probably depends a lot on how often you switch machines. For me, I almost never use my laptop. When I do, I fully switch to it for, say, a trip or a week or something like that.
00:26:22 ◼ ► For frequent switching, I actually think putting your source checkouts on Dropbox, like you just said, that actually sounds less crazy now than you've explained.
00:26:30 ◼ ► Actually, I have occasionally been in the place where I have to take my laptop and I forgot to commit some files at home or whatever else, and that's a pain.
00:26:38 ◼ ► But it's not a problem for me usually because I'm not switching daily. I'm switching maybe monthly. So, yeah, we'll see. Otherwise, I think I mostly agree with you.
00:26:50 ◼ ► The main challenges of having multiple computers have largely disappeared with the rise of so many cloud sync services.
00:26:58 ◼ ► We have Dropbox, we have iCloud, and there's all these other things now. So many things are now web services.
00:27:05 ◼ ► Even the version control thing itself, like version control for individual developers used to be a difficult thing.
00:27:10 ◼ ► Now you can just get a GitHub account and have a ton of private repositories for not that much money a month.
00:27:16 ◼ ► It's so easy now to do all this stuff. I mean, really, the main pain in the butt now of multi-computer lifestyle is not data. It's software.
00:27:28 ◼ ► Yeah. And I think that's probably the place to finish up. There's all these little things that you have to keep in mind.
00:27:36 ◼ ► The one that's been driving me crazy recently is the number of versions of Xcode that I have.
00:27:44 ◼ ► You have all these weird situations where if you build and run on one version of Xcode, you can have conflicting build settings or things that are out of whack.
00:27:59 ◼ ► Or you may think you're using the latest version, but you're actually using a version from two builds ago.
00:28:04 ◼ ► It's just one of those things that you just have to be aware of. I wish there was a magic solution to this.
00:28:10 ◼ ► The reality is you just have to be aware of it, and every time you start developing, the number of times during, especially this summer, that I go to the about menu of Xcode to double check that I'm actually running the version that I think I'm running.
00:28:23 ◼ ► That yes, I'm running Xcode 9.0 beta 3. That is what I should be running. It's just something that you have to deal with.
00:28:31 ◼ ► It's also probably worth mentioning that I find that you can do have a multi-certificate situation for code signing and things.
00:28:40 ◼ ► I tend to take the approach of exporting all of my keychain certificates from my main desktop anytime I get a new laptop, and I put those onto my laptop.
00:28:49 ◼ ► Same thing with my SSH keys. I could have multiple versions. For me, it just works simpler to have the same certificates.
00:28:56 ◼ ► My same main developer and distribution certificate is the same on all my machines, so there's just less fuss that I have to do.
00:29:03 ◼ ► Yeah, I do the same thing. I use the export developer profile feature of Xcode in the accounts pane, and the import developer. A lot of people don't know that that's there.
00:29:11 ◼ ► It's amazing. You can just export developer profile. You basically export all of your certificates and signing stuff, provisioning profiles, all into one password-protected archive file.
00:29:20 ◼ ► And then you can move that file to another computer, import it there, and have all your setup. It's amazing.
00:29:26 ◼ ► Yeah, and so I definitely recommend it. You just want to have an environment that is productive for you.
00:29:32 ◼ ► As long as you're thoughtful about it, actually think it through. The reality is, developers are probably going to overthink it rather than underthink it.
00:29:39 ◼ ► But as long as you've given it some thought, you can have some really sweet environments now.