The Synchronizer is a system for synchronizing browsers. It allows all of its users to synchronize with each other by literally “getting everyone on the same page”. Pages are called “settings” so as to emphasize the temporary and spatial nature of collective travel. When a user changes a setting by entering a new url, this changes the collective setting for everyone else; i.e. everyone's browser moves to the new setting.
The synchronizer backend is open and is separated from its user-client. It can therefore be used for other clients using the following protocol:
http://www.abstractmachine.net/synchronizer/backend.php?command=value&command=value
Backend instruction manual. This is the default, meaning that if you give it no commands, it will automatically give you this help page. Help in html format.
Gives you the latest synchronized setting. Result in xml format.
Checks to see if the current setting is the same as the setting identified in the command. In other words, each client asks the server "this is my current setting and the following user chose it. Is the current setting more recent than this one?" If the answer is no, the server responds nothing so as to conserve bandwidth. If the answer is yes ("There is a new setting"), the server then feeds back the new url + the username who chose it + and the time it was entered. Result in xml format.
Adds a new setting to the synchronizer and returns back the latest setting. Re-read that last sentence, because it's a little odd: the user adds a new setting, but nothing says that some user won't add another setting in the meantime; so the system spits back the new setting which may or may not be the one the user just added. Chances are -- especially given the nature of PHP and MySQL -- that the user's new setting will be the latest. But there is no guarentee when you live in an asynchronous world. So the server spits back the latest setting as a sort of verification. Result in xml format.
Gives a list of all the settings added to the database. Future versions will add pages (1..10, 11..20, 21..30, etc), but for the moment it's just one big dump. Results in xml format.
Same as above, only in html+table format.
Same as above, only in raw text format.
Future command not yet activated. This will allow for visualisation clients that show a single user's synchronizations. Results in xml format.