Disaster recovery and long term development strategy

DSP, Plug-in and Host development discussion.
User avatar
Audiority
KVRian
743 posts since 15 Nov, 2005 from Italy

Post Wed Mar 08, 2017 3:53 am

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
Audiority
Need a Kontakt scripter? Contact me.

User avatar
#rob
KVRist
488 posts since 20 Aug, 2013

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 4:04 am

Not to make any kind of statement by posting this, but you can easily swap the RAM and PCIe SSDs of a 2013 "trashcan" Mac Pro.
Cheers,
Rob
u-he | Support | FAQ | Patch Library

User avatar
Urs
u-he
22419 posts since 8 Aug, 2002 from Berlin

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 4:16 am

Sorry to hear about your SSD!

If you want to continue Mac/Win development, I'd stick to a Mac with Bootcamp. That said, can't you just replace the SSD?

If you have like an old computer with harddrive and stuff in a closet, why don't you get it out, install GIT and Jenkins and make it your main repository and build server. If you then also have an old Windows machine somewhere in the attic (doesn't everyone?), install Jenkins as well and let it build your Win versions. That is, let both Jenkinses check your main repository for new commits and then build all your projects. It may take a day to build it all, but this way you always know that whatever you committed is still compatible with all your products on all your platforms.

Hence, alternatively, you could replace the SSD and make it your main repository and build slave and buy a new Windows machine for development. Then you get both as well.

User avatar
Guillaume Piolat
KVRist
177 posts since 21 Sep, 2015 from Grenoble

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 4:34 am

Audiority wrote: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 feel the complete reverse way, I'm forced to use the Mac and prefer to develop on Windows. Long-time Windows user though. I hear from Linux users that developing for Windows is a nightmare in comparison, probably years of familiarity amount to that much.
I don't really understand why you'd prefer Xcode over Visual Studio tbh. Xcode looks like a cruel joke, had to work specifically to make sure I don't have to use it.
VST/AU/AAX: Couture | Panagement | Graillon

User avatar
Audiority
KVRian
743 posts since 15 Nov, 2005 from Italy

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 5:40 am

Thanks guys!

@rob + Urs: great news that I can actually replace something in the new Mac Pro. I wasn't sure and that makes my decision easier to make.
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. I'll check Jenkins and think about building a server. I know it could be too much if you are a single developer and not a team, but planning and managing servers is something I can totally do and plan a better backup and disaster recovery solution.

@Guillaume:
That's exactly how I feel, but in the opposite way! :D As example.. to me was really fast and easy to find how to automatically run a DAW after compiling on XCode.. the debugger automatically attaching and giving me all I need fast and easy. On VS2015 everything was painful and every time I have to debug or profile it takes a HUGE amount of time. It's frustrating! I know that I'm most likely doing something wrong there.. but still.
Audiority
Need a Kontakt scripter? Contact me.

stratum
KVRAF
1843 posts since 29 May, 2012

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 6:01 am

great news that I can actually replace something in the new Mac Pro.
I have even replaced the cpus on an ancient one (1.1 version). I'm not sure I would mess around the newer ones or even buy one. During the time I had bought the 1.1, FEDs printing press was running like crazy and even then a friend had joked, why you didn't buy a bigger car instead of buying this one? :lol:
~stratum~

User avatar
nonnaci
KVRist
249 posts since 7 Feb, 2017

Re: Disaster recovery and long term development strategy

Post Wed Mar 08, 2017 8:22 am

I try to write platform agnostic code and leverage cross-platform APIs for other platforms. That said, the difference in Windows/Mac OS development for anything mid-large scale is the IDE (Visual Studio vs Xcode). VS2015 is fine so long as you familiarize yourself with the debugger, profiler, and configuration settings; the integration with git for version control is nice and intellisense is definitely useful for navigating large codebases. Performance wise, get lots of ram (16 GB worth) although I don't know if the new VS2017 is any better (reports says 50% faster startup).

User avatar
BertKoor
KVRAF
10649 posts since 8 Mar, 2005 from Utrecht, Holland

Re: Disaster recovery and long term development strategy

Post Thu Mar 09, 2017 12:39 am

Audiority wrote:I'll check Jenkins and think about building a server. I know it could be too much if you are a single developer and not a team, but planning and managing servers is something I can totally do and plan a better backup and disaster recovery solution.
A server is just another computer. The Cloud is just someone else's computer. If this is about risk mitigation, expanding the number of computers involved makes that more complex since the chances one of them fails increases. However the chance all of them fail at the same time ofcourse is lower.

You already had the most important part of risk mitigation under control: you had a (relatively) recent backup of your source code repo! You could maybe use a private GitHub repo: then you don't ever have to make backups of the source repo again.

About Jenkins: you don't need it on a seperate server. It can run anywhere, even on your own dev machine or within a Docker container. But the nice thing is you could take any written-off PC, install a Linux distro on that and promote it to be your build server. Jenkins can have 'agents' that run on different platforms (Windows & Mac) and you probably need that to run eg msbuild.exe which I think is not possible on Linux.

But Jenkins is just a build tool/platform. While I do think it's a good step forward in professionalising your workflow, I personally don't think it solves problems you're actually struggling with.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is back online!!

User avatar
Audiority
KVRian
743 posts since 15 Nov, 2005 from Italy

Re: Disaster recovery and long term development strategy

Post Thu Mar 09, 2017 8:31 am

Thanks guys. Yes, that's true. The problem is another and it's related to my workflow. In the meanwhile I took the first step and got a new 6 core Mac Pro and I wanna start fresh new. When I started making plugins, about 2 years ago, it was a test and honestly I weren't sure about their success ratio considering my audience. Now coding takes almost all of my working time and I need to plan a better workflow for that and maybe that's the right time.

Thanks again guys!
Luca
Audiority
Need a Kontakt scripter? Contact me.

User avatar
Zaphod (giancarlo)
KVRAF
2403 posts since 23 Jun, 2006

Re: Disaster recovery and long term development strategy

Post Thu Mar 09, 2017 11:53 am

We switched to vm several years ago, around 2009. My main computer has been a vm since 2013. All company employees today are on vms. Even our backend servers are running in vm.

Basically I use a macbook pro running both a Windows and a mac osx machine in fusion. Yes I have a bootcamp running all possible plugins existing (we received all nfr possible for testing purposes), but even ilok based software is running in vm nowdays! I never turn on bootcamp any more. Never a crash.

So mac or Windows doesn't matter any more.
Backup is so easy. My computer is a supersmall t1/t3 Samsung harddrive, I keep it in my pockets even during flights

User avatar
syntonica
KVRist
424 posts since 25 Sep, 2014 from Specific Northwest

Re: Disaster recovery and long term development strategy

Post Sun Mar 12, 2017 11:40 pm

Zaphod (giancarlo) wrote: Basically I use a macbook pro running both a Windows and a mac osx machine in fusion.
A couple of quick, off-topic questions, if I may.

You run BOTH macOS and Windows as VMs?

Will Mavericks on up install as virtual? I remember having to do some fancy footwork for Snow Leopard to install on VirtualBox and the response was awful! So slow and jittery.

And which version of Windows do you recommend? I guess the current choices are Home and Pro. If the differences are still similar, I wouldn't be doing any fancy networking at all and it would probably only connect to the net for updates, so Home? I need to start developing in the latest Visual Studio. (Starting with zero knowledge of Windows structure or APIs...)

Finally, any reason Fusion is better than VirtualBox? Or Parallels?

TIA!

User avatar
Zaphod (giancarlo)
KVRAF
2403 posts since 23 Jun, 2006

Re: Disaster recovery and long term development strategy

Post Mon Mar 13, 2017 12:09 pm

Yes we have a working copy as snapshot of all possible mac osx os, even latest ones. We are even betatesting the interaction of our software also with cracked one for stability purposes (we have also the same software as original one, I think we have nfr from around 80% of software, in the past we have even built vm for testing virus and malaware)
Stability on virtualbox is awful, I confirm.
Vmware is incredibly solid and reliable, especially for running vm with protools and logic (beta version or commercial). I tried also parallel, but the issue is about running the vm on Windows.
About windows: I have a license for home, so I'm running home. I own Windows xp, Vista, 7, 8 and 10. My main vm is based on 8 home (not 8.1 where more issues about admin permissions arise) where I disabled the metro interface. It is a bit better than 10, even if it loads slower. I have more issues in Windows 10 running more external displays when the principal one is a retina inside the vm. Normally I use two external displays from a mac book pro. It works a bit worse.


Last consideration: you need a licensed mac osx os for running several tools. Serial number should match with your hardware machine. This is the reason why I run vm but we own several mac books really. For the same reason I prefer to use a Mac osx as host. In my opinion vmware running mac osx is less stable than fusion vmware running mac osx.

User avatar
aMUSEd
KVRAF
29660 posts since 14 Sep, 2002 from In teh net

Re: Disaster recovery and long term development strategy

Post Mon Mar 13, 2017 1:28 pm

What is 'Jenkins'?

resynthesis
KVRist
352 posts since 17 Sep, 2007 from Planet Thanet

Re: Disaster recovery and long term development strategy

Post Mon Mar 13, 2017 1:33 pm

aMUSEd wrote:What is 'Jenkins'?
It lets you automate your build and installation processes

https://jenkins.io/

User avatar
syntonica
KVRist
424 posts since 25 Sep, 2014 from Specific Northwest

Re: Disaster recovery and long term development strategy

Post Mon Mar 13, 2017 2:07 pm

Zaphod (giancarlo) wrote: ... lots of good stuff...
Thanks! Looks like I'll definitely need to upgrade my internal drive to hold all those VMs. Almost a dozen! :o

Return to “DSP and Plug-in Development”