Disaster recovery and long term development strategy


#1

Hi guys,
yesterday one of my worst nightmares came true when my main Mac’s SSD drive suddenly died. Lucky for me, I have a backup plus a very recent git snapshot of my sources, so I only lost a couple of days of work.

Problem is… I have to make a choice between a better Mac or switching to Windows as main development computer. I used to be an IT Manager in my previous life, so I’m experienced with both Windows, Mac and Linux. Personally, I use Mac since the first big all white iMacs and always used them for my audio work and, lately, for development. I love XCode and how quick is to debug and profile the code in there while, so far, I found Visual Studio frustrating to use. If I have to get another Mac, it’ll be a 2012 Mac Pro since the new one are basically luxury furniture and if anything goes wrong I can’t simply replace a bank of RAM or a faulty disk drive. It’ll be an already 5 years old machine equipped with a fairly old technology… USB 2.0 and so on.

Switching to Windows is something I’m thinking about. Windows 10 Pro looks stable enough, although thinking about taking care once again of drivers, latency and all those quirks makes my spine chill in a very bad way.

At the moment, I usually develop on Mac first and when the product is on RC state, I switch on Windows to complete it. I’m sure there is a better way to handle that and create a better development strategy and a far better disaster recovery plan.

I would like to know your experience working with either Mac or Windows for development… this will help me understand if I’m missing something and take the best decision to work keeping me focused on coding rather than technical issues.

Thank you very much guys!
Luca


#2

Glad it was not too much of a disaster for you.

My 2 cents: Macs can easily run Windows. Not so easy the other way round…

…and thanks for the reminder, haven’t done a backup in a while, hard disk grabbed, backing up now!!!


#3

I have Mac desktop and Windows 10 laptop so which I use depends on where I am - I generally work from home but do go places during the week so I don’t go mad… Gives me a pretty good balance of constant development/test cycle on both platforms… I was a long time user of Windows before getting the Mini so took a bit of getting used to but now happy working with either - both have their good points and not so good points, but generally find both to be stable for the most part.

I also run Parallels on OSX with virtualisations of different win flavours (7,8,10) for testing - I find this to be much more robust than virtualising Windows, tho haven’t tried for some time due to past nightmares…

One thing I was surprised at was “losing a couple of days work” - can’t imagine ever going to bed without committing stuff and probably happens a couple of times a day… any reason you don’t do this out of interest?

As for general backup strategy, anything important is generally Dropboxed as this provides backup and allows easy access from both platforms, although the Mac is time machined aswell. Windows backup in all forms just sucks


#4

Strong agreement with @leehu above – my flow is primary development on my Mac, with periodic pushes of development branches pulled into a windows VM for testing there for the occasional weirdnesses that crop up between the two platforms (spent a while the other day because there’s a subtle difference in behavior with classes derived from TextEditor on the two).

So far I haven’t run into any problems where running my code in a VM causes any performance problems; if anything, my MacBook Pro is the best Windows machine I’ve ever owned.


#5

In my opinion, the free IDEs are better on windows, mostly because of refactoring.
I’m new to macs, but this seems to be the general opinion on line if you limit the debate to c++, but everyone prefers what they are used to and the internet is full of people with opinions :slight_smile:

as the above commenters note, you can also run VStudio on a mac.

OTOH, Windows hardware is more affordable so perhaps a system with mirrored drives for data is in consideration?

Can you not replace the SSD in the Mac? My mac is 2nd hand pre-knackered mac book pro that needed a new SSD. ~£80 on a samsung evo 850 250gb and it lives once more. so, that at least means you can replace the disk sometimes…


#6

+1 for replacing the SSD in a Mac - my 2012 MacBook Pro was on its last legs about a year ago and I swapped the old HDD for a 250GB SSD and it was like a whole new machine. Since it also had an optical drive which I wasn’t using I put the old HDD in its place to essentially have a DIY fusion drive.

Ed


#7

Thanks guys. I could replace the broken SSD drive, but it’ll be just a “cosmetic patch”. I feel now it’s time to build something more reliable instead of keep going this way using a MBP + a Mini or iMac.


#8

I’d personally stick with Mac only because my compile times on Windows (even with IncrediBuild) are horrendous when building protection builds. You’d think Microsoft could create a threaded 64 bit development tool.

Using Parallels on the Mac it’s also simple to set up multiple test OS versions… and on Mac you can easily have multiple system partitions for testing on all the different MacOS versions your Mac will support.

Rail


#9

MacOS doesn’t use drivers or exhibit latency? Have to check this out…


#10

Visual Studio maxes all my 8 cores so I guess it must be threaded in some way. What’s a protection build?


#11

MacOS, with CoreAudio and without any external audio interface has the same latency as a professional audio card… while on Windows you need Asio4All which is painful sometimes. As said… I worked with windows since 3.1 up to 7… so I know both the pro and cons. I’m new to the latest version, but so far looks ok even if I have found a couple of things I don’t like (such as the forced updates).


#12

For a developer it sounds like a big advantage knowing the users have their computers updated to the latest standards… :slight_smile:


#13

Hi Luca,

sorry to hear about your “disaster”. Never fun losing a few days worth of programming… Personally, I tend to commit and push several times a day, to avoid this kind of head aches :wink:

I just ordered a MacBook Pro 15" myself last week, after my late 2008 MBP’s graphics card died. I ordered the latest version in production without the touch bar, that is; these machines are really expensive… I upgraded the configuration to have a 512 GB SSD though, because I want to dual boot it using Bootcamp. An advantage (well, more a deferral I guess) of not buying the latest version, is I can still keep using my monitor with DVI connection and my mouse/keyboard with USB connection (did need a convertor for my FireWire soundcard and gigabit UTP network connection) and I got 16 GB as well for the price.

Personally, I prefer development in Visual Studio 2015 over XCode, so I develop mainly on Windows 10 Pro. Once something works fine on Windows, I switch over to MacOS(X) and build and test there. I have an good old quad core Windows desktop in my home office + an old Mac Mini next to that. The Mac Mini has an external HD connected to it with partitions of different MacOSX versions, and whenever a new version comes out, I dump the latest one I had on that HD, clone the current version to the HD, and then upgrade the main HD in the Mini to the latest MacOS(X). The Mini also has Bootcamp, and so runs Windows as well (even if I don’t regularly use that).
I bought the “new” MBP to have something to take on the road and that can run both MacOSX and Windows. Plus: knowing that Apple is still producing and selling them today makes me believe I’ll be able to upgrade MacOS for the coming 5-6 years at least, whereas my old Mac Mini will probably not be supported any longer in 1 or 2 years or so (I considered a refurbished older MBP model, but decided against it in the end because of this).

Backups on Windows: I’ve been using SyncbackSE for years now, and it’s a great backup tool!

Stability on Windows 10: runs very stable for me, no complaints here (there were different times when win98, Vista, etc… were around…).
For me, my ancient quad core 8 GB desktop (non-SDD) on Win10 Pro seems to run way smoother than my dual core 8 GB MacMini (non-SSD) on Sierra.

My 2 cents…


#14

Thanks guys. In the meanwhile I just got a new 6 core Mac Pro. Can’t wait to get up and running again


#15

I wish I had a good reason and the budget to get me one of these… have to live with my 2011 MBP (blow SSD, blow… come on…) :wink:


#16

My 2011 MBP it’s still up and running… even tho sometimes it refuses to shut down and I have to force it. but that laptop has been a rock for 6 years


#17

sounds familiar… but I can live with it… I thought I can blame the Apollo FW driver, but I am not sure… could be anything…
But good to have a spare box…


#18

It has some support for using multiple cores…

https://msdn.microsoft.com/en-us/library/bb383805.aspx

but to get true parallel processing you need to use IncrediBuild

https://www.incredibuild.com/incredibuild-product-overview.html

Using IncrediBuild with just the one system using 6 cores out of my 8 in Parallels) I can reduce my build time from 4+ hours to about 30 minutes (Linking still only uses a single core which accounts for most of that time). On MacOS the Protection build from clean takes about 10 minutes. On VS 2015 a Debug build from clean takes about 20 minutes.

A protection build is a build which links to an external protection library and tools and adds copy protection to my project.

Rail


#19

I started on the Mac in Xcode, but I’m a total convert to Visual Studio with Resharper.

Xcode used to feel nicer to me, but VS + Resharper makes me an hour or two faster in the day. And that’s a lot.

I hate Windows, but the pain is worth it:)

I could bore you for hours about it … but once you’ve clicked "Move implementations to CPP file’ just once in resharper there’s no going back. And there’s a wicked VIM plugin that’s free, the completion is better, and there’s even an OpenGL debugger plugin that lets you look inside the buffers you’ve assigned to the GPU…

And, this (see picture), is the shit :wink:


#20

Ah yes, I forgot to mention Visual Assist (similar to Resharper).
Probably because it’s become so natural to have the thing on in Visual Studio. The best investment in a software program I ever made :wink: