Optimising for remotely mounted projects?

Hi all,

In my new job I'm likely to be working remotely, mounting my work drive over ssh using shfs. I've tried it out, and it's pretty slow at times. Are there any settings I can use in IDEA to optimise this access? Things I've particularly noticed are browsing the project view, and the Ctrl-N dialog, both of which I expected IDEA to have indexed after startup.

Any advice gratefully accepted!

17 comments

If you have a fast connection, you can run IDEA on a machine at work, and display it at home.

I do that using Windows Remote Desktop between a Windows XP machine at work and a Windows XP machine at home. You could also use VNC or some other desktop sharing application.

One tip if you do this is to turn off 'Smooth Scrolling' in IDEA settings.

But... it only works well if you have a fast connection at home, 1.5 mbps or more.

I used to do what you are trying to do, i.e. run IDEA locally and access my files through VPN. But I usually work 80% at work / 20% at home, and found that at home I would waste alot of time just setting up my workspace at home. It is much nicer to log directly into the work machine where everything is exactly as I left it.

-Alex

0

Thanks for the reply. We've actually tried that, my company is working on virtualising their office using NoMachine NX (essentially a fancy VNC). They also use RDP.

The main problem is that my home is in Madrid, in Spain, and my work server is in New York. So even though NX is heavily optimised for low bandwidth connections, what kills it is the latency. And the problem is that you can't just get a faster connection to fix it, so I thought I'd try the shfs option. I was hoping that browsing would be faster, for example, because of all the indices that IDEA maintains, but it's still a bit sluggish at times so I was wondering if it can be optimised.

Cheers,
Colin

0

shfs is that for linux?
Did you look at the configuration options to see if it supports file caching on the client side.
Many of those remote filesystem software support file caching. You should see if it has options for how big the cache is and how quickly files get expired, requiring them to be reloads. I was using an NFS client for windows which had similar options for read and write cache.

0

Yep, it's for Linux (I use Linux on my home machine and the servers are also Linux):

http://shfs.sourceforge.net/

works really, really well, and is a snap to set up (unlike NFS). I also have caching set up now, I'll see how much difference it makes.

0

Even if remote mounting of projects weren't slow, it's still a really bad idea. Use a version control system instead for your remoting needs. They are optimized for the sort of accesses you get in a software development project, and provide vastly improve maintainability on top of the remoting benefits. CVS or Subversion would be just fine for this, and aren't that difficult to set up.

--Dave Griffith

0

I have to agree with this. I started out trying to access files
remotely, then went to sharing projects and copying back and forth, but
CVS proved to be the best choice by-far.

Dave Griffith wrote:

Even if remote mounting of projects weren't slow, it's still a really bad idea. Use a version control system instead for your remoting needs. They are optimized for the sort of accesses you get in a software development project, and provide vastly improve maintainability on top of the remoting benefits. CVS or Subversion would be just fine for this, and aren't that difficult to set up.

>

--Dave Griffith

0

Oh, I forgot to mention. If it is too much trouble manage a version control system, you can outsource the whole thing for an extremely reasonable fee. I use CVSDude, out of Australia, for my Subversion repository. 20 Gigs for $10 a month, and worth every penny.

--Dave Griffith

0

We might end up having to do that, but I'd like to give the remote mounting thing a proper try first. It's basically a security issue - the problem is that my client is a financial transaction processing company, and they're regularly audited by Visa and Mastercard, amongst others. As soon as I have a copy of their IP (including the code I develop, of course) on my local machine, both they and I immediately have much tighter requirements to meet. I have to demonstrate that my laptop (or local server, whatever) is secure both physically and at the network layer. I'm not really sure about a lot of the security implications, but it would be extremely difficult to demonstrate that someone who steals my laptop won't be able to easily get access to their code, for example.

I'm still at the exploring options stage, but right now it would be easier if I could make remote mounting work.

0

Hello Colin,

CF> We might end up having to do that, but I'd like to give the remote
CF> mounting thing a proper try first. It's basically a security issue -
CF> the problem is that my client is a financial transaction processing
CF> company, and they're regularly audited by Visa and Mastercard,
CF> amongst others. As soon as I have a copy of their IP (including the
CF> code I develop, of course) on my local machine, both they and I
CF> immediately have much tighter requirements to meet. I have to
CF> demonstrate that my laptop (or local server, whatever) is secure
CF> both physically and at the network layer. I'm not really sure about
CF> a lot of the security implications, but it would be extremely
CF> difficult to demonstrate that someone who steals my laptop won't be
CF> able to easily get access to their code, for example.

Even if you do set up remote mounting, copies of the code you develop will
be stored in IDEA's local history, which is by default stored on your machine.
(You can try to move the IDEA system directory to a network share as well,
but that will hurt IDEA's performance a lot). And it's not a problem at
all to extract the source code files from the local history directories.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0

Hello Dmitry,

Even if you do set up remote mounting, copies of the code you develop will
be stored in IDEA's local history, which is by default stored on your machine.


That was going to be my next question :-). I'll see how it goes with performance, I can always turn local history off. It does start to become a pain, though, I might have to look at just getting a copy of the code here.

Thanks for all the advice! Any other ideas/input most welcome.

0

Sounds like what you really need is an encrypted file-system for your laptop.

--Dave Griffith

0

I was actually thinking about something like this. Does anything like this exist for Linux? Any suggestions or recommendations?

Thanks,
Colin

0

Colin Fleming wrote:

I was actually thinking about something like this. Does anything like
this exist for Linux? Any suggestions or recommendations?


Yes - there are lots of options. The 'classical' way is using loopback
devices. (Google for loopback encrypted howto). Since somewhere early in
the 2.6 series there is in-kernel crypto filesystem support available
(using the devicemapper: http://www.saout.de/misc/dm-crypt/)

Other options are one of many encrypted filesystems EncFS
http://arg0.net/users/vgough/encfs.html,
CFS (Cryptographic File System) http://linux.maruhn.com/sec/cfs.html
TCFS (Transparent CFS) http://www.tcfs.it/
SFS (Stegano File System) http://www.linux-security.org/sfs

I use DM-crypt - works for me (tm) ;)

Regards,
Edwin

0

I hear there are cryptographic plugins for ReiserFS as well, but have no first-hand information.

--Dave Griffith

0

Ok, thanks for all the information, guys. I'll read up and ask my client what they want to do.

0

While editing over the remotely-mounted link, I've noticed something. Every once in a while (I believe when IDEA first sees an error, and under some other conditions that I can't work out exactly) Idea goes through and stats every file in the project. I really noticed it because even though the project is tiny (6 java files) I have 100 html files in a resource dir. They're in the module content root but not within a source dir. I have "synchronise files on frame activation" turned off, and there's no source control involved. Is there some other synchronisation option I've missed somewhere?

0

bump

Sorry, I hate to do it, but I have a meeting tomorrow and I'd like to resolve this if possible - does anyone have any ideas?

0

Please sign in to leave a comment.