Remote Programming Environments:
Remote Programming Environments
What is a remote programming environment?
How can I develop a program using PuTTy and ssh?
How can I develop a program using WinSCP and PuTTY?
How can I develop a program using NX Client?
How can I develop a program using sshfs and Linux?
How can I compile and test my program remotely?
What is a remote programming environment?
A remote programming environment is simply software running on a computer different computer.
There are several options for opening remote files for editing. You may use a local editor through WinSCP, use a remote text-based editor such as Emacs through PuTTY, or use a remote graphical text editor such as GEdit through PuTTY with Xming or NX Client.
How can I develop a program using PuTTY and ssh?
PuTTY allows Windows users to connect to remote systems over the Internet via Telnet and SSH. PuTTY uses a Command Line Interface or CLI to allow the user to enter commands to tell the computer what to do. To see how the CLI looks and works follow this link to PuTTY FAQ.
SSH is an Internet standard, supported by many computers that also support Telnet.
While both Telnet and SSH allow you to connect to remote systems, SSH, supported in PuTTY, provides for a "Secure Shell", encrypting information before it is transferred. This way, it is harder for others to intercept passwords and other private information than if you were to just use Telnet.
While using PuTTY and the CLI you may use editors such as nano and emacs through PuTTY in the same fashion you would as if you were in the lab. Once you have opened a remote session with PuTTY, you may start any application you wish. For example, to open project.java with the editor nano, the command would be
nano project.java
To get started using PuTTY and SSH, click here.
How can I develop a program using WinSCP and PuTTY?
WinSCP (Windows Secure CoPy) is an application for Windows operating systems that allows secure file transfer between a computers. WinSCP is a type of Graphical User Interface or GUI (sometimes pronounced gooey) that allows the user to interact with the computer software with images rather than text commands.
WinSCP can act as a remote editor. When you click on a file in the remote file manager, it transfers the file to the local machine and opens it in the default text editor. For you Windows users this should look and feel very familiar. Whenever the document is saved, the remote version is updated automatically.
To get started using WinSCP, click here.
How can I develop a program using NX Client?
NX-Client allows students to connect remotely to the Linux servers to use the same programs available on campus. The nx-client program will present a graphical environment with the same look and feel as the graphical environments used by students who are logging into their computer accounts via the on-campus lab computers. Students using this remote connection will now have access to programs such as emacs, vi, gvim, codeblocks, eclipse, the C++ compiler g++, ... any software loaded on the computer.
The campus server names include the following:
wyvern.cs.newpaltz.edu
shell01.cs.newpaltz.edu
Please follow this link for a detailed list of available hosts.
How can I develop a program using sshfs and Linux?
SSHFS (SSH Filesystem or Secure SHell Filesystem) is another CLI application for viewing your files on a remote comuputer. Linux is just the operating system on which you will be using the sshfs application.
SSHFS is very simple to use. To mount SSHFS, type following command:
sshfs user@host:dir mountpoint
A practical example is as follows:
sshfs username@wyvern.cs.newpaltz.edu:yourDirectory/ /tmp/
This will mount the home directory of the username@wyvern.cs.newpaltz.edu account into the local directory, yourDirectory/ named, /tmp/. Though this is very simple, the mountpoint directory must already exist and have the appropriate permissions.
If you want to unmount your directory use the following command:
fusermount -u mountpoint
Another practical example:
fusermount -u /tmp/
How can I compile and test my program remotely?
A remote session through PuTTY is just like using the command-line in the student labs. Therefore, the same techniques and commands for compiling programs are used.
For example, to compile project.java, the command is
javac project.java
Note that if your project makes use of a GUI, it is necessary to use PuTTY in conjunction with Xming.
