Implement socket programming in order to remotely view progress
Because training might take place on remote computers without displays (like the HPCC) we might want the ability to stream both information and video from a remote computer to a local client. This would involve writing a client program and setting up a non-blocking socket on the server end waiting for multiple connections.
Ideas for this might be to buffer X frames of data (image and debug) and send them as fast as possible. If the queue gets to large we just flush it and start it new (effectively skipping data but at the same time that is the price of networking 'video' while still limiting a buffer size). Also because of the nature of Python sockets the client program could be in any language (personally for this kind of thing I believe C# is always a good language for tools development).