Intro

  • This page has a list of tools you can use when running remote coding workshops

Quick List

  • Visual Studio Code LiveShare extension
  • Dedicated Driver
    • LF says easy to set up but a lot of disadvantages
  • Anydesk
    • LF says has best advantages
  • Git Handoff
    • LF says not great
      • hard to get consistent experience on everyone’s machine
    • make a branch, pull/push, one person shares their machine
  • VNC
    • used by Emily
  • CyberDojo

AnyDesk Plus EC2 Instance

Quick setup guide - see headings below.

Go to Amazon instances

  • Login to Amazon (root user) and go to Instances
  • Here
  • Or select Services (top left) => Compute => EC2
  • then click Instances under the Instances heading on the left

Create an EC2 instance

  • Click big Launch Instance button
  • Give it a name
  • Select OS
    • I used Windows last time I did it
    • Used the default - Microsoft Windows Server 2022 Base
  • Instance type
    • I used t2.xlarge
  • Key pair
    • Remember this is specific to the region
    • If you have one already you can reuse it
    • I clicked Create new key pair
    • gave it a name (eg iconics.learninghour)
    • Used .pem
    • Then stored it securely in 1password
  • Configure storage
    • 60 GiB, gp2
  • Launch instance (big button at bottom)

Connect to the instance

  • If it’s an existing one, right-click the instance and select Connect
  • If you’ve just created it, click Connect to instance
    • Initially it’ll say “weren’t able to connect” because it’ll still be setting it up
    • But you can probably still access RDP client
  • Click RDP client
    • Click “download remote desktop file”
    • Get the password from the pem
      • Click “upload private key file” and upload the pem file you created or selected earlier
      • Click decrypt password
      • Click the copy button next to the password (NOT the public DNS - the thing below that)
      • Store it somewhere so you don’t have to do this again!
  • If you don’t have it already, download Windows RDP client (“Microsoft Remote Desktop”)
    • Either double-click the rdp file you downloaded from Amazon, or…
      • Click the three dots and select “Import from RDP file”
      • Select the rdp file you downloaded from Amazon
      • Double-click the desktop once it’s created
    • Use the password you copied above from the RDP client page on the Amazon instance
    • Click Continue on the security warning (“certificate couldn’t be verified”)
    • Note that on MacBook, it will place the desktop in a new space
      • This can be confusing because if you click the RDP icon or use alt-tab to reach it, it might look like you have no desktop running
      • It will show the desktop with a green dot to show it’s running IF you used the “import from rdp file” approach, but it won’t if you just double-clicked the rdp file
      • You can use Ctrl + right/left arrow to access the desktop

Set up the instance

  • While in RDP and in the Windows instance you just connected to…
  • Use this script here
  • This means copying the commented out line at the top and running it in an elevated PowerShell
    • (right-click Windows key and select “Windows Powershell (Admin)”)
  • This will set up a Windows machine from scratch
  • It will also install AnyDesk, thereby allowing others to login to this instance
  • This will all take a while - approx half an hour
    • but you can set up anydesk (below) as soon as it’s installed, which should be early on

Set up AnyDesk

  • AnyDesk is installed early on in the process
  • As soon as you see the AnyDesk icon in the system tray, click it to launch Anydesk
  • Click the burger menu, top right, and Set password to get a password your users can use
  • When the machine is finished setting up, you need to restart the machine in order for Anydesk to work
    • This will mean closing down AnyDesk. Do NOT click Yes when it asks if you want to install it as a service (not that exact wording but something like that - just click No instead of Yes)
    • (right-click Windows icon => Power => Restart)

Give your ID and Anydesk pw to AnyDesk users

  • This is how they will connect
    • Because they have the pw, you can ignore the popup that asks you to accept their connection
  • You’ll need a separate machine for each set of users (eg if running a workshop with pairs, a separate machine for each pair or mob - if only one mob, only one machine needed)
  • It won’t work unless you’re attached to the instance via RDP and you’ve launched AnyDesk
  • I found the Invite button didn’t work - it was just always disabled no matter what
    • but it’s fine, you don’t need it
    • just give users your ID and they can use that to connect
    • they can either enter it in the “Enter remote address” field at the top of the anydesk app, or they can use the following url - https://go.anydesk.com/abcdefghi, where abcdefghi is the 9-digit ID you have given them.

Shut down or terminate your instance to save money

  • If you choose shut down (NOT restart) (right-click Windows icon => Power), you will not be charged by Amazon for ongoing compute time
    • you will still be charged (not much) for some storage
    • but it will be available to restart at any time: Instances => right-click => start instance
    • it’s really just gone into hibernation - everything you installed will still be there, but it is equivalent to shutting down a Windows machine
  • If you terminate the instance, it’s gone forever but you won’t be charged anything

Stop AnyDesk from launching on startup on MacBook / MacOS

  • Not enough to go to systems preferences => Users and Groups
  • You have to delete items from Library/LaunchDaemons and Library/LaunchAgents
  • full instructions here
    • but when it says Shift + Ctrl + G, it means Shift + Cmd + G, and I couldn’t copy/paste Library/LaunchDaemons and Library/LaunchAgents from the text.

Gotchas

  • The AnyDesk invite button doesn’t seem to work - see above
  • AnyDesk won’t work unless you’re attached to the instance via RDP and you’ve launched AnyDesk
  • While the instance is running, you will be charged for it - see above to see how to either shut it down or terminate it
  • If you close down an instance rather than restart (right-click Windows icon => Power => and then shut down instead of Restart), you have to download a new rdp
    • You will get a connection error if you try to connect from RDP using the previous RDP file
      • you only need a new RDP file, not a new admin pw
    • Amazon => Instances => right-click the instance and select Connect
    • Click RDP client
      • you might need to refresh this page to get updated rdp
    • Click “download remote desktop file”
  • If you have multiple pairs you will need one machine per pair
  • EC2 Windows machines are not really designed to be used in this way, hence odd things like having to keep creating a new RDP file