This is a roadMap page for PythonCourse.
We will try to connect the different laptops during the course. People can allow others to copy their current project to their own laptop and run it there. But the state changes on that software will be send back to the original laptop to allow that hardware attached to that laptop will function as if the person is running on that laptop. The code will be fully functional on the own laptop and can be used as a basis to enhance the project there.
The visiting laptop will be shown as an avatar on the visited project that can be kicked by that laptop or be limited in their actions. For example the avatars need to move to a specific spot to influence the project and only one avatar can enter that same stop at once.
- Write a OSC central server where people can advertise their project and the interaction details.
- Allow this same server to read the project source-code and binary files (pictures, sounds, etc.)
- Send signals to the current running program to influence the actions of that program.
- Send signals from the current program that changes the state of screen elements.
This server will be build around a central cache. Every change in state will be cached there for some minutes. When changes are send to the server they will create a new cache entry and invalidate the current entry. When another PC requests the state of something it will be send from the cache first. When that gets too old the original PC is queried again for the state.
This state will contain:
- the list of PC's that have something to show.. this needs to be restated every few minutes or they will be considered off
- the source-code and pictures that people need to have to run the software in client mode, a PC can upload new versions to the server who will distribute those also to interested parties
- the list of different knobs that are allowed to be changed on the PC, these will be re-queried every few minutes
- the list of parameters on the different screen elements
- the state of the different screen elements
- PC's that have shown interest in these screen elements.. normally they need to restate their interest every few minutes or they will be considered disinterested
Changes to the state will normally be forwarded to the PC's that have shown interest
Future versions of the protocol will allow PC's to contact each other directly for less latency on the signals. But the server could always be used if direct connections are impossible. In this mode of operation all PC's in service mode should remember IP addresses of interested parties themselves.