How do you access Location 2 from Location 1, when Location 2 has a shared Internet connection that you have no control over, assuming Location 1 is firewalled, and Location 2 has a firewall allowing SSH traffic to go through?
From Location 1, execute the following command
ssh -N -R <local port that forwards traffic>:localhost:<port that gets forward traffic> -p <SSH port listening on Location 2> <username that exists on Location 2>@Location2
Simplified, it is:
ssh -N -R <X>:localhost:<Y> -p <Z> username@Location2
And so, when you run the following command at Location 2,
ssh -p <X> <username that exists on Location 1>@localhost
where localhost actually refers to Location 1, you connect to Location 2, gets forwarded by SSH to port <Y> on Location 1.
So, for example, if you have a VNC running at the office that you want to access from home, first run the following command while at the office:
ssh -N -R 2200:localhost:5900 -p 9999 username@homemachine
The above tells ssh to connect to port 9999 (the SSH port) of the home machine, with the specified username.
and then at home, to connect to the VNC server at the office, run the VNC viewer, and connect to localhost:2200, which will then forward the traffic to the office on port 5900.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes