Suggestion Box
Differences
This shows you the differences between two versions of the page.
|
concepts:ideas [2012/05/16 21:27] kilian |
concepts:ideas [2013/03/29 18:38] (current) vincent |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ~~META:title=Suggestion Box~~ | ~~META:title=Suggestion Box~~ | ||
| + | |||
| + | ===== Proposals ===== | ||
| __**For each new suggestion, add your idea as a new result.**__ | __**For each new suggestion, add your idea as a new result.**__ | ||
| - | - Link to [[:wikipedia]] on the main page or the dev portal (i cannot edit both) | + | - Create a kit “How to set up MOVIM in my university ?” |
| - | - Tell non programmers how they can help the movim project. E.g. link to an article somewhere. Just a paste from a E-Mail from the mailinglist i wrote: | + | - Implement a deleting deadline for cached data (e.g. profile pictures) / auto-delete inactives accounts from the pod since [adjustable date] |
| - | <code> | + | - Let the user Joice whether a clearname is displayed or a nickname |
| - | But our project surely needs people who are not programmers or geeks. As the software is aimed for people who do not know what <?php ?> means. | + | - Share on different network at once (i know it works for facebook, it should also for twitter) |
| - | *you can translate movim in the languages you know | + | - Make the update easier |
| - | *you can hang out in the chatroom and discuss and bring in your own ideas | + | - hide nodes with an other version than the last on pod.movim.eu (prevents someone claims a newer version by modifying version.txt and not recommand to use an older version of Movim, for obvious reasons of security). Could be done by getting the Launchpad API. |
| - | *maintain articles in the wiki, help writing a wikipedia article: http://wiki.movim.org/wikipedia | + | - hide nodes where registration is closed (not any place) |
| - | *maybe you are familiar with graphic-editing software? | + | - Email notification about messages, friend requests |
| - | *you have a different view on the software, as the developers have, so you can tell them, how movim can be made more user friendly...</code> | + | - WIKI: Provide a short overview over all widgets |
| - | - a developer forum to discuss and share ideas. | + | - For mobile version, imagine a kind of SMS application like on Android or iPhone, with a similar design for contacts communication (historic, bubble text view), to communicate without any logging by any governments (unlike any clear communication as emails and sms). Inspired by viewing this [[http://www.ted.com/talks/malte_spitz_your_phone_company_is_watching.html|amazing TED conference]] (download it if an error occur). |
| - | - implement a deleting deadline for cached data (e.g. profile pictures) | + | - develop IM tricks like on Jappix, Gajim, etc (see https://github.com/jappix/jappix/wiki/Jappixtricks ) |
| + | - add an option "i am guest on this pod", when ticked, after the logout all traces are cleared | ||
| + | |||
| + | |||
| + | ===== Brainstorming ===== | ||
| + | |||
| + | Help us by giving any idea (even the most stupid) to resolv a problem. | ||
| + | |||
| + | ==== How to stock pictures and videos? ==== | ||
| + | |||
| + | Problem: Send 40mo in base 64 in an only HTTP request to the database of the XMPP server without broke the connection seem impossible. The only solution considered today is to store medias on the Apache server. | ||
| + | |||
| + | **For each new suggestion, add your idea as a new result.** | ||
| + | |||
| + | __Propositions:__ | ||
| + | - In-Band-Transfer: cutting files into 2MB parts, sending them one after the other in the XMPP database, and rebuild them in Movim: 2MB is too big. Maximum stanza size is 64Kbyte. Base 64 needed. very ugly? | ||
| + | - "Out-of-band", "bytestreams". either with raw tcp connections, or over http | ||
| + | - how do Youtube success to transfert heavier files ? | ||
| + | - Stock/remember the last Movim instance connected (somewhere, in vCard for example) and sync all medias from it (differential). Switching between instances would be transparent. | ||
| + | - http://mail.jabber.org/pipermail/standards/2012-August/026612.html | ||
| + | - http://mail.jabber.org/pipermail/standards/2012-August/026630.html | ||
| + | - http://mail.jabber.org/pipermail/standards/2012-August/026663.html | ||
| + | - http://mail.jabber.org/pipermail/standards/2012-August/026664.html | ||
| + | - http://mail.jabber.org/pipermail/standards/2012-August/026663.html | ||
| + | |||
| + | ==== Open discussion with other XMPP projects ==== | ||
| + | |||
| + | partners in XMPP Social Networking who could help us to bring the problem: | ||
| + | - Jappix http://blog.julienbarrier.fr/jappix/2011/rentrez-dans-un-reseau-social/ | ||
| + | - HabaHabe (Jappix fork) http://jawiki.ru/Eng:HabaHaba | ||
| + | - Salut à Toi http://sat.goffi.org/ | ||
| + | - OneSocialWeb http://onesocialweb.org/developers-xmpp.html | ||
| + | - BuddyCloud https://buddycloud.org/wiki/XMPP_XEP | ||
| + | - Lorea (Elgg fork) https://n-1.cc/pg/blog/read/60443/advances-on-xmpp-and-openid | ||
| + | - Diaspora-X (Diaspora* fork) http://bennolan.com/2011/04/19/diaspora-x-ui.html | ||
| + | |||
| + | Invite them to take part in http://listengine.tuxfamily.org/movim.eu/mailing-list/2012/08/msg00011.html | ||
| + | ===== To-Do List ===== | ||
| + | |||
| + | ==== Pages to by written by any user ==== | ||
| + | |||
| + | * http://wiki.movim.eu/manual:xmpp_server_prosody | ||
| + | * http://wiki.movim.eu/manual:xmpp_server_openfire | ||
| + | * http://wiki.movim.eu/manual:xmpp_server_tigase | ||
| + | |||
| + | To be improved: | ||
| + | * http://wiki.movim.eu/manual:http_server_apache | ||
| + | ==== Pages to by continued by users in dev group ==== | ||
| + | |||
| + | Speak about Movim in these contexts after presenting the subject, with graphic illustrations: | ||
| + | * http://wiki.movim.eu/concepts:decentralization | ||
| + | * http://wiki.movim.eu/concepts:http | ||
| + | * http://wiki.movim.eu/concepts:xmpp | ||
| + | * http://wiki.movim.eu/concepts:pubsub | ||
| + | * http://wiki.movim.eu/concepts:bosh | ||
| + | |||
| + | Without edit the previous text (translation done in french), complete "Testing" + "Improving": | ||
| + | * http://wiki.movim.eu/dev:contribute | ||
| + | |||
| + | |||
| + | ==== Pages to be continued by staff member==== | ||
| + | |||
| + | RE-Read and Improve (only Edhelas/Etenil): | ||
| + | * http://wiki.movim.eu/whoami (link concepts: pages into) | ||
| + | |||
| + | To be re-writen in french by Edhelas only (will be translated and moved in the future): | ||
| + | * http://wiki.movim.eu/fr:concepts:privacy_flags | ||
| + | |||
| + | To be re-writen for 0.6: | ||
| + | * http://wiki.movim.eu/fr:install | ||
| + | * http://wiki.movim.eu/contribute?&#open_a_movim_public_pod (chapters //Open a Movim public pod// and //Open a BOSH public server//) | ||
| + | |||
| + | ===== Wikipedia Reflexion Subject ===== | ||
| + | |||
| + | ==== Article ==== | ||
| + | |||
| + | Re-writen by Etenil for Wikipedia US (rejected because of few references): | ||
| + | |||
| + | <code> | ||
| + | {{db-web}} | ||
| + | |||
| + | {{Infobox Software | ||
| + | | name = Movim| logo = [[File:Movim-logo.svg|250px]] | ||
| + | | developer = The Movim Project | ||
| + | | type = Réseau social | ||
| + | | license = [[GNU Affero General Public License|AGPL v3]] & [[GNU Lesser General Public License|LGPL v3]] | ||
| + | | website = [http://www.movim.eu/ www.movim.eu] | ||
| + | }} | ||
| + | |||
| + | Movim (My Open Virtual Identity Manager)<ref name="Movim's wiki">{{cite web|url=http://wiki.movim.eu/whoami|title=What is Movim?|accessdate=01 July 2012}}</ref> is a free web application that implements a [[Distributed_social_network|distributed social networking]] service. Each node communicates with the others and different types of clients through [[XMPP]], thus turning Movim into a decentralized social network<ref name="Movim at the 2011 RMLL">{{cite web|url=http://influence-pc.fr/media/movim/2011/2011_11_18_edhelas_conference.pdf|title=Movim - Reinventons le Reseau Social! (French)|accessdate=01 July 2012}}</ref>. | ||
| + | |||
| + | The project was founded by Timothée Jaussoin (aka Edhelas) in early 2008, soon joined by Guillaume Pasquet (aka Etenil) in 2009. | ||
| + | |||
| + | == Concept == | ||
| + | Movim attempts to provide a viable alternative to popular social networks while relying on existing and standard technology. This allows both users to connect from any XMPP-compliant client and to host one of the many XMPP servers available. | ||
| + | |||
| + | The use of XMPP also allows for better confidentiality and security, even though this is not yet implemented in Movim{{citation needed|date=July 2012}}. | ||
| + | |||
| + | == Development == | ||
| + | The project was announced and started in early 2008<ref name="Original announcement (French)">{{cite web|url=http://forum.ubuntu-fr.org/viewtopic.php?id=262706|title=Movim - Le réseau social libreet décentralisé de demain!|accessdate=01 July 2012}}</ref>. The choice of PHP as development language was made from the start, based on its wide availability on servers. The development was always kept public, with an important translation effort. | ||
| + | |||
| + | The XMPP protocol, which was chosen for its obvious advantages, was not without drawbacks. And Movim's core had to be heavily modified several times while discovering blocking problems<ref name="Interview of Edhelas, 25 Nov 2011">{{cite web|url=http://linuxfr.org/news/entretien-avec-movim|title="Entretien avec Movim"|accessdate=01 July 2012}}</ref>. | ||
| + | |||
| + | In March 2011, Movim 0.1 was finally released<ref name="Release note on Twitter">{{cite web|url=https://twitter.com/Neustradamus/status/47707402304364544|title=Movim 0.1 released|accessdate=01 July 2012}}</ref>. On top of providing basic chat functionality, this version was also the first to have a full widget system, which is intended to third party developers as well as core developers to exploit information passing through XMPP. | ||
| + | |||
| + | == References == | ||
| + | {{Reflist}} | ||
| + | </code> | ||
| + | |||
| + | ==== Discussion/Comments/Notes ==== | ||
| + | |||
| + | * Need to be now translated in french and in german. | ||
| + | * I think we should only have one paragraph with technical details. Not two, with headings which tell almost the same.(kilian) | ||
| + | * I propose the following rough shape of the article: | ||
| + | * Goals | ||
| + | * Technical Details | ||
| + | * Current Status | ||
| + | |||
| + | |||
| + | ===== Video transcription ===== | ||
| + | |||
| + | ==== Raw format in French ==== | ||
| + | |||
| + | <code> | ||
| + | 00min33s On va vous présenter le réseau social Movim. C'est un réseau qui est décentralisé et dont le but est de permettre d'avoir un réseau robuste et libre pour tous, donc à la place du Facebook habituel que tout le monde nous demande de joindre. | ||
| + | 00min54s On va commencer par notre définition du réseau social puisque apparemment ce n'est pas un terme qui est bien défini. Donc pour nous un réseau social est moyen de communication qui est défini par différentes fonctionnalités de bases qu'on peut ensuite étendre mais ça c'est le minimum syndical. | ||
| + | 01min17s Il nous faut un chat ; une possibilité pour faire du blogging ou du microblogging. Il faut pouvoir commenter les blogs ou les microblogs et puis partager du multimédia donc des images, des vidéos, tout ce qu'on veut. | ||
| + | 01min42s Les réseaux sociaux existants font déjà ça seulement la plus part d'entre eux, même la quasi totalité d'entre eux, à part peut-être [???], sont centralisés. | ||
| + | 01min53s Donc un réseau social centralisé, c'est ce qu'on voit à l'écran, c'est à dire qu'il y a un énorme serveur au milieu avec beaucoup de clients partout et puis les clients, ils accèdent au serveur. | ||
| + | 02min06s Alors là on voit un des problèmes qu'encours une telle structure, qui est le problème de la censure. | ||
| + | 02min14s Alors ça c'est un problème qu'on a vu appliquer récemment aux réseaux sociaux bien connus notamment dans les pays où il y a eu le printemps arabe. Donc pas les premiers parce que les premiers ne s'attendaient pas à ce qu'on utilise les réseaux sociaux contre eux. | ||
| + | 02min29s Par contre ceux d'après s'en sont aperçus vite fait et ils ont coupé le robinet. | ||
| + | 02min38s Alors ils ont coupé une partie du réseau. Pour les moins sournois d'entre eux ils ont juste coupé internet et puis les plus sournois ont fait du monitoring sur le réseau pour savoir qui parle avec qui et puis surtout qui arrêter. | ||
| + | 02min58s Après, on a un autre problème avec ces réseaux centralisés, c'est simplement comme l'a présenté Salut à Toi tout à l'heure. | ||
| + | 03min08s Au niveau du serveur on peut avoir énormément de censure. On peut voir simplement sur Facebook que tenter d'envoyer un simple message contenant le mot clé Pirate Bay sur Facebook, le message n'arrivera jamais. | ||
| + | 03min20s C'est déjà arrivé sur MSN. C'est déjà arrivé sur énormément de systèmes centralisés. | ||
| + | 03min25s Là, on peut avoir un total contrôle de grosses multinationales comme Facebook. On a la même chose avec Google. | ||
| + | 03min35s On ne sait pas ce qu'ils font avec nos données. On ne sait pas s'il y a des reventes. | ||
| + | 03min38s Il y a déjà eu des histoires un peu bizarres autour de ça. | ||
| + | 03min43s Donc l'idée, c'est d'essayer de proposer quelque chose de décentraliser. | ||
| + | 03min48s J'ajouterai sur l'aspect précédent qu'un des autres problèmes est aussi que la plus part des réseaux sociaux qui sont utilisés de nos jours sont hébergés aux États-Unis et puis ça veut qu'ils sont tous potentiellement compromis juste par le fait d'être hébergé là bas à cause de la loi du Patriot Act qui fait que l'État américain peut demander des données sur n'importe quel utilisateur qu'il soit local ou non sans devoir contacter cet utilisateur au préalable et le réseau social, l'hébergeur, n'a pas le droit de refuser. | ||
| + | 04min24s Donc en bref, ce qu'on souhaiterait, c'est qu'il n'y ait pas de contrôle sur les données. | ||
| + | 04min36s Dans ce cas là, dans le cas à centralisation, que les utilisateurs ne soient pas de simple objets. Comme on l'a dit sur Facebook, en fait on a le Facebook qui est gratuit alors que ce qu'on vend c'est vous. | ||
| + | 04min48s C'est vos informations personnelles. | ||
| + | 04min51s Le problème aussi, on l'a vu très récemment avec des systèmes centralisés c'est dès qu'on a un problème sur un des data centers c'est potentiellement des centaines de millions d'utilisateurs qui sont bloqués. | ||
| + | 05min01s Comme il y a eu là récemment aux États-Unis avec un hébergeur de cloud, on a eu de gros gros réseaux sociaux comme Pint[?] ou Facebook qui ont eu des soucis là dessus. | ||
| + | 05min19s Au niveau simplement des contrôle des données | ||
| + | 05min21s Il ne faut pas centraliser. L'idée là c'est simplement de respecter ce qu'il y avait sur internet depuis le début. C'est à dire ne pas avoir un seul organisme qui contrôle tout. | ||
| + | 05min30s Benjamin Bayart le présente très bien, c'est du minitel. | ||
| + | 05min32s C'est du minitel 2.0, c'est à dire, on a vraiment un serveur | ||
| + | 05min35s on a toutes les informations dessus et les ordinateurs sont des simples terminaux qui vont se connecter à ce serveur là. | ||
| + | 05min40s Là on l'a vu très récemment, France Telecom vient de fermer le serveur central du minitel. | ||
| + | 05min45s Il y a peut-être des gens qui l'utilisaient encore et bien ils n'ont plus accès à ce genre de chose. | ||
| + | 05min53s Ça c'est le résumer. Les points importants à retenir, comme on vous l'a dit précédemment, finalement c'est la résistance à la censure puisque ces réseaux sociaux àa fait un peu parti de la liberté de se rassembler pour pouvoir discuter entre nous et prendre des décisions politiques. | ||
| + | 06min10s Et puis il y a aussi la résistance aux problèmes techniques parce que comme on l'a vu avec les systèmes de cloud qui ne sont pas forcément des réseaux sociaux mais ça y ressemble un peu | ||
| + | 06min20s Quand on a une tornade aux États-Unis, tout tombe | ||
| + | 06min29s Là, on propose un système décentralisé | ||
| + | 06min32s On dit que c'est décentralisé. En fait on se base comme pour Salut à Toi ou Jappix sur le protocole XMPP qui est plutôt pour fédérer. Donc en fait on a un ensemble de serveurs qui sont connectés entre eux et les clients viennent se connecter à ces serveurs là. | ||
| + | 06min44s Donc là on est sur des clients très connu comme Pidgin ou Gajim | ||
| + | 06min52s On a aussi des choses plus orientés web comme ce que propose Google à travers l'interface Gmail ou aussi des choses libres comme Movim ou Jappix. | ||
| + | 07min02s Donc l'idée c'est d'avoir un seul protocole qui permet de discuter entre tous ces serveurs là | ||
| + | 07min07s et que peu importe le client, tout le monde puisse échanger | ||
| + | 07min12s Ce qu'on n'aimerait pas, c'est imposé, même si pour l'instant on a pour l'instant très peu de retombées aux niveau nombre d'utilisateurs, mais ce qu'on ne voudrait pas, c'est que Movim s'impose et fasse 100% des parts de marché comme le fait Facebook aujourd'hui | ||
| + | 07min25s Ce qu'on veut c'est aussi proposer un protocole qui permet en fait pour l'utilisateur d'avoir le choix d'utiliser n'importe quel client. | ||
| + | 07min33s Donc le choix de partager de n'importe où avec n'importe quel objet, que ce soit un ordinateur, une tablette, un téléphone et que le message arrive où bon lui semble. | ||
| + | 07min47s Donc voila, c'est une application au cas précédent en centralisé | ||
| + | 07min51s mais là appliquer en décentraliser | ||
| + | 07min55s là c'est l'application de la censure dans un pays particulier avec un serveur ou un groupe de serveurs qui est dans ledit pays | ||
| + | 08min03s alors les serveurs là bas sont forcément restreints, censurés, par contre ceux à l'extérieur, n'en souffrent pas. Et on peut toujours continuer à les utiliser en toute liberté, sans crainte pour ses données. | ||
| + | 08min18s Voila donc, ça c'est la structure réseau de Movim en résumer. | ||
| + | 08min25s Donc on a un espèce de bulle XMPP qui est la partie qui se charge du transfère des données entre les instances et puis on a les instances Movim, le petit m, sur lequel le client se connecte. | ||
| + | 08min38s Donc on a déjà une forme de décentralisation au niveau de XMPP qui assure la transmission des données | ||
| + | 08min45s et après on a une décentralisation du client aussi | ||
| + | 08min48s puisque si on n'a pas confiance dans l'administrateur d'une node Movim on peut en utiliser une seconde pour contacter le même serveur XMPP. On peut conserver ses données et ses contacts | ||
| + | 09min05s Donc en bref qu'est ce que Movim ? Donc c'est un logiciel libre, il est sous licence AGPLv3 donc depuis le début depuis les cinq premières lignes de code on a décidé de créer un logiciel libre. On utilise essentiellement, d'ailleurs uniquement des logiciels libres pour tout ce qui est côté serveur et pour le développement. | ||
| + | 09min24s Donc on respecte au maximum les standards. | ||
| + | 09min27s Comme on l'a expliqué avant c'est le serveur XMPP mais c'est aussi les nouveaux standards web. On se base essentiellement sur du html5 pour le développement | ||
| + | 09min37s Je suis désolé le 6 ne sera pas compatible avec Movim. J'espère que certains d'entre vous n'utilisent pas encore le 6. | ||
| + | 09min44s Totalement décentralisé comme c'est présenté | ||
| + | 09min48s Au niveau sécuritaire, même si on essaye de sécuriser au maximum le logiciel, on pourra toujours le craquer. Là, la sécurité, c'est aussi une sécurité structurelle. C'est à dire que c'est décentralisé. | ||
| + | 10min00s On l'a vu avec PlayStation Network, on attaque un serveur, c'est des milliers de comptes qui sont attaquables. | ||
| + | 10min07s Si demain on attaque un serveur Movim, voir un serveur XMPP, ça va être cents personnes, deux cents personnes, peut-être milles personnes qui vont être impactées, mais pas plus. | ||
| + | 10min16s C'est le système même de l'email, c'est à dire que chaque personne peut mettre son email où il veut et le jour où le serveur est attaqué, on récupère le mot de passe et ce n'est qu'une partie de la population qui perd ses informations. | ||
| + | 10min32s L'idée c'est aussi de respecter les données privées de l'utilisateur. Donc là on a une politique, une façon de faire totalement différente de Facebook. | ||
| + | 10min43s Par défaut sur Movim, quand vous publierez une information, c'est un peu aussi l'idéologie de XMPP, l'information sera privée. | ||
| + | 10min51s Elle sera souvent restreinte à la liste de contact, voir à vous-même uniquement et c'est vous qui allez faire le maximum pour la rendre totalement publique. | ||
| + | 11min00s Là, on vous montrera sur l'interface, on a un système de jeu de couleur. Cinq couleurs très simples, et on peut savoir très rapidement quel est ce niveau de partage de l'information. | ||
| + | 11min13s Au niveau de la pile logiciel pour Movim. On a deux niveaux, un niveau qui est réseau pour le transfère des données via XMPP, un niveau client et un niveau interface, trois niveaux. | ||
| + | 11min32s Au niveau XMPP, ce qu'on utilise c'est les XEP pour PubSub et puis on utilise le module BOSH, soit du serveur XMPP, soit un module BOSH tier (tiers ?) pour se connecter. | ||
| + | 11min43s Alors PubSub ça nous sert pour le microblog car c'est basiquement un système de publications et de souscription qui permet de publier des petits articles et de les recevoir en temps réel quasiment. | ||
| + | 11min58s Et puis BOSH ça permet de combattre la nature stateless de php, qui fait qu'il ne peut pas se souvenir de ce qu'il s'est passé avant qu'on l'appelle. | ||
| + | 12min07s Et BOSH permet donc de faire un proxy http vers XMPP ce qui nous rend bien service. | ||
| + | 12min16s Au niveau du serveur web, là l'idée c'est, on nous pose souvent la question, quelle est la différence entre Movim et Diaspora* ? On est entièrement développé en php. Je crois qu'il y a 80% de php, 10% de JavaScript, 10% de CSS. | ||
| + | 12min27s On se pose sur une simple base de données. Là encore on a développer notre interface d'abstraction sur la base de données. Actuellement, c'est installé essentiellement sur du mysql. On peut s'installer sur mysql-lite et [?]-DB | ||
| + | 12min41s Et après, on peut tourner sur n'importe quel serveur web, donc à pu près ce que vous retrouver sur n'importe quel serveur mutualisé ou même chez vous en installant un simple serveur, là où Diaspora propose quant même des choses qui sont un peu plus difficiles à déployer, notamment du Ruby. Ils utilisaient aussi la base [?]-DB. Ce ne sont pas des choses que l'on trouve assez couramment. | ||
| + | 13min00s Et au niveau du navigateur, JavaScript, html5, CSS3 donc ce qu'on trouve actuellement dans Firefox, Chrome, n'importe quel navigateur moderne. | ||
| + | 13min12s PHP, on utilise PHP 5.3 car on a certaines spécificités au niveau de php. | ||
| + | 13min18s Sinon, pour le reste, c'est vraiment quelque chose de très standard. | ||
| + | 13min21s L'idée, ce n'est pas de bloqué l'administrateur lors de ses déploiements Movim, simplement pour donner un petit chiffre, Movim pèse 1M, donc vous télécharger ça sur votre serveur, vous dézippez le dossier et vous lancez directement l'installation en php, c'est très très simple. C'est aussi simple qu'installer un wordpress ou un dotclear. | ||
| + | 13min39s Je tiens à préciser sur cette slide, on nous demande souvent pourquoi (pour quoi ?) on utilise une base de données puisqu'en fait les données sont stockées massivement sur le serveur XMPP. | ||
| + | 13min51s La seule raison pour laquelle on utilise une base de données, c'est qu'on s'en sert comme cache. Un cache a haute performance pour garder les données XMPP en mémoire et éviter à les re-requérir à chaque fois qu'on se loggue sur le serveur XMPP, ce qui prendrait un temps fou. Donc on préfère l'avoir sur le serveur directement. | ||
| + | 14min08s Voila, là l'idée c'est que l'utilisateur n'ait même pas conscience qu'il utilise XMPP [avis subjectif, c'est dommage, ça serait bien que les personnes qui ont déjà un compte xmpp l'utilisent, ça faciliterait la transition]. L'idée, c'est qu'il se connecte à l'interface comme il se connectera à n'importe quel réseau sociaux, donc avec des simples pages web qu'il visite, qui se chargent très rapidement. On ne fait pas de ré-interrogation du flux ou des contacts à chaque fois qu'on recharge une page web | ||
| + | 14min31s On a fait des tests, on peut même relancer le navigateur, relancer le serveur web, la session reste ouverte un certain temps | ||
| + | 14min39s Donc c'est quelque chose qui est assez robuste. J'ai même commencer à faire des tests sur mobile. | ||
| + | 14min48s C'est une différence par rapport à Jappix qui est plutôt un client lourd. Qu'est ce que je veux dire par un client lourd ? c'est que la connexion se fait côté JavaScript, côté navigateur, et tous les échanges avec le serveur XMPP se sont à travers le navigateur. Movim, toute la connexion, toute l'information sont traités par le serveur. | ||
| + | 15min05s Et le navigateur ne fait qu'affiche le résultat. | ||
| + | 15min08s Et sur les mobile ça passe très très bien parce qu'un chargement de page web père environ 30 à 40ko donc c'est extrêmement rapide, c'est extrêmement léger. On fait aussi un peu de cache niveau navigateur pour accélérer tout ça. | ||
| + | 15min20s L'idée, c'est d'avoir la chose la plus légère possible pour le déployer le plus facilement possible. | ||
| + | 15min24s Et le fait qu'on maintienne la session ouverte au niveau serveur plutôt qu'au niveau client, ça permet aussi d'éviter de perdre complètement ça session quand on change de réseau 3g, par exemple quand on est chez Free mobile et qu'on change d'un coup sur Orange, on perdrait complètement sa session sur un Jappix ou quelque chose comme ça, alors que nous, ça reste. | ||
| + | 15min48s Là c'est encore un peu plus dans le détail. Là c'est la structure vraiment de Movim lui-même, donc la structure en php. Je vais partir du bas car c'est plus simple. | ||
| + | 16min01s Le serveur XMPP étant en dehors, la partie qui nous intéresse est celle du carré jaune. On a une bibliothèque XMPP écrite en php par un indien [?] qui a fait ça. Ça s'appelle JAXL. C'est pas trop mal. | ||
| + | 16min22s Ça envoie et ça attrape des messages XMPP et ça les relaye à un système événementiel un peu plus haut. Ce système événementiel ensuite redispatche les messages sous formes d'événements widgets qui est au dessus. | ||
| + | 16min40s Le widget est quelque chose qu'on essaye de développer au maximum puisqu'on essaye de proposer une API aussi complète que possible et simple. Si possible tout en php pour que les gens fassent facilement de nouveaux widgets et puissent implémenter des fonctionnalités dans Movim plutôt qu'à avoir à refaire tout le chemin html5, CCS, JavaScript à chaque fois qu'on fait une nouvelle fonctionnalité. | ||
| + | 17min08s Et ensuite on a au niveau GUI, donc ça c'est un peu le système de template qui a trois ou quatre niveaux qui empile ce qui sort des widgets, fait un peu de cache et il envoie tout ça au navigateur. | ||
| + | 17min23s Je peux vous donner quelques précisions au niveau du développement, au niveau du système événementiel. C'est quelque chose qui nous a pris énormément de temps. Le cœur même du projet a commencé depuis un an et demi, deux ans. On a mis carrément une année à développer le système événementiel. | ||
| + | 17min38s Il faut savoir que le php est une exécution linéaire et là l'idée c'est d'avoir quelque chose qui fonctionne comme un démon, comme un programme qui tourne continuellement. | ||
| + | 17min48s Le système événementiel est très complexe à faire car à chaque fois il s'agit de sauvegarder la session dans la base de donnée pour la recharger ensuite avec des très bonnes performances. On a réussi. Ça fonctionne assez bien. On a quelques petits soucis au niveau de la session, mais depuis les dernières versions, elles sont quasi inexistantes. | ||
| + | 18min03s Là aussi aussi où on a eu énormément de travail, comme l'a dit Guillaume, c'est sur les widgets | ||
| + | 18min09s C'est vraiment chaque élément de l'interface est restreint à son propre dossier, avec son propre JavaScript, son propre CSS. La personne peut faire sa petite cuisine et ensuite directement interroger l'API Movim. | ||
| + | 18min21s donc l'idée, ce n'est pas d'avoir une interface monolithique comme on pourrait avoir sur Facebook, si la personne décide d'installer Movim et d'avoir sa liste de contact à gauche, il va simplement déclarer la ligne dans un autre endroit du fichier. On pense avoir dans les prochaines version quelque chose de très graphique. On prend carrément l'élément et on le glisse sur l'interface. | ||
| + | 18min43s L'idée c'est d'avoir quelque chose de totalement personnalisable. | ||
| + | 18min46s Pareil au niveau du thème. Le thème est aussi totalement indépendant. On travaille dessus pour avoir quelque chose d'encore plus abstrait. | ||
| + | 18min56s Au niveau du thème, très rapidement, moi je compte le déployer à la rentrée à l'université de Nantes | ||
| + | 19min02s J'aurai qu'à faire deux, trois modifications de fichiers pour avoir un thème totalement compatible avec la charte graphique de l'université de Nantes. | ||
| + | 19min10s Et après, au niveau du serveur XMPP et du navigateur, l'idée c'est d'utiliser des standards des deux côtés pour s'interfacer avec n'importe quel navigateur et serveur XMPP | ||
| + | 19min24s Donc là c'est ce qu'on prévoit de faire pour le futur car bien sûr le logiciel est incomplet et il y a toujours des choses à améliorer. | ||
| + | 19min32s On a un processus qui est proche de [AGIL ?], on y va par petit pas. | ||
| + | 19min35s et on s'assure à chaque fois qu'on va bien dans la bonne direction. | ||
| + | 19min38s et on remet en question là où en on est chaque fois. | ||
| + | 19min42s Pour l'instant les points qu'on a retenu, alors peut-être pas pour la prochaine version, les prochaines versions, ça va être d'ajouter le support de la vie privée qui vient directement de Salut à Toi on va probablement reprendre la même chose au niveau de PubSub. | ||
| + | 20min03s Là on attend la standardisation html5 pour tout ce qui est audio et vidéo. En fait XMPP permet déjà de le faire comme on l'a dit dans certains clients. | ||
| + | 20min10s C'est en fait l'interface navigateur qui est assez difficile pour récupérer le flux vidéo de la webcam et le renvoyer derrière. | ||
| + | 20min16s Là, on a d'autres clients qui utilisent du flash. Là aujourd'hui en 2012 utiliser du flash pour faire du transport en vidéo, surtout que quelque chose de libre, c'est assez absurde. | ||
| + | 20min28s Comme je disais au niveau de la vie privée rajouter beaucoup de filtres pour faire quelque chose d'assez joli graphiquement et essayer d'avoir des tableaux de droits pour chaque messages, donc en publication, en lecture. | ||
| + | 20min40s Aussi, au niveau du cœur en lui-même, là pour la 0.6 on va avoir une grosse réécriture de certains éléments pour les rendre totalement indépendants les uns des autres, notamment au niveau de la librairie XMPP que je tente de reprendre actuellement de la réécrire pour la rendre plus léger, plus rapide. | ||
| + | 20min59s Un autre problème aussi, c'est au niveau de la sécurité et de la vie privée également puisque comme l'a dit Goffi au niveau du serveur XMPP, les messages passent en clair. Et ça, c'est assez difficile pour nous à résoudre parce qu'il faut qu'on implémente un chiffrement quelque part. Alors ce qu'on pense faire c'est probablement faire ça en JavaScript et voir ça en point à point et après au niveau de l’algorithme qu'on va utiliser, c'est encore à étudier puisque il faut sûrement faire un [N ?] check entre les deux clients pour avoir quelque chose de homogène, donc on verra ça. | ||
| + | 21min33s L'intérêt aussi, c'est de faire ça au niveau de la base de donnée. Comme on le disait, au niveau du cache on stocke pas mal d'informations dans la base de données pour éviter d'avoir à interroger le serveur XMPP à chaque fois. | ||
| + | 21min44s Là, l'idée c'est de chiffrer la base de donnée pour que même l'administrateur n'ait pas accès aux propres informations qu'il a sur son serveur et que l'utilisateur soit totalement confiant de ses informations sur le serveur même. | ||
| + | 21min55s Des échos que j'ai eu sur Facebook, les bases de données sont quasiment en clair, c'est à dire que quelqu'un qui vient travailler chez Facebook et qui a les droits d'administration sur la base de données peut interroger les données personnelles de 500 10^6 de personnes. | ||
| + | 22min07s Je ne pense pas qu'au niveau de l'ACNIL ou de l'association de la vie privée se genre de choses passent très très bien. | ||
| + | 22min15s On vous faire une petite démo | ||
| + | 22min33s Là, ce qu'on va vous présenter c'est la dernière version qui est sortie il y a à peu près une semaine, c'est la version 0.5. On a une interface qui a été entièrement retravaillée, notamment pour passer sur les petites résolutions. On avait des soucis sur l'ancienne interface. Là, ça passe presque bien. On est sur du 600x800 donc on arrive sur des petites choses mais 1024 de largeur, il n'y a aucun soucis pour | ||
| + | 23min26s C'est un clavier querty ^^ | ||
| + | 24min08s Là, je suis désolé, c'est en 600x800 donc les informations sont très ramassées. | ||
| + | 24min13s La nouvelle interface, comme vous pouvez le voir, se présente en trois colonnes. On a la liste de contacts à droite qui reste fixe au niveau du scroll, donc après un flux d'actualité au centre. Ce qui est aussi intéressant, c'est de voir que les informations arrivent en instantanée. Je ne sais pas si ça a changer, mais sur Facebook mais il me semble que le client fait une requête toutes les minutes, toutes les cinq minutes pour avoir les nouvelles informations. Là, l'information vient au client, que ce soit sur mobile ou non. | ||
| + | 24min50s Donc à droite on retrouve une bête liste de contacts, on peut lancer une discussion directement en cliquant sur la petite bulle et bien sûr plier ou déplier le chat. | ||
| + | 25min02s Les informations viennent instantanément. Seuls les commentaires pour l'instant sont à requêter par un clic. | ||
| + | 25min12s On a encore au niveau du standard quelques précisions à faire sur ce point là. | ||
| + | 25min19s Donc après comme les clients XMPP on peut s'échanger sa présence. Au niveau du profile, c'est assez simple de modifier ses informations. Une petite chose pour le html5, au niveau de l'avatar, là on a fait une petite modification en html5 qui est en fait au lieu d'envoyer l'image en 4M pixels et mettre environ 3/4h avec une connexion 3g a envoyé une simple photo pour ensuite la redimensionner sur une image de 50 pixels, là, on compresse directement l'image au niveau du client pour envoyer qu'une petite image. C'est encore une petite optimisation qu'on a fait pour accélérer le chargement et l'envoi d'informations. | ||
| + | 26min08s Dans la configuration est actuellement très très simple puisque vous remarquez qu'il y a simplement les langues. | ||
| + | 26min15s On est traduit dans dix langues totalement, on a après plein de langues qui sont proposées partiellement et aussi, vous pouvez directement aller sur notre [pas compris ?] de développement pour rajouter des langues. | ||
| + | 26min31s On a une trentaine de langue sur launchpad qui sont partiellement traduites. Si vous vous sentez confiant dans votre capacité à être polyglotte, n'hésitez pas à y aller et nous aider à traduire. | ||
| + | 26min45s Même en Klingon, il n'y a aucun soucis. | ||
| + | 26min49s Au niveau de l'aide, c'est pareil, c'est au niveau de l'interface. Voila les petits fanions qu'on a ajouter. Le fanion blanc ça veut dire que l'information est à vous uniquement et aucun de vos contacts. Le fanion vert, c'est uniquement restreints aux contacts que vous avez choisi explicitement. Le fanion orange correspond à votre liste de contact en entier. Le fanion rouge correspond à tout le réseau XMPP et le fanon noir à tout internet. | ||
| + | 27min19s L'idée dans la 0.6, dans la prochaine version du projet, est de proposer une interface web simple, sans XMPP, pour avoir comme un blog qu'on pourra accèder. La personne se connecte en XMPP sur Movim, mais d'un autre côté on peut avoir une simple interface avec un flux rss tout simple pour ce qu'il a décidé d'avoir de totalement public. | ||
| + | 27min40s Bien sûr avec les commentaires. | ||
| + | 27min42s C'est un profile public. | ||
| + | 27min46s Là encore faire l'interconnexion entre XMPP et le reste du réseau. | ||
| + | 27min53s Ce qu'on peut aussi préciser, c'est que ce genre de client s'installe parfaitement sur des très petites machines. On l'a fait tourner nous pour nos tests sur un eeepc 701 qui est sorti y a trois, quatre ans, sans aucun soucis. Bien sûr, s'il y avait 10 000 personnes dessus, ça aurait eu un petit peu plus de soucis. | ||
| + | 28min15s J'ai mon serveur Movim et XMPP qui tournent sur la même machine chez moi. C'est un Atom, un petit Atom, et je n'ai quasiment aucune charge. Ça scale plutôt bien. | ||
| + | 28min29s Au niveau de l'interface, l'ajout de contact se fait comme un simple client XMPP par ajout de l'identifiant du contact. | ||
| + | </code> | ||
| + | |||
| + | ==== Timing in SRT format ==== | ||
| + | |||
| + | Because of give a good printable transcription is difficult (assign who is speaking, paragraphs etc.) and not very usefull, Vincent suggest to only offer the transcription in subtitles format (for deafs people) and translated subtitles for english-speaking people. | ||
| + | |||
| + | Subtitles could easily be done using [[http://audacity.sourceforge.net/?lang=fr|Audacity]] by importing the [[http://influence-pc.fr/media/movim/2012/RMLL2012/2012_07_10_edhelas_et_etenil_aux_rmll_conference.webm|video file]] and using the transcription just above. It would be translated after timing. | ||
| + | |||
| + | <code srt> | ||
| + | 1 | ||
| + | 00:00:08,500 --> 00:00:10,000 | ||
| + | Bonjour à tous, | ||
| + | |||
| + | 2 | ||
| + | 00:00:11,500 --> 00:00:15,000 | ||
| + | Est-ce que quelqu'un ici ne parle pas français ? | ||
| + | |||
| + | 3 | ||
| + | 00:00:17,000 --> 00:00:18,000 | ||
| + | Oui ? | ||
| + | |||
| + | 4 | ||
| + | 00:00:20,800 --> 00:00:25,500 | ||
| + | Pour le seul anglophone, notre diaporama | ||
| + | est entièrement en anglais, alors | ||
| + | |||
| + | 5 | ||
| + | 00:00:26,000 --> 00:00:29,300 | ||
| + | si vous ne pouvez pas suivre, demandez moi | ||
| + | juste et je répondrai à vos questions d'accord ? | ||
| + | |||
| + | 6 | ||
| + | 00:00:29,400 --> 00:00:31,000 | ||
| + | C'est d'accord, parfait merci. | ||
| + | |||
| + | 7 | ||
| + | 00:00:32,400 --> 00:00:35,900 | ||
| + | Donc on va vous présenter le réseau social Movim, | ||
| + | |||
| + | 8 | ||
| + | 00:00:36,300 --> 00:00:47,000 | ||
| + | c'est un réseau qui est décentralisé et dont le but est | ||
| + | de permettre d'avoir un réseau robuste et libre pour tous. | ||
| + | |||
| + | 9 | ||
| + | 00:00:47,200 --> 00:00:52,500 | ||
| + | Donc à la place du Facebook habituel | ||
| + | que tout le monde nous demande de joindre. | ||
| + | |||
| + | 10 | ||
| + | 00:00:57,600 --> 00:01:03,600 | ||
| + | Alors on va commencer par notre définition du réseau social | ||
| + | puisque apparemment ce n'est pas un terme qui est bien défini. | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== Translation of the french SRT ==== | ||
| + | |||
| + | ==== Integration in HTML ==== | ||
| + | |||
| + | Using "Jquery SRT" plugin. | ||