Philipp Kern (28/08/2007): > Hi KiBi, Yo, > thanks in advance for your help. The English "original" follows. A > truncated translation is probably the way of choice, although this is > one of the two points which one must fill out: 'Welcome. > Gobby was developed in the last two years at grammar school. Armin and > I, the main developers of Gobby, started the project because we wanted > to jointly take notes during lessons at school and because we wanted > to share our homework in a sensible way. We are a small team, all > knowing eachother from school, with two developers (Armin and me) and > more or less two contributors (one with occasional source submissions > and one for the artwork). Gobby a été développé ces deux dernières années pendant le lycée. Armin et moi, développeurs principaux de Gobby, avons démarré ce projet parce que nous voulions être capables de prendre des notes conjointement pendant les cours et parce que nous voulions partager nos devoirs judicieusement. Nous sommes une petite équipe, qui s'est formée au lycée, avec deux développeurs (Armin et moi) et deux contributeurs réguliers (l'un pour le code source, l'autre pour les graphismes). > Armin used a pen-and-paper approach to develop the first algorithm, > which consisted basically of a "undo all the other did not know", > "apply the change" and "redo all which we undoed earlier". This worked > reasonably well. Later we dug up some papers talking about > "operational transformation" and an algorithm called Jupiter which we > swiftly implemented. (Although this may sound easy, there was no > implementation beforehand, just a list of cases to satisfy.) Armin a utilisé une approche « papier et crayon » pour développer le premier algorithme, qui consistait principalement en : « défaire tout ce que les autres ne connaissent pas », « appliquer la modification » et « réappliquer ce qui a été défait précédemment ». (Assuming it is “undo all the other*s* didn't know about”.) Cela fonctionna plutôt bien. Plus tard nous nous sommes intéressés à des publications sur les « transformations opérationnelles » et à un algorithme appelé Jupiter, que nous avons rapidement implémenté — cela peut sembler simple, mais il n'y avait pas d'implémentation existante, juste une liste de cas à traiter. (Assuming it is “*but* there was no…”, and s/satisfy/handle/.) > Currently we have a client-server structure with a two-dimensional > state space per client (I could go into detail on that, if desired). > Plans are to get to a new peer-to-peer architecture by using another > algorithm (adOPTed), also to enable the last crucial missing > functionality: undo and redo. Nous avons actuellement une structure client-serveur avec un espace d'états par client à deux dimensions (je peux donner plus de détails à ce sujet, si nécessaire). Il est envisagé de se tourner vers une architecture de pair-à-pair en utilisant un autre algorithme (adOPTed) ainsi que d'ajouter une fonctionnalité cruellement manquante : annuler et refaire. > The collaborative base is completely implemented in the C++ library > obby, which is documented with Doxygen. The networking abstraction > library used is net6, also coded by us in C++. La base collaborative est entièrement implémentée dans la bibliothèque C++ obby, qui est documentée avec Doxygen. L'abstraction réseau utilisée est net6, également codée en C++ par nos soins. > The program is currently present in several Linux distributions like > Debian, Ubuntu and Gentoo. Despite Edubuntu's moves to include Gobby > in the standard install, it is still a niche application. The user > feedback has been positive so far and we try to fix bugs reported to > us in time (more recently there were mostly usability issues with > Gobby, the fundation, i.e. obby, looks quite reliable now). Gobby and > its libraries were translated into several languages with the help of > the kind volunteer translators over at Launchpad's Rosetta. Le programme est présent dans plusieurs distributions Linux comme Debian, Ubuntu et Gentoo. Même si Edubuntu inclut Gobby dans l'installation standard, il s'agit toujours d'une application confidentielle. Le retour utilisateur a été très positif jusqu'ici et nous essayons de résoudre rapidement les bogues qui nous sont signalés (nous avons eu récemment des problèmes d'utilisation avec Gobby ; la base, i.e. obby, semble désormais fiable). Gobby et ses bibliothèques sont traduits dans de nombreuses langues grâce à des traducteurs volontaires, via l'application Rosetta de Launchpad. > There is a reimplementation in C currently ongoing, called infinote, > which will use XMPP aka Jabber as the communication medium. (Not only > because it is becoming more and more popular in terms of embedding > into applications, but because it solves the very real problem of > hosting sessions at home, behind a firewall.) This library will also > feature the much wanted peer-to-peer architecture and proper > algorithmic undo and redo. But there is still much of the > implementation work to be done... and we are students and need to > learn for our examinations... Une réimplémentation en C est actuellement en cours, nommée infinote et utilisant XMPP (Jabber) comme moyen de communication. Non seulement celui-ci devient de plus en plus populaire en terme d'intégration dans les applications, il résout le très gros problème qu'est l'hébergement de sessions à la maison, derrière un pare-feu. Cette bibliothèque permettra aussi la structure de pair-à-pair tant souhaitée et l'implémentation de la fonctionnalité annuler et refaire. Mais il y a encore beaucoup de travail d'implémentation à fournir… et nous sommes toujours étudiants et devons travailler pour nos examens… Cheers, -- Cyril Brulebois