Working on Xcode project on multiple computers - xcode

I currently have my project stored on my laptop but I also occasionally want to work on it on my desktop. (Both have Xcode installed). If I connect my laptop to my desktop so that I can access my laptop's files from my desktop, is it safe to simply open the files and edit, or are there hidden files deep in my computer that will get messed up? If this isn't a good idea, are there ways to work on Xcode projects from another computer?

If I connect my laptop to my desktop so that I can access my laptop's files from my desktop, is it safe to simply open the files and edit
Yes. But I don't know what you mean by "open the files". The only thing you should ever open from the Finder is the Xcode project. That being said, there's absolutely no bar to opening an Xcode project located on another volume. (I do it all the time.)
Moreover, a project folder is usually a self-contained world, so there's no issue with copying the whole folder to another machine, working on it there, and copying it back.
Still, the soundest and simplest approach (as long as you'll always have Internet access) is to get yourself a remote git repository and use it to synchronize the work done on different machines. That way, you avoid the "connect my laptop to my desktop" part of the story entirely.

Related

iCloud Drive prevent offloading certain files

I am running macOS High Sierra and using iCloud Drive. My mac recently ran low on storage so it automatically offloaded a bunch of my documents. This should always be seen as a good thing, it is working as expected. However my Mac offloaded my 20GB Windows Virtual Machine, forcing me to re-download the entire file before I could use Parallels again.
Is there a way to stop iCloud from offloading certain files?
You will need to create a folder one level up to store your VMs. In Finder, click Macintosh HD, then Users, Then your profile (your login name). This is your home folder. Once there, Click on the gear and creat a new folder named Virtual Machines (or just VMs) and move your VMs there.
You can create many different folders here and whey will not sync. Only Desktop and Documents will sync. For example, I have a folder called TEMP that has my draft documents for projects only on my local machine.
Hope that helps!

Filesharing between OS X & Windows 10 on a htdocs directory?

I had a practical question for my own work at home. I want to use quad monitor for my coding and other work. I can do this with my macbook pro attached to external triple monitor. But it is not practical because of all the cable management and Macbook Pro is barely keeping up with the performance running it. So what I wanted to do was having my PC run triple monitor and my Macbook as forth screen. Code on my pc and share/update the files in the htdocs directory on my OS X. Like how FTP works.
I found this link: http://www.itworld.com/article/2844141/how-to-share-mac-os-x-yosemite-files-with-windows-10.html
But I'm not sure if I will face sudden obstacles in doing this with my htdocs directory or other directories where my work is stored and updated from time to time.(example:Symfony projects)
I hope I mentioned everything. Thanks in advance!
Well, you can use one of the free cloud based, file-sharig service, like Microsoft OneDrive, Google Drive or Dropbox.
But files will not be updated immediately, you need to wait few seconds (in the best case scenario). So it might get frustrating quickly.
Also, from my experience, OneDrive on Mac is not the best choice when it comes to a Symfony project - it stops working after a while, probably because a lot of cache files, so I need to restart it and it's not usable at all.
Another solution might be using a version control system (f.e. Git) - but you would be able to see the code changes only after a commit and push (and do it manually, of course).

Using WebStorm (JetBrains) with SSHFS mounted development server (Mavericks, OSXFUSE)? Constantly dismounts drive

UPDATE: I saw that someone was trying to use PyCharm with SSHFS and JetBrains said: "no". Perhaps this just won't work?
I'm trying to work with WebStorm on an SSHFS mounted disk at a client's office I'm working at — I've never used SSHFS before. I am using OSX 10.9.2, installed SSHFS thru home-brew and installed OSXFUSE.
The SSHFS mount dismounts periodically in any case, but since I started trying to use WebStorm with it it dismounts every time I start WebStorm and it starts scanning the files on the SSHFS disk — WebStorm gives the message "external file changes sync may be slow: Project files cannot be watched (are they under network mount?)" and if I try to open files it freezes. The SSHFS disc meanwhile has been dismounted. If I remount via terminal WebStorm isn't happy and either freezes or just sits there.
I set up the WebStorm project using "New project from existing files" — is there a way to set it up using SSHFS as a server? Beyond the login and password to the SSHFS disc I don't have any other server-specific info, but perhaps could get it.
Thanks for any help — 
This is how I operate, and maybe it can help you. If there's a config setting I seem to have glossed over, just ask and I'll fix this up. But all in all, this is wonderfully successful:
My build environment is tucked away on a Linux distro, but my development environment is co-located on a Mac Desktop (when I'm at work) and a Mac Air (when I'm at home). My projects are enormous, and contractually I can't move the code to any machine where it might be accessible if my laptop is stolen. So I pretty much have to use ssh (and sshfs) to get anything done.
When I am at home, and I sit down to work, I manually initiate the VPN -- since there are so many variations, I'll assume you know how to do this part.
I open a terminal and invoke:
caffeinate &
because I hate getting disconnected whenever the computer goes into screen saver. This may be why you get disconnected? I leave this terminal open whenever I'm developing. I also use tmux so that my terminal session can be shared between computers. Anyway...
I set up a mount point set up between the server and the client. I have a script that I run when the mount point goes down (customize for your own work):
umount -f /Volumes/$MOUNTDIR/
umount -f /Users/$HOMEUSER/$MOUNTDIR
mkdir /Users/$HOMEUSER/$MOUNTDIR
sshfs $HOMEUSER##SERVERADDR:/usr/$HOMEUSER/$MOUNTDIR /Users/$HOMEUSER/$MOUNTDIR
I then launch Webstorm, PyCharm, ADS, IntelliJ (I'm a Jetbrains fan).
At this point you can open the directory within $MOUNTDIR and start working. If you find that you need to run builds, here's a tip -- do not build locally. Instead use SSH to issue the build commands (or run scripts) on the server. The overhead of synching after the build has run is most likely far less than fetching and writing all of the steps of the build.
I only find I get disconnected if I lose the VPN. I used to get disconnected whenever the computer would sleep. Caffeinate fixed that.
For reasonable sized projects, this is probably all you need. So what follows is an optimization -- only do it if you are having headaches:
To speed up load times, what I do is create a local project that is not part of the mount. There is a .IDEA directory that gets created and written to a lot at the base of the first directory you open as a project. Inside of this directory are lots of files that get written to a lot, and depending on your network speed, it might cause grief. It does mean some settings have to be maintained everywhere you go, but in my case it's a small price to pay for big performance gains.
So because I do this, I'll have to manually add directories to my project (Under Preferences/Directories). But if you work with huge APIs, you might be doing this anyway. I am careful to mark directories I don't need to reference as 'excluded', to make life easier on the indexer. I work in a shared directory structure with thousands of other employees, and I make sure the streams don't cross.
Now I have many many thousands of files, and it is true that sync can be slow. But sync is only triggered when you leave the app and come back in. And honestly, it's not that terrible, so long as you have a reasonable internet connection.
I hope this helps. Once I started using this as my workflow, I never went back.

Working efficiently on remote projects in Visual Studio

On occasion I telecommute and need to work on the project files on my box at the office via my laptop. I bounce back and forth between two methods of doing this:
I remote into the machine at my office and work on the instance of Visual Studio on that machine through RDP.
I have the folder containing the solution files set up as a network share and load the solution on my local (laptop) install of Visual studio
These options are far from perfect. Loading the solution via network share makes for a responsive experience unless VS needs to read/write files, which happens with more actions than one might realize. The RDP method avoids the network latency of reading and writing files, but makes for a laggy experience, plus I have to reconfigure VS's layout everytime I log in to accommodate a single monitor.
What I'd like to do is continue to work on my local/laptop copy of VS but figure out a way to speed it up substantially. For a variety of reasons, I do not want to have to commit to and pull from source control to share across machines.
Any suggestions on how to speed up working with Visual Studio when loading remote project files?
Storing your local files under a Dropbox installation can help with synchronizing your files, but it comes with a couple caveats:
On each machine that you synchronize, you must be able to store the files under your /Dropbox directory. This may be feasible on your laptop but not on your office box, for example.
Dropbox synchronizes at its own casual pace. This is most noticeable on its initial sync, but also imposes a short delay on subsequent synchronizations. When you open your laptop at home, you'll need to keep an eye on the taskbar icon to ensure it is "up to date" before you begin working.
Given those caveats, I love using Dropbox for my personal projects for a couple reasons:
Since I don't use source control on those projects, it is relatively easy to overwrite something you want to keep. Dropbox gives you fast access to your entire revision history, allowing you to roll back whenever needed. This does not count against my free quota.
Even when I delete or remove files, Dropbox continues to store them and allows me, years later, to undelete and recover them. Again, all of this happens without impacting my free quota.
As the OP mentioned in the question's comments, Google Drive offers a solution similar to Dropbox.

Hosting Visual Studio projects in dropbox

I develop both on my desktop and laptop, and I am frequently switching between them. Are there any problems that could arise from keeping a project folder in my dropbox and always accessing/editing from there? I'm running the VS2010 on both, but W7 on one and W8 on the other.
I'm using it often. But I do experience some issues. It seems that sometime VS and Dropbox conflict. This shows by leaving some temporary source files or by errors during compilation of file being locked.
In fact I came here while looking how to solve them. But still they are only a little issue and I keep using it that way for a long time.
EDIT: It is not just me. See Visual studio 2012 and dropbox don't play nice together question on SuperUser.
I'm using Dropbox to host my project and I edit and build directly on there and have experienced no problems, ever. Win7, VS2010, CPP. I find Dropbox to be simpler and equally robust to than version control software. I'm a big fan. I should say Microsoft OneDrive once failed me, horribly, and I no longer trust it. With Dropbox, I always check the icon in the systray carefully to make sure it is finished updating before I turn my computer off.
I use both git and Dropbox, as I also switch which machine I'm working on. This way I can use source control with the rest of my team, while also able to pick up where I left off. My 2 PCs that sync are my one at work and at home. Both desktops, both almost always on and running dropbox.
Rarely I get conflicts, when a machine is offline or something. The solution 99% of the time is to simply delete any conflicting files. Because I'm constantly up to date with git, it's fine if I ever have to delete all my local code, since I can always get it back.
So it's really for nothing other than being able to run out of work on an urgent task, and then resume where I left off when I got home.

Resources