Making graphics via code

tikz is a nice option. It has many guis. No one here has much experience with it.

Connecting to remote displays:

xpra: screen for X https://www.xpra.org/

  • also compresses better than regular X-forwarding

nxmachine: non-free version (maybe less good)

Also for remote machines when you don't want to see what's displayed:

"X virtual frame buffer":

$ Xvfb :15 &
$ # do gui things here: they will not be displayed onscreen

Terminals on remote machines:

SSH tunneling

A few methods:

  1. Set up everything in your ~/.ssh.config file:
    host myhostname
    user myusername
    HostName ahostname.domainname.org
    LocalForward 2022 computer1.domainname.org:22
    LocalForward 2024 computer2.domainname.org:22

    host computer1
    HostName localhost
    Port 2022
    # ForwardX11 Yes   # optionally, always X-forward
    User myusername

Then you would use it like so:

# open the tunnel
ssh myhostname   # can use ssh -f myhostname to send this to the background
# ssh into your machine!
ssh computer1
# copy files from remote machine to local
rsync computer1:/path/to/stuff .
  1. Or you can manually specify machine names and ports:
   ssh -N -f -C -L 2022:computer1:22 myusername@ahostname.domain.org
   ssh -p 2022 myusername@localhost
   rsync -e 'ssh -p 2022' aginsbur@localhost:/path/to/stuff .

This is clearly less convenient.

TODO: figure out how to configure #1 so that you can do ssh myhostname (within the network) or (outside the network with tunneling on)

More questions:

-where do you put notebooks?

(discussion question - we're looking for answers)

-how do you remote-connect to notebooks? (need a clean set of instructions)

-how can access all machines on a network & get stats (df -h, cat /proc/cpuinfo, etc.) and get formatted output?

  • ssh, exec commands, catch output
  • probably need awk/perl/python parsing script
  • or use nagios (monitoring platform)
  • fabric (good for simple stuff)
  • cssh?

mosh = mobile shell, designed for high-latency networks https://mosh.mit.edu/

  • useful when connecting from paranal, for example
  • immediate feedback on what you've typed