Working from home

Revision as of 23:14, 17 March 2020 by C.carouge (talk | contribs)

Here is a curated list of options for working from home. Curated as we do not want to swamp you with options, we want to give you a few alternatives depending on your workflow and hardware. Feel free to search or ask for more options if those listed here do not suit you. We focus mainly on computational advice as it is our expertise but list a few wellbeing advice at the top which are not to be ignored.

In this document, we will focus on connecting to Unix based machines such as NCI, the Storm servers at UNSW etc. This is generic advice and particulars of some systems might require different means to connect. For connection to your local work computer and generally to your University systems, please follow your local IT guidelines in priority as they know their systems better than us! In particular, some Universities might require you to use VPN for access, in that case, please follow the guidelines you are given.

Although the Centre is a flexible workplace, please make sure you talk to or warn your supervisor and collaborators before planning to extensively work from home for what will be a long period.

Well-being

It is important to think about you as well as work.

  • You are not in self-isolation. Go outside every day!
  • Is your workspace ergonomic? Are there any easy adjustments you could do to improve it?
  • Keep some structure in your day. If you are in a share house, you may not be able to do a 9-to-5 workday. The time period during which you work doesn't matter, but it matters to keep a clear separation of work and life.
  • Stay connected! Use Zoom, Slack, Skype etc. to connect to friends, collaborators, etc. often. It's ok to just have a chat about life, cats, dogs...

Hardware

Computer

You need a computer, not a tablet. But nothing fancy as the aim is for you to connect to your work computer or servers and use those machines remotely for most of your work.

Internet

You will need a reliable internet connection and maybe more data than currently. Your workplace may be able to help with that. Contact your supervisor now if you think your connection/plan are insufficient.

Or your work may be able to provide external hard drives for you to take your data with you.

Software

  • Git: although you will not do much locally, you might. Git can help to backup your local work (on Github for example) and make it easier for you to transfer back to work afterwards. Some of the following advice also relies on you to install some software with Git in order to connect remotely. Look on the internet on the best way to install Git for your OS.
  • Miniconda: to do some of your work locally at home, you might need to install some software (python, netcdf, ncl, ncview, R, nco, cdo ...). We recommend you do that via miniconda as it handles dependencies for you. https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html
  • Zoom: for work AND social meetings! All Universities provide accounts, please check with your local IT. Staff accounts may have access to larger meeting sizes if you run into time limits, check if your supervisor can set up the meeting.
  • Slack: this is a chat application. There is already the following Slack workspaces you might be able to join:
    • arccss.slack.com: CMS and people at the Centre have been using this workspace for computational questions. Anyone with an email from one of the CLEX Universities, the BoM or the CSIRO can join. The CMS is more than happy to open more channels, private or public, for specific topics or teams to discuss (e.g. COSIMA has a channel).
    • ccrc.slack.com: This is the social Slack space for CCRC. Don't hesitate to have your tea break's conversations there.

Connection to remote machine

To use, only for machines you don't need VPN access to. For example, if you want to connect directly from your home to NCI.

From Windows

  • PuTTy: This gives you terminal windows connected to a server via SSH. https://www.ssh.com/ssh/putty/windows
  • Remote Desktops: these apps open a "desktop" to work on the remote machine. One recommendation is nomachine which is faster than SSH connection but it needs to be installed on both the local and remote machine. It can't be used to connect to NCI directly. You can use it to connect to your work computer and then SSH to NCI. Whether you should keep your work computer on and IDLE for the time you'll be working from home is another question for you to decide on yourself.
  • The VDI desktop interface at NCI performs a similar function for running Jupyter / Matlab at NCI, and you can connect from there to gadi / accessdev for better GUI performance.
  • Install Linux with Virtualbox. Linux OS can connect to all remote machines Tutorial. Scott Wales at CMS is using 'mint' Linux, a lightweight version of Ubuntu

From Mac

SSH is already available from Mac. But you will need an X11 server and to learn how to cleverly use SSH to make it easier and faster for you to connect.

  • XQuartz: the X11 Server for Mac. https://www.xquartz.org/
  • Our SSH training to learn about the SSH configuration file, SSH keys etc.
  • nomachine is faster than SSH connection but it needs to be installed on both the local and remote machine. It can't be used to connect to NCI directly. You can use it to connect to your work computer and then SSH to NCI. Whether you should keep your work computer on and IDLE for the time you'll be working from home is another question for you to decide on yourself.

From Linux

Linux comes with an X11 server and SSH out of the box. You may still want to check our SSH training to learn about the SSH configuration file, SSH keys etc. which can make connecting easier and faster.

Additionally, nomachine is faster than SSH connection but it needs to be installed on both the local and remote machine. It can't be used to connect to NCI directly.

Working with graphics

SSH connections can be very slow to open User Interface, especially graphical interfaces. For example, ncview interface. It might be faster to open those via NCI's VDI. Unfortunately, the capacity of the VDI is limited. If we see a huge increase in its usage, it might slow down significantly. But feel free to give it a try.

Working with code

Jupyter Notebooks

If you use Jupyter Notebooks, your best option is to clone the nci_scripts repository with Git (see above) and install python locally with conda (see above). Holger Wolff showed how to use it in our Jupyter Introduction training.

Other code

If you need to write code outside a notebook, opening a text editor through an SSH connection isn't necessarily the best option, except maybe for vim. You might be better off using an Integrated Development Environment (IDE). Claire Carouge is using VS Code with the Remote Development package installed. It requires some time to set up as you would likely need to install additional packages for support for the languages you are using.