tag:linuxfr.org,2005:/tags/couchdb/public
LinuxFr.org : les contenus étiquetés avec « couchdb »
2018-10-15T15:56:23+02:00
/favicon.png
tag:linuxfr.org,2005:Diary/38107
2018-09-14T13:03:54+02:00
2018-09-14T13:03:54+02:00
Terminologie Master/Slave
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<p>Bonjour, Nal</p>
<p>Je t'écris ce matin car je me sens tourmenté par mes lectures nocturnes.<br>
Étant une personne passionnée par le développement informatique et plus précisément le langage Python et son écosystème, il m'arrive de me perdre sur le <a href="https://bugs.python.org/"><em>bug tracker</em></a>, à la recherche de savoir. Hélas n'ayant pas le niveau pour contribuer (par manque de confiance en sois principalement surtout), je me contente d'observer.</p>
<p>Observer le cycle de vie d'un bug, de sa découverte à sa résolution. La mise en évidence des erreurs humaines qui ont permis sa naissance, les méthodologies utilisé pour le résoudre.<br>
Tout ceci afin de moi-même être capable d'éviter de donner naissance à ces nuisibles.</p>
<p>Le contexte replacé, parlons de la lecture en question.<br>
Le plus simple je pense sera un lien, un extrait, une traduction.</p>
<p>Voici donc l'<em>issue</em> ou problème :</p>
<p><a href="https://bugs.python.org/issue34605">issue34605</a></p>
<blockquote>
<p>For diversity reasons, it would be nice to try to avoid "master" and "slave" terminology which can be associated to slavery.</p>
<p>Pour des raisons de diversité, il serait bien d'essayer d'éviter les terminologies "maître" et "esclave" qui peut être associée à l'esclavage.</p>
</blockquote>
<p>Le message est suivi de liens vers d'autres communautés qui ont aussi abordé la problématique, je fournirai ceux ci en fin d'article.</p>
<p>L'auteur de ce message, STINNER Victor (vstinner), a créé 5 patch pour changer par-ci par-là des utilisations de "Master" et "Slave" dans le code de différents modules de la librairie standard de python.</p>
<p>Beaucoup de personnes ont ensuite débattu sur le sujet en réponse de ce message, un simulacre de débat selon moi car les avis exprimés n'ont pas eu de réponse de l'auteur et le sujet c'est retrouvé validé et clos par M Guido van Rossum lui-même (Créateur et grand manitou du langage).</p>
<p>Tu observeras, je prendrai en exemple le 3eme patch proposé : <a href="https://github.com/python/cpython/pull/9101">https://github.com/python/cpython/pull/9101</a>, que le débat se fait censurer des messages sont supprimés, d'autres masqués car <em>off topic</em> , et que M Guido van Rossum fait bien comprendre qu'il ne discutera pas.</p>
<p>vstinner nous dit <a href="https://bugs.python.org/issue34605#msg324775">ici</a> que les plaintes ayant motivées cette action sont privés.</p>
<p>Je me demande si elles existent, mais ça n'a que peu d'importance.</p>
<p>Je trouve l'affaire plutôt dérangeante, non pas par le fond du sujet qu'elle traite, mais par sa forme. La censure du <em>débat</em>, l'abus de pouvoir, mis au services de l'inclusion social, je ne trouve pas ça moral.</p>
<p>Et toi Nal? Qu'en penses-tu ?</p>
<p>Voici les liens promis précédemment :</p>
<p>L'<em>issue</em></p>
<p><a href="https://bugs.python.org/issue34605">https://bugs.python.org/issue34605</a></p>
<p>Les patch</p>
<p><a href="https://github.com/python/cpython/pull/9099">PR 9099 https://github.com/python/cpython/pull/9099</a></p>
<p><a href="https://github.com/python/cpython/pull/9100">PR 9100 https://github.com/python/cpython/pull/9100</a></p>
<p><a href="https://github.com/python/cpython/pull/9101">PR 9101 https://github.com/python/cpython/pull/9101</a></p>
<p><a href="https://github.com/python/cpython/pull/9102">PR 9102 https://github.com/python/cpython/pull/9102</a></p>
<p><a href="https://github.com/python/cpython/pull/9195">PR 9195 https://github.com/python/cpython/pull/9195</a></p>
<p>Les éléments de M Victor STINNER</p>
<p><a href="https://github.com/antirez/redis/issues/3185">https://github.com/antirez/redis/issues/3185</a></p>
<p><a href="https://www.drupal.org/node/2275877">https://www.drupal.org/node/2275877</a></p>
<p><a href="https://issues.apache.org/jira/browse/COUCHDB-2248">https://issues.apache.org/jira/browse/COUCHDB-2248</a></p>
<p><a href="https://github.com/django/django/pull/2692">https://github.com/django/django/pull/2692</a></p>
<div><a href="https://linuxfr.org/users/ze0/journaux/terminologie-master-slave.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115275/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/ze0/journaux/terminologie-master-slave#comments">ouvrir dans le navigateur</a>
</p>
ze0
https://linuxfr.org/nodes/115275/comments.atom
tag:linuxfr.org,2005:News/38412
2018-01-29T10:15:43+01:00
2018-01-29T14:57:59+01:00
Cozy, votre domicile numérique
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>Je suis très fier de vous annoncer que Cozy est officiellement lancé.</p>
<p>Qu’est‐ce que Cozy ? Eh bien, c’est tout d’abord un domicile numérique, un espace où vous êtes chez vous avec vos données (fichiers, photos, bancaires, vacances). Cozy vous permet également de récupérer vos données depuis des services tiers pour mieux les utiliser. Comment ? Avec les connecteurs qui vous les rangent automatiquement pour ne plus perdre de temps à les chercher. Enfin, on peut faire confiance à son Cozy : le code est libre, il est possible de s’auto‐héberger, Cozy Cloud (la société) ne fait pas dans la publicité ciblée, l’exploitation ou la revente de vos données. Grâce à tout ça, Cozy peut vous simplifier votre vie numérique.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f626c6f672e636f7a79636c6f75642e63632f7075626c69632f323031382f2e626c6f675f6865616465725f46525f6d2e706e67/.blog_header_FR_m.png" alt="Bannière Cozy, jour 1" title="Source : https://blog.cozycloud.cc/public/2018/.blog_header_FR_m.png"></p>
<p>La suite de la dépêche permet de découvrir les différentes applications de Cozy et de revenir sur les échanges qui avaient eu lieu lors de la précédente dépêche qui annonçait les premiers travaux sur la nouvelle version de Cozy.</p></div><ul><li>lien nᵒ 1 : <a title="https://cozy.io/fr/" hreflang="fr" href="https://linuxfr.org/redirect/101313">Le site officiel de Cozy</a></li><li>lien nᵒ 2 : <a title="https://manager.cozycloud.cc/cozy/create?source=linuxfr" hreflang="fr" href="https://linuxfr.org/redirect/101314">Créer son instance Cozy sur l’infrastructure Cozy Cloud</a></li><li>lien nᵒ 3 : <a title="https://docs.cozy.io/en/install/debian/" hreflang="en" href="https://linuxfr.org/redirect/101315">Installer Cozy sur son serveur (debian et dérivés)</a></li><li>lien nᵒ 4 : <a title="https://blog.cozycloud.cc/post/2018/01/25/Lancement-public-de-Cozy" hreflang="fr" href="https://linuxfr.org/redirect/101316">Jour 1 : Cozy Cloud lance Cozy</a></li><li>lien nᵒ 5 : <a title="https://www.nextinpact.com/news/105762-cozy-cloud-ouvert-a-tous-on-a-teste-plateforme-stockage-et-reprise-en-main-donnees.htm" hreflang="fr" href="https://linuxfr.org/redirect/101317">Next INpact a testé Cozy Cloud, la plate‐forme de stockage et de reprise en main des données</a></li><li>lien nᵒ 6 : <a title="https://techcrunch.com/2018/01/25/cozy-is-building-a-personal-cloud-service-that-respects-your-privacy/" hreflang="en" href="https://linuxfr.org/redirect/101318">[TechCrunch] Cozy is building a personal cloud service that respects your privacy</a></li><li>lien nᵒ 7 : <a title="https://linuxfr.org/news/donnez-votre-avis-sur-la-nouvelle-architecture-de-cozy" hreflang="fr" href="https://linuxfr.org/redirect/101319">[LinuxFr.org] Donnez votre avis sur la nouvelle architecture de Cozy</a></li><li>lien nᵒ 8 : <a title="https://linuxfr.org/news/cozy-cloud-leve-4-millions-d-euros-pour-faire-du-libre" hreflang="fr" href="https://linuxfr.org/redirect/101320">[LinuxFr.org] Cozy Cloud lève 4 millions d’euros (pour faire du Libre)</a></li><li>lien nᵒ 9 : <a title="https://framablog.org/2018/01/26/le-nuage-de-cozy-monte-au-troisieme-etage/" hreflang="fr" href="https://linuxfr.org/redirect/101321">[Framasoft] Le nuage de Cozy monte au troisième étage</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9ambule">Préambule</a></li>
<li><a href="#%C3%80-quoi-%C3%A7a-ressemble">À quoi ça ressemble ?</a></li>
<li><a href="#et-la-suite">Et la suite ?</a></li>
<li>
<a href="#retour-sur-la-nouvelle-architecture">Retour sur la nouvelle architecture</a><ul>
<li><a href="#am%C3%A9liorer-linstallation-pour-les-autoh%C3%A9berg%C3%A9s">Améliorer l’installation pour les auto‐hébergés</a></li>
<li><a href="#avoir-plusieurs-instances-sur-un-seul-serveur-pour-une-famille-par-exemple">Avoir plusieurs instances sur un seul serveur (pour une famille par exemple)</a></li>
<li><a href="#ne-plus-stocker-les-fichiers-dans-couchbd-pour-simplifier-les-sauvegardes-et-savoir-retrouver-les-fichiers-en-cas-de-corruption-de-la-base-couchdb">Ne plus stocker les fichiers dans CouchBD (pour simplifier les sauvegardes et savoir retrouver les fichiers en cas de corruption de la base CouchDB)</a></li>
<li><a href="#partager-des-documents-avec-dautres-utilisateurs">Partager des documents avec d’autres utilisateurs</a></li>
<li><a href="#garder-le-code-libre">Garder le code Libre</a></li>
<li><a href="#chiffrement-des-donn%C3%A9es">Chiffrement des données</a></li>
<li><a href="#pourquoi-red%C3%A9velopper-des-applications">Pourquoi redévelopper des applications ?</a></li>
<li><a href="#passage-de-nodejs-%C3%A0-go">Passage de Node.js à Go</a></li>
<li><a href="#comment-passer-de-cozyv2-%C3%A0-cozyv3">Comment passer de Cozy v2 à Cozy v3 ?</a></li>
<li><a href="#notion-de-groupe">Notion de groupe ?</a></li>
</ul>
</li>
<li><a href="#remerciements">Remerciements</a></li>
</ul><h2 id="préambule">Préambule</h2>
<p>J’utilise parfois « nous » pour décrire le travail de l’équipe Cozy Cloud. Je suis salarié de Cozy Cloud, mais cette dépêche a été rédigée par mes soins, spécialement pour <em>LinuxFr.org</em>, et ne reflète que mon opinion personnelle (pas celle de mon employeur).</p>
<h2 id="À-quoi-ça-ressemble">À quoi ça ressemble ?</h2>
<p>Voici quelques captures d’écran qui permettent de montrer le chemin accompli depuis Cozy v2 en termes d’expérience utilisateur et d’interface utilisateur. Les applications sont moins nombreuses, mais beaucoup mieux pensées et léchées.</p>
<p>Les photos prises depuis votre appareil mobile sont sauvegardées sur votre Cozy. Vous pouvez les afficher, créer des albums et partager ces albums avec vos proches :<br><img src="//img.linuxfr.org/img/68747470733a2f2f636f7a792e696f2f656e2f696d616765732f66656174757265732f636f7a79647269766570686f746f2f70686f746f2d74696d656c696e652d66722e6a7067/photo-timeline-fr.jpg" alt="Cozy Photos" title="Source : https://cozy.io/en/images/features/cozydrivephoto/photo-timeline-fr.jpg"></p>
<p>Le <em>Drive</em> est l’application qui sert à gérer vos fichiers. Il se décline en version Web, mobile et bureau :<br><img src="//img.linuxfr.org/img/68747470733a2f2f636f7a792e696f2f656e2f696d616765732f66656174757265732f636f7a79647269766570686f746f2f64726976652d686f6d652d66722e706e67/drive-home-fr.png" alt="Cozy Drive" title="Source : https://cozy.io/en/images/features/cozydrivephoto/drive-home-fr.png"></p>
<p>L’application <em>Collect</em> sert à configurer la récupération de contrats, de factures et de remboursements de santé depuis différents services tiers. Nous vous encourageons à nous dire <a href="https://framaforms.org/cozy-collect-1494574386">quels seraient les collecteurs qui vous seraient les plus utiles</a>, voire à <a href="https://docs.cozy.io/en/dev/konnector/">développer des collecteurs</a> :<br><img src="//img.linuxfr.org/img/68747470733a2f2f636f7a792e696f2f656e2f696d616765732f66656174757265732f636f7a79636f6c6c6563742f636f6c6c6563742d70617373776f72642d66722e706e67/collect-password-fr.png" alt="Cozy Collect" title="Source : https://cozy.io/en/images/features/cozycollect/collect-password-fr.png"></p>
<p>L’application <em>Banks</em> permet de suivre ses comptes bancaires et de recevoir des alertes sur le solde ou des opérations dépassant un certain montant. Actuellement, l’importation des données se fait via un service commercial, <a href="https://www.linxo.com/">Linxo</a>. Pour le futur, nous sommes en train de mettre en place un moteur de catégorisation bancaire dont le modèle serait construit grâce aux catégorisations manuelles des utilisateurs de Cozy (les retours se feront de manière anonyme et uniquement pour ceux qui se portent volontaires). Et nous surveillons ce que les banques vont proposer pour se mettre en conformité avec les réglementations européennes qui vont s’appliquer dans les mois qui viennent (<a href="https://fr.wikipedia.org/wiki/R%C3%A8glement_g%C3%A9n%C3%A9ral_sur_la_protection_des_donn%C3%A9es" title="Réglement général sur la protection des données">RGPD</a> et <a href="https://fr.wikipedia.org/wiki/Directive_sur_les_services_de_paiement" title="Directive sur les services de paiement">DSP 2</a>).<br><img src="//img.linuxfr.org/img/68747470733a2f2f636f7a792e696f2f656e2f696d616765732f66656174757265732f636f7a7962616e6b732f62616e6b2d616c6c2d6163636f756e74732d626574612d66722e706e67/bank-all-accounts-beta-fr.png" alt="Cozy Bank" title="Source : https://cozy.io/en/images/features/cozybanks/bank-all-accounts-beta-fr.png"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c68332e676f6f676c6575736572636f6e74656e742e636f6d2f435a644b2d50494f6e7a4b4954776e4e4a686470697a58755167454e7158324a79732d384b44314c4a5673722d6d5851764f665159566843497172306b744e524538673d68393030/CZdK-PIOnzKITwnNJhdpizXuQgENqX2Jys-8KD1LJVsr-mXQvOfQYVhCIqr0ktNRE8g=h900" alt="Cozy sur Android" title="Source : https://lh3.googleusercontent.com/CZdK-PIOnzKITwnNJhdpizXuQgENqX2Jys-8KD1LJVsr-mXQvOfQYVhCIqr0ktNRE8g=h900"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6973342d73736c2e6d7a7374617469632e636f6d2f696d6167652f7468756d622f507572706c653131382f76342f65372f31312f61652f65373131616566342d383330392d373930642d323263382d3530643064653537363966392f736f757263652f3437347830772e706e67/474x0w.png" alt="Cozy sur iOS" title="Source : https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/e7/11/ae/e711aef4-8309-790d-22c8-50d0de5769f9/source/474x0w.png"></p>
<p>Les interfaces Web des applications Cozy sont bien évidemment adaptatives (<em>responsive</em> en anglais). Nous proposons également des applications Cordova sur Android et iOS, ce qui permet l’accès à des données du mobile (photos, contacts) pour les sauvegarder sur le Cozy.</p>
<h2 id="et-la-suite">Et la suite ?</h2>
<p>On devait avoir l’authentification à deux facteurs juste à temps pour le lancement, mais ça a pris un petit peu de retard. Ça va arriver bientôt !</p>
<p>Le prochain objectif est d’ouvrir la plate‐forme pour installer d’autres applications. Pour le moment, l’installation et la mise à jour des applications se fait via la ligne de commande. On va ajouter une app’ « Magasin d’applications » pour faire ça quand on n’est pas administrateur de son propre serveur.</p>
<p>Et comme ça serait dommage d’avoir un magasin d’applications un peu vide, on va aussi travailler à le remplir. On va commencer par une application de gestion de ses contacts. Elle existait dans la précédente version de Cozy et elle manque dans la version actuelle.</p>
<p>On va bien sûr ajouter de nouveaux collecteurs pour importer des données depuis plus de services tiers, prendre en compte les nombreux retours des utilisateurs qui découvrent la plate‐forme, travailler pour faciliter l’auto‐hébergement, etc. Le lancement officiel est une étape importante pour nous, et à titre personnel, je suis très fier d’avoir construit cette plate‐forme. Mais on ne va pas se reposer sur nos lauriers, on va continuer nos efforts de manière plus visible au‐dessus de la plate‐forme technique.</p>
<h2 id="retour-sur-la-nouvelle-architecture">Retour sur la nouvelle architecture</h2>
<p>J’avais écrit ici une dépêche intitulée <a href="//linuxfr.org/news/donnez-votre-avis-sur-la-nouvelle-architecture-de-cozy"><em>Donnez votre avis sur la nouvelle architecture de Cozy</em></a>. Vous, lecteurs du site, aviez joué le jeu et les nombreux commentaires avaient permis de mieux comprendre les envies de chacun et d’affiner nos choix techniques. Voici quelques points pris dans ces commentaires, avec l’état d’avancement aujourd’hui :</p>
<h3 id="améliorer-linstallation-pour-les-autohébergés">Améliorer l’installation pour les auto‐hébergés</h3>
<p>Il y a du mieux (plus besoin d’avoir un démon <code>cozy</code> qui tourne en <em>root</em> par exemple) et des choses qui sont plus compliquées qu’avant (DNS et certificats TLS principalement, car on isole maintenant chaque application sur un sous‐domaine pour des raisons de sécurité). C’est un chantier sur lequel on a encore pas mal de boulot !</p>
<h3 id="avoir-plusieurs-instances-sur-un-seul-serveur-pour-une-famille-par-exemple">Avoir plusieurs instances sur un seul serveur (pour une famille par exemple)</h3>
<p>Là, je pense que l’on est bon. On peut maintenant installer une seule fois Cozy sur un serveur et l’utiliser pour plusieurs instances.</p>
<h3 id="ne-plus-stocker-les-fichiers-dans-couchbd-pour-simplifier-les-sauvegardes-et-savoir-retrouver-les-fichiers-en-cas-de-corruption-de-la-base-couchdb">Ne plus stocker les fichiers dans CouchBD (pour simplifier les sauvegardes et savoir retrouver les fichiers en cas de corruption de la base CouchDB)</h3>
<p>Les fichiers ne sont plus stockés dans CouchDB. Sur notre infrastructure, ils sont stockés dans <a href="https://wiki.openstack.org/wiki/Swift">Swift</a>. Pour les auto‐hébergés, ils sont stockés dans un répertoire du disque dur local. Attention, il ne faut pas modifier directement ce répertoire. On aimerait ajouter d’autres modes de stockage, <a href="https://minio.io/">minio</a> en particulier.</p>
<h3 id="partager-des-documents-avec-dautres-utilisateurs">Partager des documents avec d’autres utilisateurs</h3>
<p>On permet le partage par lien : quand vous êtes dans l’interface Web de votre Cozy, il est possible de sélectionner un répertoire ou un album photo et de générer un lien avec un secret que vous pourrez transmettre aux personnes à qui vous voulez permettre d’afficher ce répertoire ou album photo.<br>
Et je planche actuellement sur le partage dit de Cozy à Cozy. Par exemple, on voudrait permettre de partager un répertoire avec d’autres personnes : le répertoire serait présent sur chacune des instances Cozy des personnes qui sont dans le partage et quand une personne modifie un fichier, les modifications sont propagées chez les autres membres du partage (ça ressemble à ce que propose Dropbox ou Google Drive, mais en décentralisé, je me prends bien la tête pour trouver comment faire ;-)). Autre exemple : pouvoir « partager » les écritures d’un compte bancaire (en lecture seule) avec une personne de confiance. Cette autre personne pourrait voir dans son Cozy son compte bancaire et pourrait également consulter le compte de l’autre. C’est particulièrement utile en famille entre les comptes joints, les comptes pour les enfants ou les personnes âgées qui conservent leur autonomie financière, mais dont on pourrait surveiller le compte pour vérifier qu’elles ne se sont pas faites escroquer. Ce type de partage va sûrement beaucoup m’occuper dans les mois qui viennent.</p>
<h3 id="garder-le-code-libre">Garder le code Libre</h3>
<p>Il est toujours possible de s’auto‐héberger et tout le code pour le faire est sous licence libre (licences AGPL et MIT selon les composants). On a un peu de code propriétaire, la glu côté admin/sys pour pouvoir héberger beaucoup d’instances Cozy sur notre infrastructure, les formulaires de création de Cozy, mais ça représente moins de 10 % du code écrit par Cozy Cloud. Le logiciel libre fait partie de notre ADN et ça ne va pas changer.</p>
<h3 id="chiffrement-des-données">Chiffrement des données</h3>
<p>Actuellement, on conseille de chiffrer les disques durs. Les seules données que l’on chiffre dans le Cozy sont les identifiants pour se connecter aux sites externes. Nous avons besoin d’accéder aux données en clair sur le serveur pour fournir les services. Si vous n’avez pas confiance dans nos administrateurs système (et ça peut être tout à fait légitime), je vous conseille soit de vous auto‐héberger, soit de vous tourner vers des administrateurs système en qui vous avez confiance et qui seraient prêts à héberger pour vous des instances Cozy (ça pourrait être des acteurs associatifs comme <a href="https://chatons.org/">les CHATONS</a> ou des acteurs commerciaux).</p>
<h3 id="pourquoi-redévelopper-des-applications">Pourquoi redévelopper des applications ?</h3>
<p>Pour s’auto‐héberger et utiliser des applications existantes, il existe déjà des solutions comme <a href="https://yunohost.org/">YunoHost</a>. Nous ne voyons pas trop quelle valeur nous pourrions apporter en plus sur ce modèle. Cozy vise autre chose : être un domicile numérique, et cela impose de développer des applications qui travaillent sur des données communes et peuvent créer des ponts entre elles. Par exemple, on peut consulter son compte bancaire et cliquer sur une écriture bancaire concernant Trainline pour afficher le PDF de la facture, stocké dans son <em>Drive</em>.</p>
<h3 id="passage-de-nodejs-à-go">Passage de Node.js à Go</h3>
<p>Le code côté serveur a été entièrement réécrit pour cette nouvelle version. Il est maintenant en Go, les versions précédentes étaient en Node.js. De manière très synthétique, nous sommes satisfaits de Go, cela nous aide sur la stabilité et les performances.</p>
<h3 id="comment-passer-de-cozyv2-à-cozyv3">Comment passer de Cozy v2 à Cozy v3 ?</h3>
<p>En rapide, on exporte les données du Cozy v2 avec la dernière version de <em>cozy-monitor</em> (<code>cozy-monitor export cozy.tar.gz</code>), on recopie l’archive TAR sur le nouveau serveur, on crée son instance puis on importe les données (<a href="https://cozy.github.io/cozy-stack/cli/cozy-stack_instances_import.html"><code>cozy-stack import</code></a>). N’hésitez pas à venir sur le canal IRC <code>#cozycloud</code> sur freenode si vous avez besoin d’un coup de main.</p>
<h3 id="notion-de-groupe">Notion de groupe ?</h3>
<p>Cozy est un domicile numérique et nous ne pouvons pas tout faire. Nous ne cherchons pas à concurrencer les <a href="https://fr.wikipedia.org/wiki/Groupware"><em>groupwares</em></a>. <a href="https://nextcloud.com/">Nextcloud</a>, par exemple, est mieux adapté pour les groupes. Ceci dit, nous essayons quand même d’éviter de trop cloisonner et nous souhaitons offrir des fonctionnalités de partage dont j’ai parlé ci‐dessus.</p>
<p>Je vous encourage à donner à nouveau votre avis : posez vos questions et remarques en commentaire, je tâcherais de répondre aux questions. En plus, nous sommes plusieurs de l’équipe à lire le site et à tenir compte des avis qui y sont écrits.</p>
<h2 id="remerciements">Remerciements</h2>
<p>Je vais finir avec une note plus personnelle. J’ai la chance de travailler avec une équipe fantastique chez Cozy Cloud. Ça serait sûrement un peu long de remercier chaque personne de l’équipe une par une (même si le cœur y est), mais je tiens à remercier tout particulièrement Zoé, Joseph et Romain. Ils sont tous les trois dans l’aventure Cozy depuis bien plus longtemps que moi, souvent dans l’ombre, et leur implication n’a pas faibli lorsque l’on s’est lancé dans cette nouvelle version de Cozy. Merci à vous !</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f63646e2e77656c636f6d65746f7468656a756e676c652e636f2f75706c6f6164732f696d6167652f66696c652f373134382f3135303838342f6c617267655f636f7a792d636c6f75642d616e6e6f6e6365735f36323237346435342d666161392d346632662d386532662d3235656564666536613166372e6a7067/large_cozy-cloud-annonces_62274d54-faa9-4f2f-8e2f-25eedfe6a1f7.jpg" alt="L’équipe Cozy Cloud" title="Source : https://cdn.welcometothejungle.co/uploads/image/file/7148/150884/large_cozy-cloud-annonces_62274d54-faa9-4f2f-8e2f-25eedfe6a1f7.jpg"></p></div><div><a href="https://linuxfr.org/news/cozy-votre-domicile-numerique.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113607/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/cozy-votre-domicile-numerique#comments">ouvrir dans le navigateur</a>
</p>
Bruno Michel
Davy Defaud
ZeroHeure
Yves Bourguignon
Olivier HUMBERT
palm123
https://linuxfr.org/nodes/113607/comments.atom
tag:linuxfr.org,2005:News/37797
2017-01-21T23:21:28+01:00
2017-02-03T12:57:13+01:00
Les nouveautés de Glances 2.8
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>Au moment de la lecture de cette dépêche, Glances 2.8 sera disponible à l’installation depuis <a href="https://pypi.python.org/pypi/Glances">Pypi</a>. Nous allons donc faire le tour complet du propriétaire en mettant l’accent sur les nouveautés importantes de cette version.</p></div><ul><li>lien nᵒ 1 : <a title="https://nicolargo.github.io/glances/" hreflang="en" href="https://linuxfr.org/redirect/99145">Site officiel de Glances</a></li><li>lien nᵒ 2 : <a title="https://github.com/nicolargo/glances" hreflang="en" href="https://linuxfr.org/redirect/99146">GitHub Glances</a></li><li>lien nᵒ 3 : <a title="https://github.com/nicolargo/glances/wiki" hreflang="en" href="https://linuxfr.org/redirect/99147">Le Wiki officiel</a></li><li>lien nᵒ 4 : <a title="https://groups.google.com/forum/#!forum/glances-users" hreflang="en" href="https://linuxfr.org/redirect/99148">Le forum utilisateurs</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#aper%C3%A7u-g%C3%A9n%C3%A9ral-de-linterface">Aperçu général de l’interface</a></li>
<li><a href="#nouveau-greffon-pour-superviser-les-processeurs-graphiques-nvidia">Nouveau greffon pour superviser les processeurs graphiques NVIDIA</a></li>
<li><a href="#am%C3%A9lioration-du-greffon-dockers">Amélioration du greffon Dockers</a></li>
<li><a href="#le-greffon-r%C3%A9seau-permet-de-surveiller-la-qualit%C3%A9-du-signal-wifi">Le greffon réseau permet de surveiller la qualité du signal Wi‐Fi</a></li>
<li><a href="#de-nouveaux-modules-dexportation">De nouveaux modules d’exportation</a></li>
<li><a href="#optimisation-de-la-consommation-processeur-de-linterface-web">Optimisation de la consommation processeur de l’interface Web</a></li>
<li><a href="#et-son-lot-dam%C3%A9liorations-et-de-corrections-de-bogues">Et son lot d’améliorations et de corrections de bogues</a></li>
<li><a href="#appel-%C3%A0-contributeurs">Appel à contributeurs</a></li>
</ul><p><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f6d61737465722f646f63732f5f7374617469632f676c616e6365732d726573706f6e736976652d77656264657369676e2e706e67/glances-responsive-webdesign.png" alt="Capture Glances" title="Source : https://raw.githubusercontent.com/nicolargo/glances/master/docs/_static/glances-responsive-webdesign.png"></p>
<h2 id="aperçu-général-de-linterface">Aperçu général de l’interface</h2>
<p>Pour ceux qui ne connaissent pas encore Glances, c’est un logiciel libre multi‐plate‐forme permettant de superviser son système d’exploitation ou un système distant à partir d’une interface en une seule vue — d’où son nom, <em>glance</em> signifiant coup d’œil en anglais. Cette interface est disponible en mode console/terminal ou via une interface Web ou mobile.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f76322e382f646f63732f5f7374617469632f676c616e6365732d73756d6d6172792e706e67/glances-summary.png" alt="Glances 2.8" title="Source : https://raw.githubusercontent.com/nicolargo/glances/v2.8/docs/_static/glances-summary.png"></p>
<p>Les développeurs ne sont pas oubliés, car ils disposent d’interfaces XML/RPC et HTTP/<a href="https://fr.wikipedia.org/wiki/RESTful" title="Définition Wikipédia">RESTful</a> pour récupérer les statistiques système dans d’autres applications.</p>
<p>Enfin, les administrateurs système pourront également exporter ces statistiques à long terme vers tout un tas de formats et de bases de données.</p>
<h2 id="nouveau-greffon-pour-superviser-les-processeurs-graphiques-nvidia">Nouveau greffon pour superviser les processeurs graphiques NVIDIA</h2>
<p>C’est une des plus anciennes demandes d’amélioration de Glances : la possibilité de surveiller les processeurs graphiques. Un nouveau greffon voit donc le jour dans cette version, mais avec certaines limitations. En effet, cette première version du greffon pour processeur graphique permet uniquement de surveiller la consommation processeur et mémoire des processeurs graphiques NVIDIA.</p>
<p>Pourquoi cela ? Parce qu’il n’y a, à ma connaissance, aucune bibliothèque permettant de récupérer de manière transparente les statistiques des processeurs graphiques NVIDIA, AMD et Intel. Un contributeur a donc décidé de prendre le taureau par les cornes en commençant par les processeurs graphiques NVIDIA qui disposaient d’une bibliothèque Python (<em>nvidia-ml-py</em>, à installer sur votre système pour bénéficier du greffon pour Glances).</p>
<ul>
<li><p>Vue en moyenne ou mono‐processeur graphique : <img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f76322e382f646f63732f5f7374617469632f6770752e706e67/gpu.png" alt="GPU" title="Source : https://raw.githubusercontent.com/nicolargo/glances/v2.8/docs/_static/gpu.png"></p></li>
<li><p>Vue multi‐processeur graphique : <img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f76322e382f646f63732f5f7374617469632f7065726770752e706e67/pergpu.png" alt="MEANGPU" title="Source : https://raw.githubusercontent.com/nicolargo/glances/v2.8/docs/_static/pergpu.png"></p></li>
</ul><p>Les prochaines versions de Glances amélioreront ce greffon avec la prise en charge d’autres marques de processeurs graphiques et des statistiques supplémentaires (comme les entrées‐sorties).</p>
<h2 id="amélioration-du-greffon-dockers">Amélioration du greffon Dockers</h2>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f76322e372f646f63732f5f7374617469632f646f636b65722e706e67/docker.png" alt="DOCKER" title="Source : https://raw.githubusercontent.com/nicolargo/glances/v2.7/docs/_static/docker.png"><br>
En plus de la prise en charge de la version 2.0 de l’API Docker, Glances 2.8 permet de fixer des seuils d’alerte de manière globale ou par conteneur. Ainsi, il est possible de superviser la consomation processeur d'un conteneur nommé <em>foo</em> en utilisant la syntaxe suivante dans le fichier de configuration de Glances :</p>
<pre><code>[docker]
# Thresthold for CPU (in %)
foo_cpu_careful=70
foo_cpu_warning=80
foo_cpu_critical=90
</code></pre>
<p>Il est également possible de déclencher une action si un seuil est dépassé :</p>
<pre><code>[docker]
foo_cpu_critical_action=echo {{Image}} {{Id}} {{cpu}} > /tmp/container_{{name}}.alert
</code></pre>
<p>Note : dans l’environnement de Glances, une action est une ligne de commande dans laquelle on peut utiliser certaines variables internes issues de l’API à travers les moustaches <code>{{}}</code>.</p>
<h2 id="le-greffon-réseau-permet-de-surveiller-la-qualité-du-signal-wifi">Le greffon réseau permet de surveiller la qualité du signal Wi‐Fi</h2>
<p>Si votre machine dispose d'une interface Wi‐Fi, ce nouveau greffon est fait pour vous. Il permet en effet de superviser la qualité des signaux Wi‐Fi.</p>
<p>Il s’intègre juste en dessous du greffon réseau :<br><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6e69636f6c6172676f2f676c616e6365732f76322e382f646f63732f5f7374617469632f776966692e706e67/wifi.png" alt="WIFI" title="Source : https://raw.githubusercontent.com/nicolargo/glances/v2.8/docs/_static/wifi.png"></p>
<p>En ce qui concerne le greffon réseau, il permet désormais de fixer des seuils manuellement (via le fichier de configuration) ou automatiquement (en fonction de la vitesse des interfaces réseau).</p>
<h2 id="de-nouveaux-modules-dexportation">De nouveaux modules d’exportation</h2>
<p>ZeroMQ et CouchDB viennent s’ajouter à la liste des cibles disponibles pour le module d’exportation des statistiques.</p>
<p>Pour cette version, cette liste est donc la suivante : CSV, InfluxDB, Cassandra, CouchDB, OpenTSDB, StatsD, ElasticSearch, RabbitMQ/ActiveMQ, ZeroMQ et Riemann.</p>
<h2 id="optimisation-de-la-consommation-processeur-de-linterface-web">Optimisation de la consommation processeur de l’interface Web</h2>
<p>Enfin, il est maintenant possible de définir le nombre maximum de processus à afficher dans l’interface Web. Cela réduit de manière importante la consommation processeur du navigateur faisant tourner l’interface de Glances.</p>
<p>Pour définir le nombre de processus (30 par défaut), il suffit de définir la section suivante dans le fichier de configuration :</p>
<pre><code>[outputs]
# Limit the number of processes to display in the WebUI
max_processes_display=30
</code></pre>
<p>Avec 30 processus, on réduit la consommation de 75 %.</p>
<h2 id="et-son-lot-daméliorations-et-de-corrections-de-bogues">Et son lot d’améliorations et de corrections de bogues</h2>
<blockquote>
<ul>
<li>
<em>Not compatible with the new Docker API 2.0 (Docker 1.13) (issue #1000)</em> ;</li>
<li>
<em>Highlight the top CPU and MEM process consumer (issue #878)</em> ;</li>
<li>
<em>Glances API returns the processes PPID (issue #926)</em> ;</li>
<li>
<em>Configure server cached time from the command line <code>--cached-time</code> (issue #901)</em> ;</li>
<li>
<em>Make the log logger configurable (issue #900)</em> ;</li>
<li>
<em>System uptime in export (issue #890)</em> ;</li>
<li>
<em>Refactor the <code>--disable-*</code> options (issue #948)</em> ;</li>
<li>
<em>PID column too small if <code>kernel.pid_max</code> is > 99999 (issue #959)</em> ;</li>
<li>
<em>Glances RAID plugin Traceback (issue #927)</em> ;</li>
<li>
<em>Default AMP crashes when <code>command</code> given (issue #933)</em> ;</li>
<li>
<em>Default AMP ignores <code>enable</code> setting (issue #932)</em> ;</li>
<li>
<em><code>/proc/interrupts</code> not found in an OpenVZ container (issue #947)</em>.</li>
</ul>
</blockquote>
<h2 id="appel-à-contributeurs">Appel à contributeurs</h2>
<p>Je tiens à remercier personnellement <a href="https://github.com/nicolargo/glances/graphs/contributors">tous les contributeurs</a>.</p>
<p>Nous recherchons des personnes motivées pour faire évoluer le projet : </p>
<ul>
<li>développeur Python confirmé ;</li>
<li>développeur JavaScript maîtrisant AngularJS pour l’interface Web ;</li>
<li>des testeurs, notamment dans les environnements Windows et Mac OS X.</li>
</ul></div><div><a href="https://linuxfr.org/news/les-nouveautes-de-glances-2-8.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/111091/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/les-nouveautes-de-glances-2-8#comments">ouvrir dans le navigateur</a>
</p>
nicolargo
Davy Defaud
Xavier Teyssier
Nils Ratusznik
Pierre Jarillon
Benoît Sibaud
palm123
https://linuxfr.org/nodes/111091/comments.atom
tag:linuxfr.org,2005:News/37554
2016-09-20T17:10:36+02:00
2016-09-30T15:34:36+02:00
CouchDB passe la seconde vitesse
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>CouchDB est une base de données de la famille NoSQL. C’est même l’une des plus anciennes, sortie en 2005. Elle est ensuite devenue un projet Apache en 2008. Elle a pris du retard sur ses concurrents sur de nombreux aspects, mais sa grande force, la réplication entre instances primaires, reste inégalée. <a href="https://pouchdb.com/">Pouchdb</a>, un portage de CouchDB en JavaScript capable de tourner dans les navigateurs, est compatible avec le <a href="http://docs.couchdb.org/en/master/replication/protocol.html">protocole de réplication de CouchDB</a> et la combinaison des deux est très intéressante pour développer des applications Web dites « progressives » (PWA), capables de travailler sans connexion Internet. Il existe d’autres implémentations compatibles avec ce protocole de réplication, dont <a href="http://www.couchbase.com/nosql-databases/couchbase-mobile">Couchbase <em>lite</em></a> pour mobile.</p>
<p>La version 2.0 de CouchDB est attendue depuis plusieurs années et a pris beaucoup de retard. Elle vient enfin de sortir avec de grandes nouveautés, dont la prise en charge du <em>clustering</em>, un nouveau moteur de « requêtage » et une interface d’administration plus moderne.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f636f75636864622e6170616368652e6f72672f696d6167652f6c6f676f4032782e706e67/logo@2x.png" alt="Logo de CouchDB" title="Source : https://couchdb.apache.org/image/logo@2x.png"></p></div><ul><li>lien nᵒ 1 : <a title="https://blog.couchdb.org/2016/09/20/2-0/" hreflang="en" href="https://linuxfr.org/redirect/98178">Annonce de la sortie de CouchDB 2.0</a></li><li>lien nᵒ 2 : <a title="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces99" hreflang="en" href="https://linuxfr.org/redirect/98179">Communiqué de la fondation Apache sur la sortie de CouchDB 2.0</a></li><li>lien nᵒ 3 : <a title="https://couchdb.apache.org/" hreflang="en" href="https://linuxfr.org/redirect/98180">Site officiel de CouchDB</a></li><li>lien nᵒ 4 : <a title="http://www.pocketjavascript.com/blog/2015/11/23/introducing-pokedex-org" hreflang="en" href="https://linuxfr.org/redirect/98181">Pokedex, un exemple de Progressive Web App, utilisant CouchDB</a></li><li>lien nᵒ 5 : <a title="https://linuxfr.org/news/donnez-votre-avis-sur-la-nouvelle-architecture-de-cozy" hreflang="fr" href="https://linuxfr.org/redirect/98182">DLFP : la nouvelle architecture de Cozy Cloud s’appuie sur CouchDB</a></li></ul><div><h3 id="clustering">Clustering</h3>
<p>C’est la grande nouveauté de cette version 2. Il est maintenant possible d’avoir une grappe de serveurs CouchDB et communiquer avec celle‐ci sans avoir à se soucier de quelle instance possède quel document. CouchDB écoute maintenant sur deux ports : sur 5984, c’est toujours ce que l’on avait avec CouchDB 1 et les requêtes envoyées dessus ne concernent que l’instance locale, et sur 5986 pour parler à tout le <em>cluster</em>.</p>
<p>Cette implémentation repose sur <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">Dynamo, le papier écrit par Amazon</a> et répond à trois problématiques :</p>
<ol>
<li>la tolérance aux pannes : si un serveur n’est plus disponible, les bases de données sur cette grappe restent accessibles ;</li>
<li>les performances : comme chaque serveur ne possède qu’une partie des données, il n’a pas besoin d’indexer l’intégralité des données et cela réduit donc sa charge ;</li>
<li>la capacité : il est maintenant possible de stocker des volumes de données qui ne tiennent pas sur un seul serveur.</li>
</ol><h3 id="fauxton-pour-administrer-couchdb">Fauxton pour administrer CouchDB</h3>
<p>L’API de CouchDB pour manipuler les bases de données et les documents à l’intérieur de celles‐ci est en HTTP. L’interface d’administration peut ainsi se résumer à une simple page HTML avec du JavaScript. Anciennement, cette page s’appelait Futon. Une nouvelle version, Fauxton, totalement réécrite est arrivée dans CouchDB 2.0. Elle a un look plus moderne, le code est plus facile à maintenir et elle offre une interface plus simple à utiliser.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f732f73726c7a706f30736f6764303273712f53637265656e73686f74253230323031362d30372d323725323031342e33312e32332e706e67/Screenshot%202016-07-27%2014.31.23.png" alt="Capture d'écran de Fauxton" title="Source : https://dl.dropboxusercontent.com/s/srlzpo0sogd02sq/Screenshot%202016-07-27%2014.31.23.png"></p>
<h3 id="mango-pour-des-requêtes-plus-simples">Mango pour des requêtes plus simples</h3>
<p>Le système d’indexation et « requêtage » de CouchDB 1.0, qui passe par la construction de vues en <em>map/reduce</em> est compliqué à prendre en main pour les nouveaux venus. Il est toujours utilisable dans CouchDB 2.0, mais une nouvelle interface est maintenant disponible pour cela. Elle s’inspire du <code>find()</code> de MongoDB et se nomme Mango.</p>
<h3 id="améliorations-générales-des-performances">Améliorations générales des performances</h3>
<p>Un travail plus général d’amélioration des performances a été mené. Par exemple, les discussions avec l’équipe de PouchDB ont permis d’ajouter une nouvelle méthode à l’API HTTP de CouchDB pour accélérer les réplications. Les processus de <em>compaction</em> ont également été revus : ils sont plus efficaces et les bases de données après <em>compaction</em> sont maintenant réécrites pour optimiser les requêtes suivantes en regroupant certaines données.</p></div><div><a href="https://linuxfr.org/news/couchdb-passe-la-seconde-vitesse.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110075/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/couchdb-passe-la-seconde-vitesse#comments">ouvrir dans le navigateur</a>
</p>
Bruno Michel
Davy Defaud
Xavier Teyssier
Benoît Sibaud
https://linuxfr.org/nodes/110075/comments.atom
tag:linuxfr.org,2005:News/37363
2016-06-07T19:26:30+02:00
2016-06-07T19:26:30+02:00
Synchronisez vos fichiers avec cozy-desktop
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>Cozy Cloud est une plate-forme libre qui vous permet de mieux gérer votre vie numérique en vous réappropriant vos données. Grâce à elle, vous pouvez installer de nombreux services web à usage personnel sur votre propre machine à la maison ou louée chez un hébergeur.</p>
<p><img src="https://img.linuxfr.org/img/687474703a2f2f692e696d6775722e636f6d2f4b575a42714c712e706e67/KWZBqLq.png" alt="Cozy Cloud"></p>
<p>Et maintenant, il est possible de synchroniser vos fichiers entre un ou plusieurs ordinateurs personnels et son nuage Cozy. Le client « desktop » vient de sortir en version beta pour Linux.</p></div><ul><li>lien nᵒ 1 : <a title="https://blog.cozycloud.cc/post/2016/06/03/client-Desktop-Linux" hreflang="fr" href="https://linuxfr.org/redirect/97413">Arrivée du tant attendu client Desktop (Linux)</a></li><li>lien nᵒ 2 : <a title="https://docs.cozy.io/fr/mobile/desktop.html" hreflang="fr" href="https://linuxfr.org/redirect/97414">Installation du client Desktop</a></li><li>lien nᵒ 3 : <a title="https://github.com/cozy-labs/cozy-desktop" hreflang="en" href="https://linuxfr.org/redirect/97415">Code source de cozy-desktop</a></li><li>lien nᵒ 4 : <a title="https://cozy.io/fr/" hreflang="fr" href="https://linuxfr.org/redirect/97416">Cozy Cloud, le site officiel</a></li><li>lien nᵒ 5 : <a title="https://linuxfr.org/news/cozy-cloud-leve-4-millions-d-euros-pour-faire-du-libre" hreflang="fr" href="https://linuxfr.org/redirect/97436">Cozy Cloud lève 4 millions d'euros (pour faire du libre)</a></li></ul><div><h3 id="utilisation-de-cozy-desktop">Utilisation de cozy-desktop</h3>
<p>Un usage important de Cozy Cloud est de pouvoir stocker des fichiers dans son nuage, pour les utiliser depuis n'importe où. Jusqu'alors, Cozy Cloud pouvait importer des factures depuis des services tiers via l'application <a href="https://github.com/cozy-labs/konnectors">konnectors</a>, et l'application Android permettait de sauvegarder les photos prises sur un mobile dans son nuage. Mais il manquait quelque chose pour rendre cet usage vraiment pratique : un client pour ordinateurs personnels.</p>
<p>Cozy-desktop sort en version beta pour Linux. Ce client va automatiquement synchroniser les fichiers entre un répertoire choisi sur votre ordinateur et votre instance Cozy. La synchronisation se fait dans les deux sens. Si un fichier est créé sur votre ordinateur local, il sera copié sur le Cozy et vous pourrez ensuite y accéder depuis le web, via l’application files, ou votre mobile. Si un fichier est ajouté sur votre Cozy (une facture importée par konnectors par exemple), vous pourrez le consulter sur votre ordinateur.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f626c6f672e636f7a79636c6f75642e63632f7075626c69632f323031362f66725f6f6e626f617264696e672e706e67/fr_onboarding.png" alt="Les 4 étapes de l'embarquement" title="Source : https://blog.cozycloud.cc/public/2016/fr_onboarding.png"></p>
<p>La majeure partie du temps, le client tournera en tâche de fond avec juste une <em>tray icon</em>. Il y a néanmoins une interface pour la configuration initiale (ce sont les 4 étapes ci-dessus) et certaines interactions. Le tableau de bord permet ainsi de voir les derniers fichiers synchronisés, de même que l'espace disque utilisé sur le Cozy. Il y a également des onglets Préférences, Compte et Aide, dont les intitulés me semblent suffisants pour comprendre ce dont il s'agit.</p>
<p>Si vous préférez un client en ligne de commande uniquement, vous pouvez installer cozy-desktop via npm, comme <a href="https://github.com/cozy-labs/cozy-desktop/blob/master/README.md#cozy-desktop-beta">indiqué dans le README</a>.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f626c6f672e636f7a79636c6f75642e63632f7075626c69632f323031362f66725f64617368626f6172642e706e67/fr_dashboard.png" alt="Le tableau de bord" title="Source : https://blog.cozycloud.cc/public/2016/fr_dashboard.png"></p>
<h3 id="osx-et-windows">OSX et Windows</h3>
<p>Si vous êtes sous OSX ou Windows, il va falloir patienter encore un peu mais nous ne vous avons pas oublié. Le développement a été pensé pour être multi-plateforme. Toutefois, ce n'est pas magique, il reste un peu de travail à faire pour l'adapter aux différents systèmes d'exploitation.</p>
<p>La version OSX devrait arriver dans les semaines qui viennent. Je suis en train de corriger des bugs dans <a href="https://github.com/paulmillr/chokidar">chokidar</a>, la bibliothèque utilisée pour détecter les changements sur le système de fichiers local. Notamment, chokidar ne remontait pas les bons événements lorsqu'un répertoire était déplacé sous OSX.</p>
<p>Pour Windows, ce sera plus long et ça dépendra des retours que l'on aura.</p>
<h3 id="point-de-vue-technique">Point de vue technique</h3>
<p>L'application cozy-desktop est développée en CoffeeScript et tourne sous <a href="//linuxfr.org/news/node-js-passe-la-sixieme-vitesse">node.js</a>. L'interface est réalisée avec <a href="//linuxfr.org/news/sortie-de-electron-1-0">Electron</a> et <a href="//linuxfr.org/news/a-la-decouverte-d-un-nouveau-langage-elm">Elm</a>.</p>
<p>Pour la synchronisation, nous utilisons une base <a href="https://pouchdb.com/">PouchDB</a> pour garder les méta-données sur les fichiers et répertoires. Elle est alimentée par le CouchDB de l'instance Cozy, via un <a href="https://pouchdb.com/guides/changes.html"><em>changes feed</em></a> et par chokidar pour les changements sur le système de fichiers local (c'est une surcouche à inotify, fsevents et équivalent pour windows).</p>
<p>En cas de conflit (un fichier qui serait modifié à la fois sur le système de fichier local et sur le cozy, quand cozy-desktop n'est pas connecté), cozy-desktop ne va pas écraser une des deux versions du fichier mais la renommer. Ce choix nous a paru être le plus prudent.</p>
<h3 id="pour-finir">Pour finir</h3>
<p>En tant que développeur de cozy-desktop, je suis content de pouvoir enfin montrer mon travail de ces derniers mois. Bien sûr, je ne saurais trop vous conseiller de <strong>faire une sauvegarde</strong> avant de commencer à utiliser cozy-desktop. C'est de toute façon une bonne habitude à prendre.</p>
<p>N'hésitez pas à poser des questions dans les commentaires, j'y répondrai avec plaisir.</p></div><div><a href="https://linuxfr.org/news/synchronisez-vos-fichiers-avec-cozy-desktop.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109197/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/synchronisez-vos-fichiers-avec-cozy-desktop#comments">ouvrir dans le navigateur</a>
</p>
Bruno Michel
ZeroHeure
palm123
https://linuxfr.org/nodes/109197/comments.atom
tag:linuxfr.org,2005:News/36069
2016-02-05T07:15:03+01:00
2016-02-05T11:21:38+01:00
Présentation d’OpenStack
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>OpenStack, vous connaissez ? Virtualisation et nuage/<em>cloud</em>, ça vous dit quelque chose ? Si vous n’êtes pas un expert, vous voulez sans doute en savoir un peu plus. Cet article est fait pour vous.</p>
<p>Nous allons rappeler ce qu’est un <em>cloud</em>, les différents types de <em>clouds</em>, et où se situe OpenStack. Ensuite, nous ferons une présentation d’OpenStack et de ses différents services.</p>
<p>La version d’OpenStack baptisée <em>Kilo</em> est sortie le 30 avril 2015. Elle incluait à cette date un nouveau service : <em>Ironic</em>. Le 16 octobre 2015, ce fut le tour de la version <em>Liberty</em>. D’autres sont à venir, à commencer par <em>Mitaka</em>, annoncé pour le 7 avril 2016. Pour mémoire, la première lettre du nom de version suit l’alphabet latin.</p>
<p>Cet article a pour but de faire une présentation assez rapide d’OpenStack et de servir de référence aux prochains articles, en particulier lors de la sortie de <em>Mitaka</em> en avril.</p>
<p><em>NdM. : Cette dépêche est incomplète, elle a longtemps traîné en rédaction. Elle a cependant le mérite de proposer un rare tour d’horizon. Les modérateurs la publient en comptant sur l’excellence de vos commentaires pour nous raconter les évolutions depuis la version</em> Kilo.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.openstack.org/" hreflang="en" href="https://linuxfr.org/redirect/92883">Openstack le site officiel</a></li><li>lien nᵒ 2 : <a title="http://docs.openstack.org/openstack-ops/content/" hreflang="en" href="https://linuxfr.org/redirect/92884">La documentation officielle</a></li><li>lien nᵒ 3 : <a title="http://linuxfr.org/news/openstack-2013-2-havana-est-sortie" hreflang="fr" href="https://linuxfr.org/redirect/92885">OpenStack : Havana est sortie </a></li><li>lien nᵒ 4 : <a title="http://linuxfr.org/news/tempete-dans-les-nuages-openstack-et-le-bazar-des-api" hreflang="fr" href="https://linuxfr.org/redirect/92894">OpenStack et le bazar des API</a></li><li>lien nᵒ 5 : <a title="https://wiki.openstack.org/wiki/ReleaseNotes/Kilo" hreflang="fr" href="https://linuxfr.org/redirect/93930">Release Notes de Kilo</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#les-diff%C3%A9rents-clouds">Les différents clouds</a><ul>
<li><a href="#questce-que-le-cloud-computing">Qu’est‐ce que le Cloud computing ?</a></li>
<li><a href="#cloud-priv%C3%A9-vs-public">Cloud privé vs public</a></li>
</ul>
</li>
<li>
<a href="#openstack">OpenStack</a><ul>
<li><a href="#pr%C3%A9sentation">Présentation</a></li>
<li><a href="#historique-des-versions">Historique des versions</a></li>
<li><a href="#technologies-communes">Technologies communes</a></li>
<li>
<a href="#les-diff%C3%A9rents-composants">Les différents composants</a><ul>
<li><a href="#nova">Nova</a></li>
<li><a href="#glance">Glance</a></li>
<li><a href="#keystone">Keystone</a></li>
<li><a href="#neutron">Neutron</a></li>
<li><a href="#swift">Swift</a></li>
<li><a href="#cinder">Cinder</a></li>
<li><a href="#ironic">Ironic</a></li>
<li><a href="#horizon">Horizon</a></li>
<li><a href="#heat">Heat</a></li>
<li><a href="#ceilometer">Ceilometer</a></li>
<li><a href="#trove">Trove</a></li>
<li><a href="#sahara">Sahara</a></li>
</ul>
</li>
</ul>
</li>
</ul><h2 id="les-différents-clouds">Les différents clouds</h2>
<h3 id="questce-que-le-cloud-computing">Qu’est‐ce que le Cloud computing ?</h3>
<p>Le <em>Cloud computing</em> est un concept fourre‐tout. C’est le fait d’utiliser de la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, avec certaines caractéristiques comme la disponibilité, l’élasticité, la mutualisation et le paiement à l’usage.</p>
<p>Le plus souvent il s'agit d'un service informatique extérieur à l'entreprise. Cela est donc une façon d'économiser des moyens humains en informaticiens et de les remplacer par un service externe qui peut gérer au besoin une demande importante.</p>
<p>Prenons un exemple pour bien comprendre : le cas d'une suite bureautique. Pour l'entreprise, il y a 2 manières de gérer l'utilisation d'un traitement de texte :</p>
<ul>
<li>Installer sur les postes clients un traitement de texte et payer éventuellement les licences qui vont avec (Microsoft Office 2013, LibreOffice).</li>
<li>Utiliser un traitement de texte via un navigateur web (exemple : Microsoft Office 365, Google Doc, Etherpad instancié sur le Framapad).</li>
</ul><p>La première méthode est moins souple, car l'entreprise paie les licences même si le logiciel n'est pas utilisé ; alors qu'avec la seconde, le paiement est à la demande. Par ailleurs, il n'y a pas la phase d'installation du logiciel qui permet d'économiser du temps. Par contre les données sont externalisées, ce qui peut poser des problèmes de sécurité et de confidentialité.</p>
<p>L'exemple qui vient d'être évoqué est un SaaS : <em>Software as a Service</em>/logiciel en tant que service</p>
<p>Mais il y a différents degrés d'informatique en nuage.</p>
<p>On peut faire l'analogie pour manger une pizza :</p>
<ul>
<li>La méthode "à la maison" : on achète les ingrédients, on les cuisine et on met la table. C'est la méthode traditionnelle. L'acheteur (entreprise ou particulier) contrôle tout et en a les compétences.</li>
<li>La méthode "à emporter puis cuisiner" : on te fournit les ingrédients. C'est à toi de les cuisiner à ta manière et de s'occuper du reste. L'entreprise en tant qu'utilisateur n'a pas à s'occuper des matières premières mais elle a le contrôle du reste. En cloud, c'est IaaS : <em>Infrastructure as a Service</em>/infrastructure en tant que service, avec les compétences afférentes</li>
<li>La méthode "pizza 30 minutes" : on appelle un vendeur de pizza. Il ne reste plus qu'à s'occuper de l'accompagnement et de la table. Dans le nuage, c'est PaaS : <em>Platform as a Service</em>/ plate-forme en tant que service</li>
<li>La méthode "pizzeria" : on entre dans une pizzeria et on n'a rien à prendre en charge (ou presque). En cloud, c'est SaaS : <em>Software as a Service</em>/logiciel en tant que service.</li>
</ul><p>OpenStack est un ensemble de logiciels libres permettant de déployer un cloud orienté IaaS, mais il est de plus en plus possible de faire un PaaS.</p>
<h3 id="cloud-privé-vs-public">Cloud privé vs public</h3>
<p>Le cloud public est un cloud qui permet à l'entreprise d'externaliser ses moyens. Il y a donc moins d'informaticiens à embaucher. L'entreprise doit par contre payer une autre entreprise et perd le contrôle de l'infrastructure et les données.</p>
<p>Exemple IaaS public connu : Amazon EC2, Windows Azure, RackSpace et CloudWatt.</p>
<p>Le cloud privé est un cloud qui permet de ne pas perdre le contrôle de l'infrastructure et des données tout en améliorant la qualité de service. Ce type de cloud est de plus en plus utilisé dans les grandes entreprises. Cela demande des compétences en interne.</p>
<p>Exemple IaaS privé connu : OpenStack, OpenNebula.</p>
<p>Il y a aussi le cloud hybride qui permet d'utiliser les avantages du cloud privé et du cloud public.</p>
<p>Avec un cloud hybride, une possibilité est de mettre les données sensibles et importantes dans le cloud privé et le reste dans le cloud public. Une autre possibilité dans l'optique de réduire ses coûts d'exploitation est de dimensionner son cloud privé pour une charge moyenne et d'utiliser le cloud public afin d'absorber les surcharges ponctuelles.</p>
<h2 id="openstack">OpenStack</h2>
<h3 id="présentation">Présentation</h3>
<p>GNU/Linux est né entre deux projets : le noyau Linux créé par Linus Torvalds et des outils systèmes du projet GNU. De la même manière, l'entreprise Rackspace a créé un service de stockage (Swift) et a besoin d'un système pour la gestion de la virtualisation automatique. Des employés de la NASA créent une solution toute trouvée : Nova. Ainsi, en 2010, OpenStack est né de 2 services : Nova et Swift.</p>
<p>OpenStack est sous licence Apache 2.0, licence de logiciel libre. Elle n'est pas <a href="https://fr.wikipedia.org/wiki/Copyleft" title="Définition Wikipédia">Copyleft</a>.</p>
<h3 id="historique-des-versions">Historique des versions</h3>
<p>Avec un rythme de quatre mois puis de six mois, les versions d'OpenStack sont sorties.</p>
<p>En 2011, le service Nova s'est séparé du service de gestion d'image de machine virtuelle pour créer un nouveau service : Glance.</p>
<p>En avril 2012, un nouveau service apparaît : Horizon. C'est l'interface web qui permet de visualiser les différents services d'OpenStack. Par ailleurs Nova se sépare du service d'identification pour créer un nouveau service : Keystone.</p>
<p>En septembre 2012, la gestion réseau de Nova (nova network) commence à prendre beaucoup trop de place. Un nouveau service apparaît : Quantum. Il sera appelé par la suite Neutron. Par ailleurs, la gestion du stockage bloc de Nova explose et un nouveau service naît : Cinder.</p>
<p>En 2013, deux nouveaux services apparaissent : Heat et Ceilometer. Heat est un service de gestion de l'orchestration. Ceilometer est un service de calcul de consommation de chaque client.</p>
<p>En avril 2014, le service Trove apparaît. C'est un service de gestion d'instance de base de données.</p>
<p>En octobre 2014, le service <a href="https://wiki.openstack.org/wiki/Sahara/Incubation">Sahara</a> apparaît. C'est un service dédié au Big Data.</p>
<h3 id="technologies-communes">Technologies communes</h3>
<p>Tous les services utilisent Python 2.7. Il y a un projet pour <a href="https://wiki.openstack.org/wiki/Python3">porter vers Python 3</a>.</p>
<p>Chaque service utilise une base de données relationnelle. Par défaut, il utilise MySQL mais il est possible d'utiliser une autre base de données. OpenStack utilise comme ORM : <a href="http://fr.wikipedia.org/wiki/SQLAlchemy">SQLAlchemy</a>.</p>
<p>Pour accéder, modifier une ressource, OpenStack utilise l'API REST qui est basée sur HTTP.</p>
<p>Pour la communication entre les services et à l'intérieur des services, OpenStack utilise <a href="http://fr.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol">AMQP</a>. Par défaut, il utilise l'implémentation en <a href="http://fr.wikipedia.org/wiki/Erlang_%28langage%29">Erlang</a> : <a href="http://en.wikipedia.org/wiki/RabbitMQ">RabbitMQ</a>.</p>
<h3 id="les-différents-composants">Les différents composants</h3>
<h4 id="nova">Nova</h4>
<p>Développé à l'origine par la NASA, c'est le cœur d'OpenStack. Il s'occupe principalement de la gestion des hyperviseurs (ordonnanceur et gestion des machines virtuelles) et du contrôle des ressources (CPU, RAM, réseaux et stockages).</p>
<h4 id="glance">Glance</h4>
<p>Glance a été extrait rapidement de Nova pour en faire un composant à entière. Il permet la gestion des images de machine virtuelles (découverte, enregistrement, récupération et états des images).</p>
<h4 id="keystone">Keystone</h4>
<p>Keystone permet la gestion de l'identification. L'utilisation d'un autre composant dépend de Keystone (accréditation).</p>
<h4 id="neutron">Neutron</h4>
<p>À l'origine ce composant s'appelait Quantum, il permet la gestion du réseau dans OpenStack. Il a des fonctionnalités réseaux avancées (tunneling, QoS, Réseaux virtuels et équilibrage de charge, etc.).</p>
<p>Avec Nova, Neutron est l'élément où le développement est le plus important (voir <a href="http://stackalytics.com/?release=kilo&project_type=integrated">les statistiques de stackalystics</a> grâce notamment à l'arrivé de Cisco dans le projet.</p>
<h4 id="swift">Swift</h4>
<p>Ce composant permet la gestion du stockage objet. Il a été développé avant OpenStack par Rackspace. Il est ainsi indépendant d'OpenStack et est considéré comme le composant le plus stable. Il peut s'utiliser comme frontend avec le composant Glance.</p>
<p>Le stockage objet est une notion bien différente d'un stockage classique qu'on connaît sur les ordinateurs de bureau. Il n'y a pas de notion de montage de partition par exemple. Mais l'avantage principale de ce type de stockage est la disponibilité, la tolérance aux pannes et un agrandissement du stockage à l'infini. En contre-partie, il est considéré moins performant et beaucoup plus compliqué à paramétrer qu'un stockage classique. Un concurrent à Swift que vous connaissez certainement est Ceph.</p>
<h4 id="cinder">Cinder</h4>
<p>Ce composant permet la gestion du stockage de type bloc.</p>
<h4 id="ironic">Ironic</h4>
<p>Ironic est un nouveau composant du projet OpenStack. Il permet la gestion du Bare Metal c'est à dire des véritables ordinateurs et non des machines virtuelles. Il s'occupe ainsi le démarrage et l'extinction des ordinateurs. Il va utiliser des technologies comme <a href="https://fr.wikipedia.org/wiki/Preboot_Execution_Environment">PXE</a>, <a href="https://fr.wikipedia.org/wiki/Trivial_File_Transfer_Protocol">TFTP</a> ou <a href="https://fr.wikipedia.org/wiki/Intelligent_Platform_Management_Interface">IPMI</a> par exemple.</p>
<h4 id="horizon">Horizon</h4>
<p>Horizon est une interface web pour la gestion d'OpenStack. Il utilise comme framework Django. Il permet ainsi de visualiser les différents composants d'OpenStack et d'agir dessus.</p>
<h4 id="heat">Heat</h4>
<p>Heat est le composant d'orchestration d'OpenStack. Il permet par exemple de demander à Nova de démarrer une machine virtuelle supplémentaire en cas de charge importante de façon automatique.</p>
<h4 id="ceilometer">Ceilometer</h4>
<p>Ceilometer est le composant de facturation d'OpenStack. Il permet de calculer la consommation (CPU, RAM, données, etc) de chaque client (utile pour créer un cloud public)</p>
<h4 id="trove">Trove</h4>
<p>Trove est le composant de provisionnement de bases de données d'OpenStack. Il prend en charge MySQL, PostgreSQL, MongoDB. Depuis kilo, il prend par ailleurs en charge Vertica et Vertica Cluster, DB2 et CouchDB. </p>
<h4 id="sahara">Sahara</h4>
<p>Sahara est le composant pour le Big Data d'OpenStack. Il permet d'utiliser Hadoop avec OpenStack.</p></div><div><a href="https://linuxfr.org/news/presentation-d-openstack.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104572/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/presentation-d-openstack#comments">ouvrir dans le navigateur</a>
</p>
Jarvis
Pierre Jarillon
Benoît Sibaud
palm123
BAud
Davy Defaud
ZeroHeure
reno
Anonyme
Katyucha
Xavier Teyssier
Nÿco
Emmanuel de Beauvoir
Nicolas Boulay
err404
https://linuxfr.org/nodes/104572/comments.atom
tag:linuxfr.org,2005:News/36368
2015-06-21T21:57:30+02:00
2015-06-25T21:29:54+02:00
Sortie de Mageia 5, la magie continue !
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>Mageia est un système d’exploitation libre basé sur GNU/Linux, et porté en tant que projet communautaire par l’association loi 1901 <a href="https://www.mageia.org/fr/about/constitution/">Mageia.Org</a>, cette dernière étant constituée de contributeurs élus.</p>
<p>Le cinquième tour de Mageia est sortie le <strong>vendredi 19 juin 2015</strong>, proposant les dernières évolutions techniques, de nouvelles versions des bureaux et logiciels, tout en préservant la stabilité d’usage, et en conservant ses outils spécifiques de contrôle du système. Chaque version de Mageia est supportée 18 mois. Les mises à niveau entre versions sont supportées et aisées. </p>
<p>Mageia a démarré en septembre 2010 comme un <a href="//linuxfr.org/news/mandriva-linux-et-apr%C3%A8s-mageia">fork de Mandriva Linux</a>.</p>
<p>Elle a réuni des centaines de passionnés et plusieurs sociétés à travers le monde, qui coproduisent l’infrastructure, la distribution Mageia elle-même, sa documentation, sa diffusion et son assistance, à l’aide de logiciels libres.</p>
<p>Depuis son lancement, elle a publié quatre versions majeures stables en <a href="//linuxfr.org/news/sortie-de-mageia-1">juin 2011</a>, <a href="//linuxfr.org/news/la-magie-est-de-nouveau-la-mageia-2-est-disponible">mai 2012</a>, <a href="//linuxfr.org/news/sortie-de-mageia-3">mai 2013</a> et <a href="//linuxfr.org/news/sortie-de-la-mageia-4">février 2014</a>.</p>
<p>Mageia est et reste référencée parmi les dix distributions les plus consultées sur <a href="http://distrowatch.com/">Distrowatch</a>.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.mageia.org/fr/downloads/" hreflang="fr" href="https://linuxfr.org/redirect/93868">Télécharger</a></li><li>lien nᵒ 2 : <a title="http://www.mageia.org/fr/contribute/" hreflang="fr" href="https://linuxfr.org/redirect/93872">Contribuer</a></li><li>lien nᵒ 3 : <a title="http://blog.mageia.org/fr/" hreflang="fr" href="https://linuxfr.org/redirect/93875">Blog Officiel</a></li><li>lien nᵒ 4 : <a title="https://doc.mageia.org/mcc/4/fr/content/index.html" hreflang="fr" href="https://linuxfr.org/redirect/94021">Documentation du Centre de Contrôle</a></li><li>lien nᵒ 5 : <a title="https://doc.mageia.org/installer/4/fr/content/index.html" hreflang="fr" href="https://linuxfr.org/redirect/94022">Documentation d’installation</a></li><li>lien nᵒ 6 : <a title="http://www.mageialinux-online.org/" hreflang="fr" href="https://linuxfr.org/redirect/94102">Communauté francophone de Mageia (MLO)</a></li><li>lien nᵒ 7 : <a title="https://wiki.mageia.org/en/Mageia_5_Release_Notes" hreflang="en" href="https://linuxfr.org/redirect/94231">Mageia 5 Release Notes</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#quoi-de-neuf">Quoi de neuf ?</a><ul>
<li>
<a href="#base-du-syst%C3%A8me">Base du système</a><ul>
<li><a href="#architectures">Architectures</a></li>
<li><a href="#bios--efi-amor%C3%A7age">BIOS & EFI, amorçage</a></li>
<li><a href="#noyau-linux">Noyau Linux</a></li>
<li><a href="#nouveaux-pilotes-nvidia">Nouveaux pilotes NVIDIA</a></li>
<li><a href="#partitions--syst%C3%A8mes-de-fichiers">Partitions & systèmes de fichiers</a></li>
<li><a href="#syst%C3%A8me-dinitialisation">Système d’initialisation</a></li>
</ul>
</li>
<li>
<a href="#rpm-urpm--gestion-de-paquets">RPM, URPM & Gestion de paquets</a><ul>
<li><a href="#nouvelle-gestion-des-suggestions">Nouvelle gestion des suggestions</a></li>
<li><a href="#nouveau-g%C3%A9n%C3%A9rateur-de-d%C3%A9pendances">Nouveau générateur de dépendances</a></li>
<li><a href="#urpm">Urpm</a></li>
</ul>
</li>
<li>
<a href="#traduction--documentations">Traduction & Documentations</a><ul>
<li><a href="#localisation-l10n--internationalisation-i18n">Localisation (l10n) / Internationalisation (i18n)</a></li>
<li><a href="#documentation-officielle">Documentation officielle</a></li>
</ul>
</li>
<li>
<a href="#bureaux--environnements-graphiques">Bureaux & Environnements graphiques</a><ul>
<li><a href="#x-window-system-x11">X Window System (X11)</a></li>
<li><a href="#kde-sc">KDE SC</a></li>
<li><a href="#kf5">KF5</a></li>
<li><a href="#gnome">GNOME</a></li>
<li><a href="#lxde">LXDE</a></li>
<li><a href="#xfce">XFCE</a></li>
<li><a href="#lxqt-rempla%C3%A7ant-razorqt">LXQt (remplaçant RazorQt)</a></li>
<li><a href="#mate">Mate</a></li>
<li><a href="#cinnamon">Cinnamon</a></li>
<li><a href="#enlightenment">Enlightenment</a></li>
<li><a href="#gestionnaires-l%C3%A9gers-de-fen%C3%AAtres">Gestionnaires légers de fenêtres</a></li>
<li><a href="#applications-bureautiques">Applications bureautiques</a></li>
<li><a href="#navigateur-internet--apps-web">Navigateur internet & apps web</a></li>
</ul>
</li>
<li><a href="#paquets-obsol%C3%A8tes">Paquets obsolètes</a></li>
<li><a href="#probl%C3%A8mes-connus-et-rapports-de-bogues">Problèmes connus et rapports de bogues</a></li>
</ul>
</li>
<li>
<a href="#valeurs-s%C3%BBres--stabilit%C3%A9">Valeurs sûres & Stabilité</a><ul>
<li><a href="#d%C3%A9p%C3%B4ts-en-ligne-de-mageia">Dépôts en ligne de Mageia</a></li>
<li>
<a href="#centre-de-contr%C3%B4le-mageia">Centre de Contrôle Mageia</a><ul>
<li><a href="#utilisation">Utilisation</a></li>
<li><a href="#gestion-des-logiciels">Gestion des logiciels</a></li>
<li><a href="#utilisation-de-drakrpm">Utilisation de Drakrpm</a></li>
<li><a href="#maintenir-%C3%A0-jour">Maintenir à jour</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#installation">Installation</a><ul>
<li><a href="#media-dinstallation"><em>Media</em> d’installation</a></li>
<li><a href="#media-live"><em>Media</em> Live</a></li>
<li><a href="#installation-par-le-r%C3%A9seau-filaire">Installation par le réseau filaire</a></li>
</ul>
</li>
<li>
<a href="#mise-%C3%A0-niveau-depuis-mageia-4">Mise à niveau depuis Mageia 4</a><ul>
<li><a href="#avec-les-media-cd--dvd">Avec les <em>media</em> CD & DVD</a></li>
<li><a href="#avec-internet">Avec Internet</a></li>
<li><a href="#en-graphique">En graphique</a></li>
<li><a href="#en-ligne-de-commande">En ligne de commande</a></li>
</ul>
</li>
<li><a href="#mageia-cest-vous">Mageia c’est vous !!</a></li>
</ul><p><img src="https://img.linuxfr.org/img/687474703a2f2f7777772e6d61676569612e6f72672f672f6d656469612f6c6f676f2f6d61676569612d323031332e706e67/mageia-2013.png" alt="logo mageia"></p>
<h2 id="quoi-de-neuf">Quoi de neuf ?</h2>
<h3 id="base-du-système">Base du système</h3>
<h4 id="architectures">Architectures</h4>
<p>Le code non utilisé gérant les architectures Alpha/IA64/PPC/SPARC a été retiré. Mageia se concentre sur l’architecture Intel, en 64 bits, et continue de fournir des compilations pour la version 32bits.</p>
<h4 id="bios--efi-amorçage">BIOS & EFI, amorçage</h4>
<p>L’intégration de la gestion des BIOS EFI est opérationnelle via les <em>media</em> Live64 ou DVD64. L’intégration a été semée d’embûches, retardant la sortie de cette version.</p>
<p>Grub2 (qui est optionnel) fonctionne mieux maintenant, et détecte les autres systèmes d’exploitation afin de les ajouter.</p>
<h4 id="noyau-linux">Noyau Linux</h4>
<p>Mageia 5 embarque le noyau Linux 3.19 qui dispose dans cette version du support du DMA-BUF et de la gestion "fences" (nécessaire pour une bonne prise en charge d’<a href="http://fr.wikipedia.org/wiki/Optimus_%28NVIDIA%29">Optimus</a> & powerplay).</p>
<p>Tout le matériel géré par ce noyau est fonctionnel et utilisable, notamment côté portables Toshiba. De gros progrès ont été reportés, ainsi que pour les écrans tactiles utilisant <em>atmel_mxt_ts</em>.</p>
<p>Les tablettes Wacom et les pavés tactiles Synaptics fonctionnent maintenant mieux au cours de l’installation (<a href="https://bugs.mageia.org/show_bug.cgi?id=11524">bogue 11524</a>).</p>
<h4 id="nouveaux-pilotes-nvidia">Nouveaux pilotes NVIDIA</h4>
<p>NVIDIA a abandonné la prise en charge pour son pilote le plus récent de la gamme suivante de puces : GeForce 8xxx, 9xxx et 100 à 415. En conséquence, un nouveau paquet NVIDIA a été créé pour ces cartes, maintenant appelé nvidia340.</p>
<p>L’intégration pour ces cartes a été ajoutée à drakx11/XFdrake permettant une détection automatique du pilote approprié à votre matériel. De plus, si vous réalisez une mise à niveau, la configuration X.Org sera automatiquement ajustée par le service harddrake au premier démarrage.</p>
<h4 id="partitions--systèmes-de-fichiers">Partitions & systèmes de fichiers</h4>
<p>Le partitionnement GPT est maintenant utilisé par défaut, au lieu du disque complet LVM pour les disques supérieurs à 4 To.</p>
<p>Btrfs est désormais pris en charge comme système de fichiers (mais ext4 reste celui par défaut). En le sélectionnant pour la partition <code>/boot</code> (ou <code>/</code> sans partition boot séparée), Grub2 sera automatiquement sélectionné et configuré.</p>
<h4 id="système-dinitialisation">Système d’initialisation</h4>
<p>Systemd est fourni dans sa version <a href="http://lists.freedesktop.org/archives/systemd-devel/2014-October/024662.html">217</a> qui signe l’abandon des derniers outils sysvinit historiques.</p>
<h3 id="rpm-urpm--gestion-de-paquets">RPM, URPM & Gestion de paquets</h3>
<p>RPM a été mis à niveau en version <a href="http://rpm.org/wiki/Releases/4.12.0">4.12.0.1</a>. </p>
<h4 id="nouvelle-gestion-des-suggestions">Nouvelle gestion des suggestions</h4>
<p>RPM apporte maintenant une prise en charge officielle des paquets suggérés, qui diffère de la mise en œuvre précédente. Les paquets utilisent dorénavant la nouvelle balise <em>Recommends</em> au lieu de l’ancienne balise <em>Suggests</em>. Enfin, le format des fichiers de synthèse dans les <em>media</em> a été légèrement modifié.</p>
<h4 id="nouveau-générateur-de-dépendances">Nouveau générateur de dépendances</h4>
<p>Pendant quelques années, RPM a pris en charge deux façons de générer les dépendances lors de la construction de paquets :</p>
<ul>
<li>l’ancienne, dite générateurs <em>externes</em>
</li>
<li>la nouvelle, dite générateurs <em>internes</em> </li>
</ul><p>La plupart des distributions ont basculé sur les nouveaux générateurs <em>internes</em>, mais Mageia utilisait toujours les anciens générateurs <em>externes</em>. La version 5 se met à la page avec de nombreux avantages à la clé comme :</p>
<ul>
<li>La construction des paquets est plus rapide</li>
<li>La compatibilité des fichiers .spec avec les technologies Fedora (& Suse) s'en trouve améliorée</li>
<li>Les dépendances d’OCaml et d’autres technologies sont automatiques</li>
</ul><p>Pour de plus amples explications, vous pouvez lire :</p>
<ul>
<li>
<a href="http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator">RPM Dependency Generator</a> ;</li>
<li>
<a href="http://laiskiainen.org/blog/?p=35">A Tale of Three Dependency Generators</a>;</li>
<li>
<a href="http://rpm.org/wiki/Releases/4.9.0">RPM 4.9.0 Release Notes</a> .</li>
</ul><p>Le nouveau comportement a aussi demandé une <a href="http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering">modification du mécanisme d’exclusion de dépendances</a>. </p>
<h4 id="urpm">Urpm</h4>
<p>Une limite codée en dur, empêchant la mise à jour de mga4 vers mga5 en raison de certains paquets ayant une liste longue de plus de 64 000 caractères, a été corrigée.</p>
<p>Gurpmi va maintenant exécuter drakbug lorsqu’il se bloque ou rencontre des erreurs de segmentation, afin d’obtenir des rapports de bogue plus explicites.</p>
<p>Les options urpmi inhérentes aux dépendances ont été renommées (<code>--no-suggests</code> devient <code>--no-recommends</code>) Les utilisateurs ont donc toujours à leur convenance cette possibilité de n’installer que le strict minimum, la distribution s’efforçant de réduire les dépendances nécessaires.</p>
<h3 id="traduction--documentations">Traduction & Documentations</h3>
<h4 id="localisation-l10n--internationalisation-i18n">Localisation (l10n) / Internationalisation (i18n)</h4>
<p>Firefox et Thunderbird ont été modifiés pour installer automatiquement les bons paquets de langue <code>-l10n-xx</code> selon le paquet de langue installé <code>locales-xx</code>. Si plusieurs paquets de langues <code>locales-xx</code> sont installés, le bon paquet devrait être sélectionné suivant le langage principal configuré pour le système. </p>
<p>Le paquet <code>man-pages-de</code> pour l’allemand a été corrigé : il contient maintenant plus de 530 pages de manuel au lieu de 0 comme précédemment (Merci à Mario Blaettermann pour le rapport et la correction de bogue). </p>
<h4 id="documentation-officielle">Documentation officielle</h4>
<p>Tous les paquets <code>mageia-doc-installer-*</code> et <code>mageia-doc-mcc-*</code> localisés ont été fignolés pour utiliser la capture d’écran correspondante à la langue du système.</p>
<p>Les textes d’aide en ligne pour le programme d’installation traditionnel (non-Live) sont maintenant disponibles dans plus de 20 langues. </p>
<p>Les textes d’aide pour les boutons d’aide dans le Centre de Contrôle Mageia <code>mageia-doc-mcc*</code> sont maintenant disponibles en plus de 15 langues. </p>
<h3 id="bureaux--environnements-graphiques">Bureaux & Environnements graphiques</h3>
<p>L’assistant <em>MageiaWelcome</em> démarre automatiquement dans la langue de l'utilisateur au lancement d’un bureau pour aider à configurer et à utiliser Mageia permettant d’installer les dernières mises à jour, les codecs audios/vidéos et plein d’autres bonnes choses…</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d616765696177656c636f6d65312e706e67/mageiawelcome1.png" alt="MageiaWelcome" title="Source : http://www.mageialinux-online.org/upload/mageiawelcome1.png"><br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d616765696177656c636f6d65322e706e67/mageiawelcome2.png" alt="MageiaWelcome2" title="Source : http://www.mageialinux-online.org/upload/mageiawelcome2.png"><br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d616765696177656c636f6d65332e706e67/mageiawelcome3.png" alt="MageiaWelcome3" title="Source : http://www.mageialinux-online.org/upload/mageiawelcome3.png"><br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d616765696177656c636f6d65342e706e67/mageiawelcome4.png" alt="MageiaWelcome4" title="Source : http://www.mageialinux-online.org/upload/mageiawelcome4.png"><br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d616765696177656c636f6d65352e706e67/mageiawelcome5.png" alt="MageiaWelcome5" title="Source : http://www.mageialinux-online.org/upload/mageiawelcome5.png"></p>
<h4 id="x-window-system-x11">X Window System (X11)</h4>
<p>Mageia 5 embarque X.Org 1.16.4 </p>
<h4 id="kde-sc">KDE SC</h4>
<p>KDE SC 4.14 est fourni.<br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6b64655f64353866362e706e67/kde_d58f6.png" alt="KDE" title="Source : http://www.mageialinux-online.org/upload/kde_d58f6.png"><br>
KDE 4.14 est dédié à la mémoire de Volker Lanz. Il fournit une apparence, un ressenti et des fonctionnalités familières avec la stabilité solide comme le roc des dernières versions à support long terme de l'environnement de bureau Plasma (4.11.12) et des applications du dernier KDE SC (4.14).</p>
<p>La couche KDE Telepathy offre des fonctionnalités comme le chiffrement Off-the-Record (OTR) pour la messagerie instantanée, la prise en charge de nombreux protocoles et un jeu d'éléments graphiques pour l’environnement Plasma. Les applications utilisant la couche multimédia sont maintenant basées sur la version 1.0 de GStreamer, permettant une réduction notable des dépendances.</p>
<p>Mageia accorde un soin particulier à ce bureau.</p>
<h4 id="kf5">KF5</h4>
<p>Plasma 5.1 & KDE <a href="https://www.kde.org/info/kde-frameworks-5.0.0.php">Frameworks 5 (en)</a> en version 5.5. est également de la partie. Il est installable uniquement avec les medias en ligne.</p>
<h4 id="gnome">GNOME</h4>
<p>GNOME 3.14 est fourni.<br>
Voir <a href="//linuxfr.org/news/gnome-3-14-rebat-les-cartes">GNOME 3.14 rebat les cartes</a></p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d6761355f36346269745f676e6f6d652e706e67/mga5_64bit_gnome.png" alt="Mageia 5 GNOME 3.14" title="Source : http://www.mageialinux-online.org/upload/mga5_64bit_gnome.png"></p>
<p>Nous utilisons maintenant le thème standard Adwaita au lieu de Oxygen-gtk.</p>
<h4 id="lxde">LXDE</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6c7864652e706e67/lxde.png" alt="lxde" title="Source : http://www.mageialinux-online.org/upload/lxde.png"><br>
LXDE est disponible en version 0.99. Cet environnement peut être installé à partir du DVD (installateur classique).</p>
<h4 id="xfce">XFCE</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f786663652e706e67/xfce.png" alt="xfce" title="Source : http://www.mageialinux-online.org/upload/xfce.png"><br>
Cet environnement peut être installé dans sa dernière version 4.12.1 à partir du DVD (installateur classique) ou du DVD double architecture.<br><a href="//linuxfr.org/news/xfce-4-12-est-la">Xfce 4.12 est là !</a></p>
<h4 id="lxqt-remplaçant-razorqt">LXQt (remplaçant RazorQt)</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6c7871742e706e67/lxqt.png" alt="lxqt" title="Source : http://www.mageialinux-online.org/upload/lxqt.png"><br>
LXQt en version 0.9.0 est le successeur de RazorQt. Il le remplace pendant la mise à niveau depuis Mageia 4. Pour plus d’information, vérifiez également l’<a href="https://wiki.mageia.org/en/Mageia_5_Errata#LXQt_.26_RazorQt">Errata</a>. Il est installable uniquement avec les <em>media</em> en ligne.</p>
<h4 id="mate">Mate</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f6d6174652e706e67/mate.png" alt="mate" title="Source : http://www.mageialinux-online.org/upload/mate.png"><br>
Cet environnement peut être installé en version 1.8 à partir du DVD (installateur classique).</p>
<h4 id="cinnamon">Cinnamon</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f63696e6e616d6f6e2e706e67/cinnamon.png" alt="cinnamon" title="Source : http://www.mageialinux-online.org/upload/cinnamon.png">Cet environnement peut être installé en version 2.4.5 à partir du DVD (installateur classique).</p>
<h4 id="enlightenment">Enlightenment</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f656e6c69676874656e6d656e742e706e67/enlightenment.png" alt="Enlightenment" title="Source : http://www.mageialinux-online.org/upload/enlightenment.png"><br>
Cet environnement est livré dans sa version E18 basée sur les bibliothèques Enlightenment Foundation.</p>
<h4 id="gestionnaires-légers-de-fenêtres">Gestionnaires légers de fenêtres</h4>
<p>Mageia 5 fournit aussi une multitude de gestionnaires de fenêtres petits et efficaces comme : afterstep, awesome, dwm, fluxbox, fvwm2, fvwm-crystal, i3, icewm, jwm, lightdm, matchbox, openbox, pekwm, sugar, swm, ou windowmaker. </p>
<h4 id="applications-bureautiques">Applications bureautiques</h4>
<ul>
<li>LibreOffice a été mis à jour en <a href="https://wiki.documentfoundation.org/ReleaseNotes/4.4/fr">version 4.4</a>
</li>
<li>Calligra en 2.8.7</li>
<li>Abiword en 3.0.0</li>
<li>Gnumeric en 1.12.20</li>
</ul><h4 id="navigateur-internet--apps-web">Navigateur internet & apps web</h4>
<p>Firefox et Thunderbird sont dans leurs dernières versions ESR.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6d61676569616c696e75782d6f6e6c696e652e6f72672f75706c6f61642f636170747572655f64755f323031355f30365f32315f30315f35375f30302e706e67/capture_du_2015_06_21_01_57_00.png" alt="Firefox 31.6 ESR" title="Source : http://www.mageialinux-online.org/upload/capture_du_2015_06_21_01_57_00.png"></p>
<p>Dans les dépôts on trouve facilement chaussure à son pied : <a href="http://fr.wikipedia.org/wiki/Transmission_%28logiciel%29">Transmission</a>, <a href="http://fr.wikipedia.org/wiki/Deluge_%28logiciel%29">Deluge</a>, <a href="http://fr.wikipedia.org/wiki/QBittorrent">qBittorrent</a>, <a href="http://fr.wikipedia.org/wiki/KTorrent">KTorrent</a>…</p>
<ul>
<li>Les identifiants d’utilisateurs sont maintenant créés avec un UID à partir de 1000 au lieu de 500 auparavant, puisque c’est le choix de la majorité des nouvelles distributions ;</li>
<li>
<a href="https://handbrake.fr/features.php">Handbrake</a>, un convertisseur vidéo libre, a finalement été ajouté à nouveau dans Mageia. C’est maintenant possible car il n’inclut plus les encodeurs faac et fdk-aac. Il prend en charge l’encodage x265 ;</li>
<li>Le convertisseur vidéo <a href="http://www.linuxrising.org/">Transmageddon</a> prend en charge l’<a href="http://fr.wikipedia.org%C2%A0;/wiki/Video_Acceleration_API">accélération matérielle VAAPI</a>. </li>
<li>
<a href="http://oferkv.github.io/phototonic/">Phototonic</a> un lecteur et organiseur d’images, rapide, léger et à l'aspect Qt/C++ a été ajouté.</li>
<li>freshplayerplugin a été ajouté - c’est une surcouche qui permet à Firefox d’utiliser la dernière extension du lecteur flash pepperflash, à télécharger manuellement car elle vient seulement avec Google Chrome et Mageia ne peut pas l’embarquer par défaut. Pour plus de détails voir <a href="https://forums.mageia.org/en/viewtopic.php?f=41&t=8568">ce sujet de forum</a> (en anglais), qui offre un script qui télécharge automatiquement la dernière version de l’extension pepperflash (c’est nécessaire seulement si vous utilisez Firefox sans installer Google Chrome) ;</li>
<li>Le paquet mailcap a été complétement mis à jour et synchronisé avec Fedora ;</li>
<li>Radio amateur - Les ajouts à la sélection de logiciels radio dans cette version sont : <a href="http://sourceforge.net/projects/xdxclusterclient/">xdx</a>, <a href="http://freedv.org/tiki-index.php">freedv</a>, <a href="http://chirp.danplanet.com/projects/chirp/wiki/Home">chirp</a> et <a href="http://www.qsl.net/kd2bd/splat.html">splat</a> ;</li>
<li>SDR <a href="http://gqrx.dk/">gqrx</a> a été ajouté pour compléter <a href="http://fr.wikipedia.org/wiki/GNU_Radio">Gnu Radio</a> et offre un accès facile au monde des logiciels Radio. Prise en charge incluse d’une vaste gamme de matériels SDR ;</li>
<li>Grâce à Juan Luis Baptiste, les images officielles de docker pour Mageia 3 et 4 sont maintenant disponibles sur le site officiel de docker. Pour plus de détails voir <a href="https://ml.mageia.org/wwsympa-wrapper.fcgi/arc/dev/2014-10/msg00196.html">ce poste</a> sur la liste de diffusion des développeurs Mageia. Docker et Docker Registry sont aussi empaquetés pour Mageia 5, ce qui vous permet d’utiliser et de gérer vos conteneurs.</li>
</ul><h3 id="paquets-obsolètes">Paquets obsolètes</h3>
<ul>
<li>postgresql9.0, postgresql9.1 et postgresql9.2 ont été abandonnés ; Mageia 5 fournit postgresql9.3 et postgresql9.4. Si vous utilisez l’un des anciens paquets sur Mageia 4, assurez-vous de sauvegarder vos bases de données avant la mise à niveau, de sorte que vous puissiez les restaurer une fois votre système à jour ;</li>
<li>Les paquets gwibber et couchdb ont été abandonnés, ils n’étaient pas maintenus et inutilisables. le <a href="https://blogs.gnome.org/kenvandine/">service GNOME</a> peut être un bon remplacement pour gwibber ;</li>
<li>Openstack a été abandonné car il n’était pas maintenu et contenait de nombreux problèmes de sécurité non résolus ;</li>
<li>ruby-rails a été abandonné car il n’était pas maintenu ;</li>
<li>wings3d a été abandonné car il ne fonctionne pas sous Mageia 5 et les paquets Erlang nécessaires sont manquants ;</li>
<li>zarafa a été abandonné par manque de retour sur les problèmes de sécurité (<a href="https://bugs.mageia.org/show_bug.cgi?id=14993">Voir bug 14993</a>) ;</li>
<li>Les bibliothèques C standard inutilisées ont été abandonnées : musl, klibc, uClibc (uniquement glibc & dietlibc sont maintenant fournies). </li>
</ul><h3 id="problèmes-connus-et-rapports-de-bogues">Problèmes connus et rapports de bogues</h3>
<p>Vous pouvez utiliser <a href="https://bugs.mageia.org/">notre bugzilla</a>, mais s’il vous plaît, consultez les <a href="https://wiki.mageia.org/en/Mageia_5_Errata">Errata</a> avant de signaler un bug. Si vous n’avez pas encore de compte Mageia, vous pouvez en créer un à l'adresse <a href="https://identity.mageia.org/">https://identity.mageia.org/</a>. Si vous ne savez pas comment rapporter un bogue, <a href="https://wiki.mageia.org/en/Bugzilla#How-to_report_a_bug%7C">consultez le guide (en)</a>. </p>
<h2 id="valeurs-sûres--stabilité">Valeurs sûres & Stabilité</h2>
<h3 id="dépôts-en-ligne-de-mageia">Dépôts en ligne de Mageia</h3>
<p>Les paquets de Mageia sont répartis dans trois dépôts/<em>media</em> suivant la licence.</p>
<p>Le dépôt <strong>Core</strong> (cœur) est constitué des paquets essentiels ou spécifique à la distribution et de tous les logiciels entièrement libres qu’elle propose. L’ensemble des <em>media</em> <em>Core</em> est <strong>actif</strong> par défaut.</p>
<p>Le dépôt <strong>NonFree</strong> (non-libre) comprend des paquets qui sont gratuits et redistribuables, mais à sources fermées (pilotes propriétaires des cartes graphiques NVIDIA et AMD/ATI, des micrologiciels pour certaines cartes wi-fi, etc). L’ensemble des <em>media</em> <em>nonfree</em> (<em>nonfree release</em> et <em>nonfree updates</em>) est configuré mais <strong>désactivé</strong> par défaut.</p>
<p>Le dépôt <strong>Tainted</strong> (contaminé, entaché) comprend les paquets sous différentes licences, libres et non libres. Le principal critère est une infraction possible aux brevets et droits d’auteur (copyright) dans certains pays (par exemple les codecs multimédia nécessaires pour lire des fichiers audio/vidéo de différents types, les paquets nécessaires pour lire les DVD vidéo du commerce…) ; l’ensemble des <em>media</em> <em>tainted</em> est configuré, mais <strong>désactivé</strong> par défaut, c’est-à-dire qu’il est à consentement préalable, donc vérifiez vos lois locales avant de redistribuer les paquets provenant de <em>tainted</em> (mais tout utilisateur peut les installer). Ce dépôt est à Mageia, ce que le dépôt RPM Fusion est à Fedora.</p>
<p><em>Sur un système 64bits, le dépôt 32bits est aussi ajouté. Si les dépôts nonfree et/ou tainted 64bits sont activés, les dépôts 32bits correspondants seront activés automatiquement (ils peuvent être nécessaires pour des paquets comme Skype©, par exemple)</em></p>
<h3 id="centre-de-contrôle-mageia">Centre de Contrôle Mageia</h3>
<p>Le Centre de Contrôle Mageia (MCC ou drakconf) facilite la gestion et la configuration du matériel, du système et des services.</p>
<p>Ce centre de contrôle est disponible au travers d’une interface centrale regroupant tout les modules, mais aussi sous formes de modules indépendants, et enfin en interface pour terminal.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f617263686976652e6f70656e6d616e64726976612e6f72672f77696b692f66722f696d616765732f632f63352f43656e7472655f64655f636f6e74722543332542346c655f4d616e64726976615f74657874652e706e67/Centre_de_contr%C3%B4le_Mandriva_texte.png" alt="Le Centre de Contrôle en mode semi-graphique (console)." title="Source : http://archive.openmandriva.org/wiki/fr/images/c/c5/Centre_de_contr%C3%B4le_Mandriva_texte.png"></p>
<h4 id="utilisation">Utilisation</h4>
<p>Il permet de configurer une grande partie de son système Mageia, de manière simple et conviviale. Il est composé de plusieurs modules organisés en onglets. Tous les modules peuvent aussi être lancés de manière autonome, sans nécessairement passer par le centre de contrôle Mageia, pourvu que l’entrée de menu existe pour ce module, ou que l’on connaisse la commande à taper dans une console.</p>
<p>Le Centre de Contrôle agit sur le cœur du système et les changements peuvent avoir un effet pour tous les utilisateurs de la machine. C’est pourquoi il nécessite les droits administrateurs (ou droits root) et demande donc le mot de passe de l’utilisateur root si nécessaire (c’est-à-dire si l’on est pas root). </p>
<h4 id="gestion-des-logiciels">Gestion des logiciels</h4>
<p>Drakrpm (ou rpmdrake) est l’interface graphique de gestion des paquets logiciels, permettant la gestion des canaux, l’installation, la mise à jour, la désinstallation, la consultation des descriptions et la recherche. Pour en savoir plus, voir la documentation de <a href="https://doc.mageia.org/mcc/3/fr/content/rpmdrake.html">rpmdrake</a>.</p>
<h4 id="utilisation-de-drakrpm">Utilisation de Drakrpm</h4>
<p>Ce gestionnaire de logiciel est un des principaux outils de Mageia. Il vous permet d’installer les logiciels sous forme de paquets, de les mettre à jour, et de les désinstaller à votre gré. Tous les paquets sont rangés par catégorie dans la barre latérale à gauche.</p>
<p>À chaque démarrage, le gestionnaire met à jour la liste des paquets disponibles (appelés <em>media</em>) à partir des serveurs de Mageia.</p>
<p>Un système de filtres vous permet de n’afficher que certains paquets : soit vous n’affichez que les applications (par défaut), soit vous n’affichez que des mises à jour disponibles. Vous pouvez également afficher uniquement les paquets installés ou qui ne le sont pas, y compris pendant une recherche. Vous pouvez également rechercher soit par nom de paquet, soit dans les résumés de descriptions, soit dans les descriptions complètes des paquets, soit dans les noms de fichiers inclus dans les paquets.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f72706d6472616b65312e706e67/rpmdrake1.png" alt="rpmdrake1" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/rpmdrake1.png"></p>
<p>Cet outil se trouve dans le Centre de Contrôle de Mageia, onglet « Gestion des logiciels », icône « Installer et désinstaller des logiciels ».</p>
<ol>
<li>Filtre de type de paquet : Il vous permet de n’afficher que certains types de paquets. Au premier démarrage il n’affiche que les applications. Vous pouvez afficher soit tous les paquets avec les dépendances et les librairies, soit uniquement des groupes de paquets, soit les applications seulement, soit les mises à jour seulement, soit des paquets rétro-portés de versions supérieures de Mageia Linux ;</li>
<li>Filtre d’état de paquet : Ce filtre vous permet soit de n’afficher que les paquets installés, soit les paquets qui ne sont pas installés seulement, soit tous les paquets qu’ils soient installés ou non ;</li>
<li>Mode de recherche : Cliquez sur la loupe pour rechercher parmi : les noms des paquets, leurs résumés, leurs descriptions complètes ou les fichiers inclus dans tous les paquets ;</li>
<li>Champ de recherche : Entrez dans ce champ un ou plusieurs mots clés. Si vous souhaitez utiliser plus d’un mot clé, utilisez un '|' entre les mots clés. Par exemple, si vous recherchez mplayer et xine en même temps, tapez mplayer | xine ;</li>
<li>Effacer : Ce bouton vous permet d’effacer d’un clic tout mot clé rentré dans le champ de recherche ;</li>
<li>Liste des catégories : Ce panneau latéral regroupe toutes les catégories et sous catégories des logiciels disponibles ;</li>
<li>Panneau de description : Ce panneau affiche le nom du paquet, son résumé et sa description complète. Il fourni de nombreuses informations sur l’élément sélectionné. Il permet également d’afficher des détails précis sur le paquet, les fichiers contenus dans le paquet, ainsi qu’un historique des derniers changement effectués par le mainteneur du paquet.</li>
</ol><p>Une fois les filtres correctement paramétrés, le paquet peut être trouvé par catégorie (dans la zone 6 ci-dessus) ou par nom/résumé/description (dans la zone 4). Une liste de paquets répondant à la requête et, ne l’oubliez pas, aux media choisis est affichée avec les indicateurs de statut précisant si le paquet est installé/pas installé/une mise à jour… Pour changer ce statut, cocher ou décocher la case devant le nom du paquet et cliquer sur <code>Appliquer</code>.</p>
<h4 id="maintenir-à-jour">Maintenir à jour</h4>
<p>Pour mettre à jour, on utilise le module <strong>drakrpm-update</strong>. Il peut se lancer depuis le Centre de Contrôle ou en console en tapant drakrpm-update ou <a href="https://doc.mageia.org/mcc/3/fr/content/MageiaUpdate.html">MageiaUpdate</a>.</p>
<p>Il permet de mettre à jour l’ensemble des applications et paquets installés, et installe donc les paquets les plus récents disponibles parmi les <em>media</em> configurés.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f4d61676569615570646174652e706e67/MageiaUpdate.png" alt="MageiaUpdate" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/MageiaUpdate.png"></p>
<p><strong>Matériel</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d68617264776172652e706e67/mcc-hardware.png" alt="mcc-hardware" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-hardware.png"></p>
<p><strong>Réseau et Internet</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d6e6574776f726b2e706e67/mcc-network.png" alt="mcc-network" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-network.png"></p>
<p><strong>Système</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d73797374656d2e706e67/mcc-system.png" alt="mcc-system" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-system.png"></p>
<p><strong>Partages réseau</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d6e6574776f726b2d73686172696e672e706e67/mcc-network-sharing.png" alt="mcc-network-sharing" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-network-sharing.png"></p>
<p><strong>Disques locaux</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d6c6f63616c6469736b732e706e67/mcc-localdisks.png" alt="mcc-localdisks" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-localdisks.png"></p>
<p><strong>Sécurité</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d73656375726974792e706e67/mcc-security.png" alt="mcc-security" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-security.png"></p>
<p><strong>Démarrage</strong></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646f632e6d61676569612e6f72672f6d63632f332f66722f636f6e74656e742f696d616765732f6d63632d626f6f742e706e67/mcc-boot.png" alt="mcc-boot" title="Source : https://doc.mageia.org/mcc/3/fr/content/images/mcc-boot.png"></p>
<h2 id="installation">Installation</h2>
<h3 id="media-dinstallation">
<em>Media</em> d’installation</h3>
<p>Trois types de <em>media</em> sont disponibles : DVD 32 bits, DVD 64 bits, DVD DualArch.</p>
<p>Ce dernier contient un choix précis et restreint de paquets, proposant ses bibliothèques en 32 & 64 bits, et ayant comme bureau Xfce. </p>
<p>Ces <em>media</em> sont gravables sur support optique ou copiables sur un disque USB. Ils proposent le lancement du système d’installation complet et classique, en interface graphique ou en interface ncurses. Cet installateur prend aussi en charge les recettes <a href="http://members.shaw.ca/mandrake/drakx/HTML/index.html">Autoinstall</a>, permet une installation en mode <em>oem</em> personnalisé, est capable de réaliser une installation en mode braille, ou encore d’utiliser une ligne série.</p>
<h3 id="media-live">
<em>Media</em> Live</h3>
<p>Les <em>media</em> <em>Live</em> sont déclinés en huit variantes suivant la taille (CD et DVD), l’architecture matérielle (32 et 64 bits) et l’environnement de bureau (KDE et Gnome). Ils permettent tous l’installation simplifiée.</p>
<h3 id="installation-par-le-réseau-filaire">Installation par le réseau filaire</h3>
<p>Quatre mini <em>media</em> (entre 30 & 80 Mo, 32 ou 64 bits, avec ou sans firmwares non libres) sont préparés pour ceux qui préfèrent une installation réseau (filaire).</p>
<p>Ils permettent donc l’installation par internet ou depuis votre réseau, ce dernier pouvant comprendre simplement un fichier iso monté et partagé ou votre propre serveur d’installation. Ils supportent également les recettes <em>AutoInstall</em>.</p>
<h2 id="mise-à-niveau-depuis-mageia-4">Mise à niveau depuis Mageia 4</h2>
<p>La mise à niveau d’une Mageia version 4 vers une version 5 est supportée de plusieurs manières. Avant de mettre à niveau :</p>
<ul>
<li>S'assurer vous que Mageia 4 soit parfaitement à jour ;</li>
<li>Prendre connaissance de la page des <a href="https://wiki.mageia.org/fr/Mageia_5_Errata#Probl.C3.A8mes_de_Mise_.C3.A0_Niveau%7C">problèmes connus</a> et sauvegarder les données importantes peut être utile. Si des dépôts tiers, tels que ceux de Google, ont été ajoutés lors de l’utilisation de Mageia 4, inclure <code>/etc/urpmi/urpmi.cfg</code> dans les « données importantes ». Le contenu de ce fichier peut ensuite être utilisé pour ajouter à nouveau les dépôts tiers, après la mise à niveau.</li>
</ul><p><em>La mise à niveau de Mageia 4 vers Mageia 5 n’est pas possible depuis les media live, ces derniers copiant simplement leur contenu sur le disque</em>.</p>
<h3 id="avec-les-media-cd--dvd">Avec les <em>media</em> CD & DVD</h3>
<p>Vous pouvez utiliser le DVD de Mageia 5 pour faire une installation mais aussi pour faire une mise à niveau de la version précédente. Pour mettre à niveau :</p>
<ul>
<li>Téléchargez l’image ISO depuis la <a href="http://mageia.org/fr/downloads/">page de téléchargement</a> de Mageia et gravez-la sur un DVD, ou installez-la sur une clé USB ; pour plus de détails sur ce point, jetez un œil à <a href="https://wiki.mageia.org/en/Installation_Media"><em>media</em> d’installation disponibles</a> ;</li>
<li>Démarrez sur le DVD et sélectionnez « Installer Mageia 5 » depuis le chargeur de démarrage dans le menu ;</li>
<li>Sélectionnez l’option de <a href="http://doc.mageia.org/installer/5/fr/content/selectInstallClass.html">Mise à jour</a> dans l’installeur (programme d'installation).</li>
</ul><h3 id="avec-internet">Avec Internet</h3>
<h3 id="en-graphique">En graphique</h3>
<p>L’applet de notification des mises à jour vous notifiera qu’une nouvelle version de Mageia est disponible et vous demandera si vous souhaitez faire la mise à niveau. Si vous acceptez, la mise à niveau se déroulera sans autre intervention. Si vous avez désactivé l’applet, ou si elle ne tourne plus de manière automatique pour une raison quelconque, vous pouvez lancer la mise à niveau soit par l’interface graphique (<strong>mgaonline</strong>), soit en ligne de commande (via <code>urpmi</code>). Les deux méthodes sont détaillées ci-après.</p>
<h3 id="en-ligne-de-commande">En ligne de commande</h3>
<p>Vous pouvez aussi faire la mise à niveau en utilisant urpmi à partir de votre émulateur de terminal.</p>
<ul>
<li><p>Supprimer toutes les sources existantes des <em>media</em> sur votre système en exécutant cette commande en tant qu’utilisateur root dans un terminal :<br><code><br>
su <br>
urpmi.removemedia -a <br></code></p></li>
<li><p>Ajouter les sources en ligne de Mageia 5, soit ;</p></li>
<li><p>En utilisant la méthode de LA LISTE DES MIROIRS (qui sélectionnera automatiquement un miroir en fonction de votre situation géographique) : <br><code><br>
su <br>
urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.5.$ARCH.list' <br></code></p></li>
</ul><p>(la variable $ARCH est soit i586 ou x86_64)</p>
<ul>
<li>
<p>Ou utiliser un miroir de <em>media</em> spécifique : </p>
<p>su<br><br>
urpmi.addmedia --distrib <br>
Vous pouvez récupérer la variable <code>mirror_url</code> en utilisant <a href="http://mirrors.mageia.org/distrib">l’application web des miroirs Mageia</a> </p>
</li>
<li><p>Pour finir, commencer la mise à niveau : <br><code><br>
su <br>
urpmi --replacefiles --auto-update --auto <br></code></p></li>
<li><p>Il est préférable d’exécuter la commande ci-dessus une seconde fois, afin de s'assurer que tout les paquets ont bien été mis à jour. </p></li>
</ul><p>Pour plus d’informations, consultez le <a href="https://doc.mageia.org/installer/4/fr/content/index.html">manuel d'installation</a>.</p>
<h2 id="mageia-cest-vous">Mageia c’est vous !!</h2>
<p>Mageia est régie par un <a href="https://www.mageia.org/fr/about/code-of-conduct/">code de conduite</a> permettant de coopérer efficacement dans une atmosphère positive.</p>
<p>Elle est organisée en équipes (traducteurs, développeurs, packageurs, testeurs [QA], communicants, etc.) qu’il est facile de rejoindre grâce à un système d’accompagnement des nouveaux contributeurs.</p>
<p>Mais même en dehors de toute équipe, utiliser Mageia, en parler autour de soi, remonter les problèmes éventuels ou encore donner à l’association sont autant de manières de contribuer.</p>
<p>Quelles que soient vos compétences, rendez-vous sur le site de la distribution pour <a href="http://www.mageia.org/fr/contribute/">contribuer à Mageia</a> et intégrer la communauté !</p></div><div><a href="https://linuxfr.org/news/sortie-de-mageia-5-la-magie-continue.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105556/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-mageia-5-la-magie-continue#comments">ouvrir dans le navigateur</a>
</p>
seb95
Stéphane Aulery
bubar🦥
BAud
Julien.D
Yves Bourguignon
palm123
ʭ ☯
Nils Ratusznik
Anonyme
Benoît Sibaud
Syvolc
M5oul
ZeroHeure
NeoX
Jiehong
bbo
dourouc05
Pierre Jarillon
Nicolas Casanova
pamputt
https://linuxfr.org/nodes/105556/comments.atom
tag:linuxfr.org,2005:Diary/35907
2015-06-01T16:25:10+02:00
2015-06-01T16:25:10+02:00
Concours d'IA de Tarot
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<p>Bonjour à tous,</p>
<p>Je suis le développeur d'un petit jeu de Tarot appelé TarotClub. Je pense qu'il est graphiquement assez sympa et semble assez bien débogué au niveau des règles du jeu de Tarot grâce à plusieurs remontées de bugs d'utilisateurs réguliers. On peut y jouer en local ou en réseau, enfin quand il n'y a pas de bugs :)</p>
<p>Cependant, il a un grand défaut : l'intelligence artificielle des adversaires. C'est une critique que je reçois assez souvent et je souhaiterais corriger cet aspect du jeu. J'ai alors pensé à demander de l'aide à la communauté mais d'une manière amusante : en lançant un concours d'Intelligence Artificielle.</p>
<p>Comment ça marche ? Eh bien tout d'abord, une IA est implémentée en JavaScript, comme une sorte de plug-in (je le fais tourner grâce au moteur Duktape). Il y a une API standard à respecter, documentée sur le site du jeu. J'ai ensuite monté un serveur de jeu qui a la charge, pour le concours, d'exécuter des scripts uploadés par les utilisateurs (il faut créer un compte pour cela).</p>
<p>Le bot que je fournis en standard avec le jeu totalise 966 points en jouant 20 parties sur des donnes fixes. Il se bat contre lui même … mais à une même position, le sud, et n'a donc pas les mêmes cartes en main que les autres joueurs.</p>
<p>Donc, si vous voulez participer, n'hésitez pas, cela permettrait d'avoir un jeu de Tarot sous Linux un minimum intéressant. Tout ça est assez expérimental pour le moment je vous préviens !</p>
<p>Je suis également ouvert à toute suggestion, remontée de bugs éventuels … et si vous souhaiteriez voir apparaître d'autres langages que JavaScript pour les script d'IA, merci de me l'indiquer également (je pense que Python ou Lua seraient populaires).</p>
<p>Côté technologies : le serveur tourne sur Node.js/CouchDB et le client sous Qt. Le serveur est full C++0x11 (ce qui est bien pratique notamment pour les std::thread multi-plateforme).</p>
<p>Liens:<br>
- <a href="http://www.tarotclub.fr">TarotClub, le site</a><br>
- <a href="https://launchpad.net/%7Etarotclub/+archive/ubuntu/ppa">Ubuntu PPA</a><br>
- <a href="https://bitbucket.org/tarotclub/tarotclub">Dépôt Bitbucket</a><br>
- <a href="http://www.duktape.org">Duktape, un moteur Javascript léger</a></p><div><a href="https://linuxfr.org/users/belegar--2/journaux/concours-d-ia-de-tarot.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105929/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/belegar--2/journaux/concours-d-ia-de-tarot#comments">ouvrir dans le navigateur</a>
</p>
AnthonyRabine
https://linuxfr.org/nodes/105929/comments.atom
tag:linuxfr.org,2005:Diary/35384
2014-11-01T17:34:37+01:00
2014-11-01T17:34:37+01:00
Un générateur de formulaire qui vise à remplacer google forms
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<p>TL,DR: on est en train de développer un remplaçant à google forms, dispo sur <a href="https://spiral-project.github.io/formbuilder/">https://spiral-project.github.io/formbuilder/</a></p>
<p>Y'à de ça quelques années maintenant, lors des rencontres django-fr à Montpellier, on s'était mis en tête, avec quelques copains, de réfléchir à un remplaçant pour google forms.</p>
<p>Depuis quelques semaines, on travaille sur la dernière partie, l'interface utilisateur, qui permet de construire des formulaires, de les remplir et de faire des rapports. C'est en javascript, écrit avec du React.js et est conçu de telle manière qu'il est possible de rajouter différents "backends" pour choisir ou stocker les données.</p>
<p>En parlant de stockage, la première brique logicielle de ce projet un peu ambitieux, c'était la partie serveur, qui permet de définir des modèles de données et de faire de la validation sur les données qu'on envoie, et de la recherche également.</p>
<p>Ce serveur, c'est "daybed" (le nom venant du fait qu'on utilisait CouchDB uniquement comme stockage au démarrage), et permet de faire de la validation de données, notamment de données géographiques, ce qui peut ouvrir sur des cas d'utilisations sympa.</p>
<ul>
<li><a href="https://spiral-project.github.io/formbuilder/">Une démo du frontend</a></li>
<li><a href="https://github.com/spiral-project/formbuilder/">Le code du frontend</a></li>
<li>
<a href="http://daybed.rtfd.org">La doc du backend</a>;</li>
<li>
<a href="https://github.com/spiral-project/daybed">le code du backend</a>;</li>
</ul><p>Je suis assez friand de retours sur ce qu'on à fait, ce que vous voudriez voir réalisé via ce projet et tout autre commentaires.</p>
<p>(et bien sur, de vos contributions si vous vous sentez motivés!)</p><div><a href="https://linuxfr.org/users/alexis-m/journaux/un-generateur-de-formulaire-qui-vise-a-remplacer-google-forms.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103833/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/alexis-m/journaux/un-generateur-de-formulaire-qui-vise-a-remplacer-google-forms#comments">ouvrir dans le navigateur</a>
</p>
alexis.m
https://linuxfr.org/nodes/103833/comments.atom
tag:linuxfr.org,2005:Diary/35197
2014-08-25T19:34:37+02:00
2014-08-25T19:34:37+02:00
Des nouvelles de \BlueLaTeX : release candidate et systèmes à entités
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#quelques-nouvelles-de-bluelatex">Quelques nouvelles de \BlueLaTeX</a></li>
<li>
<a href="#c%C3%B4t%C3%A9-technique">Côté technique</a><ul>
<li><a href="#la-probl%C3%A9matique">La problématique</a></li>
<li><a href="#entit%C3%A9s-dans-couchdb">Entités dans CouchDB</a></li>
<li><a href="#ce-que-bluelatex-y-gagne">Ce que \BlueLaTeX y gagne</a></li>
</ul>
</li>
<li><a href="#et-la-suite">Et la suite ?</a></li>
</ul><p>Bonjour à tous,</p>
<h2 id="quelques-nouvelles-de-bluelatex">Quelques nouvelles de \BlueLaTeX</h2>
<p>Je profite de l'occasion d'avoir fait hier la première <a href="http://www.bluelatex.org/release/2014/08/24/bluelatex-v1.0.0-RC1.html">Release Candidate</a> de <a href="http://bluelatex.org">\BlueLaTeX</a> pour <a href="//linuxfr.org/users/george/journaux/bluelatex-reloaded-sort-en-beta">reparler</a> de ce projet.</p>
<p>Pour rappel, \BlueLaTeX est une plateforme d'édition collaborative de documents écrits en <a href="http://latex-project.org/">\LaTeX</a> qui consiste en un serveur exposant une API Restful pour gérer les documents, leur synchronisation et leur compilations, et d'une application web jouant le rôle de client (bien que ce soit le seul client actuellement, n'importe quel éditeur de texte peut potentiellement être étendu pour devenir un client \BlueLaTeX), le tout sous licence Apache version 2.0.</p>
<p>Cette version est bien stabilisée par rapport à la version Bêta dont j'avais parlé précédemment, et les différents retours qui avaient été faits ici ou sur le canal IRC ont été pris en compte.</p>
<p>Parmi les améliorations notables, nous retrouvons:</p>
<ul>
<li>la compilation est (dans la configuration par défaut) lancée explicitement par les auteurs, plus de processus en arrière plan qui semblait ne pas être réellement intuitif,</li>
<li>plusieurs compilateurs \LaTeX son supportés par défaut:
<ul>
<li>latex + dvi2pdf,</li>
<li>pdflatex,</li>
<li>xelatex,</li>
<li>lualatex ;</li>
</ul>
</li>
<li>des tooltips ont été ajoutés sur tous les boutons et icônes,</li>
<li>la complétion dans l'éditeur est devenue plus performante,</li>
<li>beaucoup d'autres de petites et grosses améliorations et corrections ont été faites, notamment pour rendre le client plus rapide, stable et intuitif,</li>
<li>une vraie distribution installable est maintenant à télécharger, avec des scripts permettant de lancer le serveur en tant que démon via <a href="https://commons.apache.org/daemon/jsvc.html">jsvc</a>, ou (au choix) une unité <a href="http://freedesktop.org/wiki/Software/systemd/">systemd</a>,</li>
<li>une <a href="http://demo.bluelatex.org">instance de démonstration</a> est maintenant disponible, avec un compte test/test (s'il n'a pas été supprimé et qu'aucun petit malin n'a modifié le mot de passe), ou bien vous pouvez vous créer un compte.</li>
</ul><p>L'écriture d'un manuel utilisateur pour le client web est en cours et devrait sortir pour la version 1.0.0.</p>
<p>Si aucun problème majeur n'a été trouvé sur cette version elle pourra devenir la première version stable de \BlueLaTeX !</p>
<p>Pour le côté utilisateur voilà le résumé, vous pouvez aller faire un tour du côté des <a href="https://github.com/gnieh/bluelatex/issues?q=is%3Aclosed">tickets fermés</a> pour plus de détails.</p>
<h2 id="côté-technique">Côté technique</h2>
<p>La gros changement technique qui s'est produit depuis la première Bêta vient du modèle de données qui était trop statique par rapport au but que nous souhaitons atteindre.</p>
<p>Après avoir lu la <a href="//linuxfr.org/tags/gamedev/public">série de dépêches</a> de <a href="//linuxfr.org/users/rewind">rewind</a> sur la création de jeux vidéo, et notamment <a href="//linuxfr.org/news/je-cree-mon-jeu-video-e01-les-systemes-a-entites">la première de la série</a>, j'ai opté pour un modèle de données implémenté en système à entités.</p>
<p>Je ne vais pas refaire de tutoriel sur ce qu'est un tel système, relisez <a href="//linuxfr.org/news/je-cree-mon-jeu-video-e01-les-systemes-a-entites">la dépêche de rewind</a> et les liens associés pour vous rafraichir la mémoire si besoin.</p>
<h3 id="la-problématique">La problématique</h3>
<p>\BlueLaTeX est architecturé de manière à pouvoir facilement être étendu par de nouveaux composants côté serveur.<br>
Par exemple la version de base est architecturée ainsi:</p>
<ul>
<li>le composant <code>core</code> qui fournit les services de base nécessaire au bon fonctionnement de l'application, comme la gestion des utilisateurs et des documents,</li>
<li>le composant <code>sync</code> qui fournit le service de synchronisation des sources entre les différents utilisateurs,</li>
<li>le composant <code>compiler</code> qui fournit les services liés à la compilation des document \LaTeX.</li>
</ul><p>Chacun de ses composants peut avoir besoin de faire persister des données nécessaires à son fonctionnement.<br>
Concrètement dans les trois composants de base suscités, seuls <code>core</code> et <code>compiler</code> ont besoin de le faire pour le moment.</p>
<p>Le composant <code>core</code> enregistre les informations sur les utilisateurs, les papiers et les rôles des utilisateurs sur les papiers, quant au composant <code>compiler</code> il enregistre la configuration du compilateur associé au document.</p>
<p>Ces composants sont très indépendants au niveau des données et aucun lien ne les unie, si ce n'est le papier en lui même. De plus, certains composants peuvent ne pas être présents (le compilateur est tout à fait optionnel si le client décide de faire la compilation du \LaTeX de son côté).</p>
<p>Il nous fallait donc un modèle de données flexible qui permet facilement l'ajout et le retrait de données indépendantes, sans compromettre l'intégrité des données existantes.</p>
<p>Nous utilisons <a href="http://couchdb.apache.org/">CouchDB</a> comme serveur de base de données, ce qui nous permet de stocker nos données sans schéma précis.<br>
C'est bien, l'outil nous permet de faire ce que nous voulons, mais il faut le faire à la main, gérer les documents correctement et les suppressions des documents attachés à un objet qui n'existe plus.<br>
De plus le fait de devoir le faire à la main avait conduit à avoir un modèle de données très monolithique au final avec des documents fourre-tout.</p>
<p>Bref, une solution était nécessaire !</p>
<h3 id="entités-dans-couchdb">Entités dans CouchDB</h3>
<p>Le principe des entités et composants m'a plu dès le premier article que j'ai lu sur le sujet, et le côté dynamique de la forme des données m'a paru assez adapté à la gestion de documents CouchDB.</p>
<p>Il est temps pour moi de vous présenter la bibliothèque que je développe en marge de \BlueLaTeX : <a href="https://github.com/gnieh/sohva/">sohva</a>.<br>
Originellement issue du code de l'ancienne version de \BlueLaTeX, cette bibliothèque est devenue un ensemble d'outils permettant d'accéder et de gérer des données stocker dans CouchDB en <a href="http://scala-lang.org/">scala</a>.</p>
<p>La version en cours de développement contient un client et s'est vue ajouter plusieurs composants dont un en particulier qui nous intéresse ici : <code>sohva-entities</code>.</p>
<p>Ce composant est construit au dessus du client par défaut et permet donc de gérer des systèmes à entités en utilisant CouchDB système de persistance des données.</p>
<p>La manière d'accéder à ces fonctionnalités est l'<code>EntityManager</code>, que l'on obtient à partir d'une référence à une base de données.<br>
Le but ici n'est pas de faire un tutoriel de la bibliothèque, de scala ou de CouchDB, mais globalement voilà comment un tel manager est créé :</p>
<pre><code class="scala"><span class="k">import</span> <span class="nn">akka.actor.ActorSystem</span>
<span class="k">import</span> <span class="nn">akka.util.Timeout</span>
<span class="k">import</span> <span class="nn">scala.concurrent.duration._</span>
<span class="k">import</span> <span class="nn">gnieh.sohva.sync.entities._</span>
<span class="k">implicit</span> <span class="k">val</span> <span class="n">system</span> <span class="k">=</span> <span class="nc">ActorSystem</span><span class="o">(</span><span class="s">"entities-system"</span><span class="o">)</span>
<span class="k">implicit</span> <span class="k">val</span> <span class="n">timeout</span> <span class="k">=</span> <span class="nc">Timeout</span><span class="o">(</span><span class="mf">20.</span><span class="n">seconds</span><span class="o">)</span>
<span class="k">val</span> <span class="n">couch</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">CouchClient</span>
<span class="k">val</span> <span class="n">database</span> <span class="k">=</span> <span class="n">couch</span><span class="o">.</span><span class="n">database</span><span class="o">(</span><span class="s">"entitiy-database"</span><span class="o">)</span>
<span class="k">implicit</span> <span class="k">val</span> <span class="n">manager</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">EntityManager</span><span class="o">(</span><span class="n">database</span><span class="o">)</span></code></pre>
<p>Ainsi donc, un gestionnaire d'entités est attaché à une base de données en particulier, dans laquelle il stocke les entités et les composants.<br>
L'API du gestionnaire est assez classique d'après ce que j'ai pu voir dans la littérature sur le sujet (signatures simplifiées ici pour des raisons de lisibilité):</p>
<pre><code class="scala"><span class="k">type</span> <span class="kt">Entity</span> <span class="o">=</span> <span class="nc">String</span>
<span class="k">trait</span> <span class="nc">EntityManager</span> <span class="o">{</span>
<span class="k">def</span> <span class="n">createSimple</span><span class="o">()</span><span class="k">:</span> <span class="kt">Entity</span>
<span class="k">def</span> <span class="n">createTagged</span><span class="o">(</span><span class="n">tag</span><span class="k">:</span> <span class="kt">String</span><span class="o">)</span><span class="k">:</span> <span class="kt">Entity</span>
<span class="k">def</span> <span class="n">create</span><span class="o">(</span><span class="n">uuid</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">tag</span><span class="k">:</span> <span class="kt">Option</span><span class="o">[</span><span class="kt">String</span><span class="o">])</span><span class="k">:</span> <span class="kt">Unit</span>
<span class="k">def</span> <span class="n">deleteEntity</span><span class="o">(</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">)</span><span class="k">:</span> <span class="kt">Boolean</span>
<span class="k">def</span> <span class="n">saveComponent</span><span class="o">[</span><span class="kt">T</span> <span class="k"><:</span> <span class="kt">IdRev</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">,</span> <span class="n">component</span><span class="k">:</span> <span class="kt">T</span><span class="o">)</span><span class="k">:</span> <span class="kt">T</span>
<span class="k">def</span> <span class="n">hasComponentType</span><span class="o">[</span><span class="kt">T</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">)</span><span class="k">:</span> <span class="kt">Boolean</span>
<span class="k">def</span> <span class="n">hasComponent</span><span class="o">[</span><span class="kt">T</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">,</span> <span class="n">component</span><span class="k">:</span> <span class="kt">T</span><span class="o">)</span><span class="k">:</span> <span class="kt">Boolean</span>
<span class="k">def</span> <span class="n">getComponent</span><span class="o">[</span><span class="kt">T</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">)</span><span class="k">:</span> <span class="kt">Option</span><span class="o">[</span><span class="kt">T</span><span class="o">]</span>
<span class="k">def</span> <span class="n">removeComponentType</span><span class="o">[</span><span class="kt">T</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">)</span><span class="k">:</span> <span class="kt">Boolean</span>
<span class="k">def</span> <span class="n">removeComponent</span><span class="o">[</span><span class="kt">T</span> <span class="k"><:</span> <span class="kt">IdRev</span><span class="o">](</span><span class="n">entity</span><span class="k">:</span> <span class="kt">Entity</span><span class="o">,</span> <span class="n">component</span><span class="k">:</span> <span class="kt">T</span><span class="o">)</span><span class="k">:</span> <span class="kt">Boolean</span>
<span class="k">def</span> <span class="n">entities</span><span class="k">:</span> <span class="kt">Set</span><span class="o">[</span><span class="kt">Entity</span><span class="o">]</span>
<span class="k">def</span> <span class="n">entities</span><span class="o">(</span><span class="n">tag</span><span class="k">:</span> <span class="kt">String</span><span class="o">)</span><span class="k">:</span> <span class="kt">Set</span><span class="o">[</span><span class="kt">Entity</span><span class="o">]</span>
<span class="o">}</span></code></pre>
<p>Comme dans beaucoup de ces systèmes, une entité n'est qu'un identifiant (ici une chaîne de caractères) auquel nous pouvons attacher des composants contenant des données à associer.</p>
<p>Concrètement en base de données, un entité est représentée par un document contenant uniquement l'identifiant et éventuellement un champ <code>tag</code>, permettant d'étiqueter les entités.<br>
Pour que la mécanique du gestionnaire marche, le document a aussi d'autres champs, permettant de gérer tout ça correctement.</p>
<p>Lorsqu'un composant est attaché à une entité, celle-ci n'est pas modifiée, et un nouveau document correspondant à ce composant est enregistré dans la base de données.<br>
Ceci explique la présence du <code>IdRev</code> qui est un trait de sohva indiquant que nous avons à faire à un objet avec un champ obligatoire <code>_id</code> et un champ optionnel <code>_rev</code>, pré-requis des documents CouchDB.<br>
De manière similaire aux entités, d'autres champs sont ajoutés par le gestionnaire afin d'identifier ces documents comme composants et de les rattacher à leur entité.</p>
<p>Et voilà, c'est tout : un document pour l'entité, un par composant attaché à une entité.</p>
<p>Le lien entre une entité et ses composants est fait par une <a href="http://docs.couchdb.org/en/latest/couchapp/views/intro.html">vue</a>.</p>
<p>L'avantage de cette approche dans CouchDB et de ne pas avoir fait un seul document par entité avec un tableau de composants par exemple, et que chaque composant peut être géré et sauvegardé séparément, éliminant de potentiels <a href="http://docs.couchdb.org/en/latest/replication/conflicts.html#conflict-avoidance">conflits</a> si deux composants d'une même entités sont enregistrés en parallèle.</p>
<p>Bien sûr cette manière de procéder fait que plus de documents sont créés en base de donnée, mais le gain est grand si l'on évite les conflits, et permet d'éviter de nouveaux problèmes si l'on a mis en place de la réplication entre plusieurs instances.</p>
<p>Pour la suppression, tout est géré automatiquement et tous les documents de composants attachés à un document d'entité sont supprimés lorsque celle-ci est elle-même supprimée.</p>
<p>Une limitation actuelle de la bibliothèque est qu'un seul composant de chaque type peut être attaché à une entité, c'est sûrement une limite artificielle et qui serait simple à retirer, mais je n'en ai pas encore vu d'utilité.<br>
Dans les systèmes existants j'ai vu les deux cas sans vraiment avoir d'avis sur la question. Je m'en remets à vous pour argumenter pour ou contre cette limite.</p>
<p>Voilà à quoi ressemble la création et la manipulation d'une entité et de ses composants avec l'exemple d'un vaisseau spatial dans un jeu avec ses composants (exemple issu de <a href="http://gamadu.com/artemis/tutorial.html">cet article</a>) :</p>
<pre><code class="scala"><span class="k">case</span> <span class="k">class</span> <span class="nc">PositionComponent</span><span class="o">(</span><span class="nc">_id</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">x</span><span class="k">:</span> <span class="kt">Double</span><span class="o">,</span> <span class="n">y</span><span class="k">:</span> <span class="kt">Double</span><span class="o">)</span> <span class="k">extends</span> <span class="nc">IdRev</span>
<span class="k">object</span> <span class="nc">PositionComponent</span> <span class="o">{</span>
<span class="k">def</span> <span class="n">apply</span><span class="o">(</span><span class="n">x</span><span class="k">:</span> <span class="kt">Double</span><span class="o">,</span> <span class="n">y</span><span class="k">:</span> <span class="kt">Double</span><span class="o">)</span><span class="k">:</span> <span class="kt">PositionComponent</span> <span class="o">=</span>
<span class="k">new</span> <span class="nc">PositionComponent</span><span class="o">(</span><span class="n">generateId</span><span class="o">(),</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">)</span>
<span class="o">}</span>
<span class="k">case</span> <span class="k">class</span> <span class="nc">RotationComponent</span><span class="o">(</span><span class="nc">_id</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">angle</span><span class="k">:</span> <span class="kt">Double</span><span class="o">)</span> <span class="k">extends</span> <span class="nc">IdRev</span>
<span class="k">object</span> <span class="nc">RotationComponent</span><span class="o">(</span><span class="n">angle</span><span class="k">:</span> <span class="kt">Double</span><span class="o">)</span><span class="k">:</span> <span class="kt">RotationComponent</span> <span class="o">=</span>
<span class="k">new</span> <span class="nc">RotationComponent</span><span class="o">(</span><span class="n">generateId</span><span class="o">(),</span> <span class="n">angle</span><span class="o">)</span>
<span class="o">}</span>
<span class="k">val</span> <span class="n">spaceship</span> <span class="k">=</span> <span class="n">manager</span><span class="o">.</span><span class="n">createTagged</span><span class="o">(</span><span class="s">"spaceship"</span><span class="o">)</span>
<span class="n">manager</span><span class="o">.</span><span class="n">saveComponent</span><span class="o">(</span><span class="n">spaceship</span><span class="o">,</span> <span class="nc">RotationComponent</span><span class="o">(</span><span class="mi">180</span><span class="o">))</span>
<span class="c1">// ou avec un peu de 'type classes' et d'implicites</span>
<span class="n">spaceship</span><span class="o">.</span><span class="n">save</span><span class="o">(</span><span class="nc">PositionComponent</span><span class="o">(</span><span class="mi">200</span><span class="o">,</span> <span class="mi">400</span><span class="o">))</span></code></pre>
<p>Un système ensuite accède aux entités et leurs composants comme suit:</p>
<pre><code class="scala"><span class="k">for</span> <span class="o">{</span>
<span class="n">entity</span> <span class="k"><-</span> <span class="n">entities</span><span class="o">(</span><span class="s">"spaceship"</span><span class="o">)</span>
<span class="n">position</span> <span class="k"><-</span> <span class="n">manager</span><span class="o">.</span><span class="n">getComponent</span><span class="o">[</span><span class="kt">PositionComponent</span><span class="o">](</span><span class="n">entity</span><span class="o">)</span>
<span class="c1">// ou avec un peu de 'type clases' et d'implicites</span>
<span class="n">rotation</span> <span class="k"><-</span> <span class="n">entity</span><span class="o">.</span><span class="n">get</span><span class="o">[</span><span class="kt">RotationComponent</span><span class="o">]</span>
<span class="o">}</span> <span class="o">{</span>
<span class="c1">// faire le travail nécessaire</span>
<span class="o">}</span></code></pre>
<p>La partie "systèmes" n'est pas incluse dans <code>sohva-entities</code> qui s'occupe de la gestion et de la persistance des données uniquement et pas de la logique.<br>
Chaque utilisateur et donc libre d'implémenter les systèmes à sa manière : traitement périodique, gestionnaire d'événements, autre…</p>
<h3 id="ce-que-bluelatex-y-gagne">Ce que \BlueLaTeX y gagne</h3>
<p>La première mise en œuvre de cette bibliothèque est donc dans \BlueLaTeX. Le modèle de données a été adapté pour transformer documents et utilisateurs en entités.<br>
Les différentes données attachées ont été transformées en composants. Ainsi lors de la création d'un nouveau papier le système noyau crée les entités et composants suivants :</p>
<ul>
<li>entité papier,</li>
<li>composant <code>core</code> qui contient le nom du document, sa date de création, son type (pour le moment c'est du \LaTeX uniquement, mais markdown va suivre),</li>
<li>composant <code>roles</code> qui contient la liste des auteurs et relecteurs.</li>
</ul><p>Pour sa part, le module <code>compiler</code> ajoute son propre composant <code>compiler</code> (<a href="http://fr.wikipedia.org/wiki/La_Minute_n%C3%A9cessaire_de_monsieur_Cyclop%C3%A8de">Étonnant, non ?</a>) qui contient le nom du compilateur à utiliser (pdflatex, xelatex, lualatex, …), le timeout de compilation, …</p>
<p>La suppression des utilisateurs et documents s'est vue grandement simplifiée par le nettoyage automatiquement géré lors de la suppression d'une entité, les données sont clairement séparées selon leur utilité et chaque système ne lit et ne met à jour que les documents qu'il utilise, ce qui permet d'éviter des conflits si deux systèmes sauvegardent des données orthogonales en même temps.</p>
<p>Pour le futur, il est envisageable (et envisagé d'ailleurs) d'avoir un composant en plus pour les papiers comme la phase dans laquelle le papier se trouve, et le permissions associées à cette phase, ou encore des informations de tags et branches associées au cycle de vie du document, ou, ou, ou…<br>
Un gros avantage au fait que chaque nouveau module côté serveur puisse ajouter ses données sous forme de composant et que cela n'impacte personne autour de lui (à condition bien sûr de ne pas jouer avec les composants des autres sans leur demander gentiment leur avis avant).</p>
<p>Bien sûr ce changement casse la compatibilité avec le modèle de données de la première Bêta, mais j'ai estimé que c'était le moment de le faire avant que ce soit utilisé en production et que la migration soit pénible.</p>
<h2 id="et-la-suite">Et la suite ?</h2>
<p>Maintenant que les fonctionnalités souhaitées pour la première version sont réalisées, que le futur est plutôt bien préparé pour les évolutions prévues à court et moyen terme, que le client et le serveur ont été stabilisés, le gros du travail est axé sur la documentation pour la première version stable, et sur les premières évolutions présentées <a href="http://bluelatex.org/roadmap/">sur le site</a>.</p><div><a href="https://linuxfr.org/users/george/journaux/des-nouvelles-de-bluelatex-release-candidate-et-systemes-a-entites.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103105/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/george/journaux/des-nouvelles-de-bluelatex-release-candidate-et-systemes-a-entites#comments">ouvrir dans le navigateur</a>
</p>
Lucas
https://linuxfr.org/nodes/103105/comments.atom
tag:linuxfr.org,2005:News/35496
2014-06-21T12:02:39+02:00
2014-06-21T12:02:39+02:00
Rakoshare, un outil de synchronisation de dossiers pour tout le monde
<div><p>Rakoshare est un logiciel, en Go, sous licence MIT, de synchronisation de dossiers entre plusieurs machines. Il se veut simple d'installation et d'utilisation par le plus grand nombre. Fonctionnellement, il est très largement basé sur Bittorrent Sync, un logiciel équivalent mais non-libre.</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/rakoo/rakoshare" hreflang="en" href="https://linuxfr.org/redirect/90904">Page du projet rakoshare sur GitHub</a></li><li>lien nᵒ 2 : <a title="http://www.bittorrent.com/sync" hreflang="en" href="https://linuxfr.org/redirect/90905">Bittorrent Sync</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#installation">Installation</a></li>
<li><a href="#utilisation">Utilisation</a></li>
<li><a href="#les-dessous">Les dessous</a></li>
<li><a href="#limitations">Limitations</a></li>
<li>
<a href="#pourquoi-ne-pas-avoir-choisi">Pourquoi ne pas avoir choisi…</a><ul>
<li><a href="#rsync">rsync ?</a></li>
<li><a href="#unison">unison ?</a></li>
<li><a href="#owncloudseafile">owncloud/seafile ?</a></li>
<li><a href="#camlistore">camlistore ?</a></li>
<li><a href="#clearskies-ou-syncthing">clearskies ou syncthing ?</a></li>
<li><a href="#les-autres">Les autres ?</a></li>
</ul>
</li>
<li><a href="#lavenir">L'avenir</a></li>
</ul><p>Rakoshare est un projet sur lequel je travaille depuis l'annonce de Bittorrent Sync, et après avoir vu que depuis tout ce temps il n'y a même pas une annonce de l'ouverture de son code source.</p>
<p>Le but de cette application est de rester extrêmement simple, tant à l'installation qu'à l'utilisation, parce que ce sont là des critères essentiels à l'adoption d'un logiciel. L'une des conséquences est ainsi qu'il n'y a pas besoin d'installer un serveur central; n'importe quelle machine compatible peut se joindre au partage.</p>
<h2 id="installation">Installation</h2>
<p>Le binaire en question est prévu, mais pour le moment il vous faudra le compiler par vous-même. Les instructions sont sur la page du projet, il s'agit tout simplement d'une application <a href="http://golang.org/">Go</a> standard.</p>
<h2 id="utilisation">Utilisation</h2>
<p>L'utilisation se résume à choisir un dossier que l'on souhaite partager, créer un <em>id</em> aléatoire (pour être sûr qu'il ne soit pas déjà choisi), et lancer l'application en liant les deux:</p>
<pre><code> $ rakoshare -fileDir ~/myDir -id <myId> -useLPD=true -useDHT=true
</code></pre>
<p>La même commande pourra être lancée sur chaque ordinateur qui doit recevoir une copie du dossier. Notez que l'emplacement du dossier ne doit pas nécessairement être le même sur toutes les machines.</p>
<h2 id="les-dessous">Les dessous</h2>
<p>Comme les plus attentifs auront pu le remarquer, Rakoshare ré-utilise le <a href="http://www.bittorrent.org/beps/bep_0003.html">protocole bittorrent</a> qui se trouve être un excellent protocole de transport de données. Rakoshare est principalement une glue par dessus celui-ci pour permettre un plus grand dynamisme, notamment sur la manière d'informer les pairs d'un changement dans le dossier et propager ce changement. L’intérêt principal est que l'identifiant est la seule information qui a besoin d'être partagée avec les autres participants: une suite de 40 caractères est suffisante pour mettre d'accord un nombre potentiellement infini de machines</p>
<p>Rakoshare s'inspire également de <a href="https://couchdb.apache.org/">Couchdb</a>, qui a des idées réellement intéressantes pour la gestion des versions que je réutiliserai. D'autres technologies, comme du <em>multiplexing</em> de connexions, du chiffrement et une gestion des autorisations sont prévues pour les versions à venir.</p>
<p>Rakoshare n'est pas parti de zéro, je suis parti de <a href="https://github.com/jackpal/Taipei-Torrent">Taipei-Torrent</a>, un client bittorrent écrit en Go. Le choix de ce langage ne s'est d'ailleurs pas totalement fait au hasard : bien sûr, j'ai commencé à m'y intéresser quand on a commencé à parler de lui, et mes premières impressions ont été celles que tout le monde a à peu près eues: une sémantique extrêmement simple (si vous savez déjà programmer, vous n'apprendrez rien de spécialement neuf) mais suffisamment puissantes pour construire des applications performantes et fiables très rapidement. En plus de ça, les binaires créés sont <em>all-inclusive</em>, c'est à dire qu'ils contiennent absolument tout ce qui est nécessaire; il n'y a plus de problèmes de déploiements. Enfin, la gestion de la <a href="http://golang.org/doc/effective_go.html#concurrency">concurrence</a> en fait un langage tout à fait adapté pour tout logiciel qui reçoit des informations de l'extérieur à des moments indéfinis, comme par exemple un serveur.</p>
<h2 id="limitations">Limitations</h2>
<p>Rakoshare en est à sa version <a href="http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast">Make It Work</a>: ça marche pour un dossier seulement (impossible de synchroniser plusieurs dossiers en même temps), ça passe en clair, il y a quelques instabilités, c'est verbeux et c'est en ligne de commande, il y aura certainement des problèmes si vous êtes derrière un NAT/pare-feu… mais ça marche. Je pense que ce logiciel peut servir à beaucoup de monde, donc j'ai décidé de l'annoncer pour attendre les retours des moules les plus aventureuses.</p>
<p>Rakoshare se limitera fortement à la synchronisation de dossiers. J'estime que ce cas d'utilisation est suffisant pour remplir la majorité des besoins (puisque tout est potentiellement fichier, et à peu près n'importe quel utilisateur comprend les principes de base du système de fichier).</p>
<h2 id="pourquoi-ne-pas-avoir-choisi">Pourquoi ne pas avoir choisi…</h2>
<h3 id="rsync">rsync ?</h3>
<p><a href="https://rsync.samba.org/">rsync</a> est le vénérable outil de transfert de dossiers, initialement connu pour son efficacité dans le protocole de transport lui-même (rsync considère à juste titre que les échanges réseau sont la partie la plus couteuse d'un échange de données, et se débrouille pour minimiser la quantité d'information à faire transiter) mais qui a su s'imposer comme le standard du transfert ad-hoc par son incroyable quantité d'options.</p>
<p>Malheureusement, rsync est un outil assez « bas-niveau », dans la mesure où son invocation reste relativement manuelle, et il n'est fait que pour synchroniser 2 machines entre elles.</p>
<h3 id="unison">unison ?</h3>
<p><a href="http://www.cis.upenn.edu/%7Ebcpierce/unison/">Unison</a> est écrit en OCaml, un langage qui m'intéressait également, en tout cas théoriquement. Par rapport à rsync, il a l'avantage de gérer les synchronisations dans les deux sens ; malheureusement il est également fait pour les échanges entre 2 machines.</p>
<h3 id="owncloudseafile">owncloud/seafile ?</h3>
<p>L'un des prérequis que je voulais était de ne pas avoir à installer de serveur, pour garder une simplicité maximale. Mon but est bien que les gens qui utilisent Bittorrent Sync (voire Dropbox) utilisent Rakoshare; il ne faut pas passer par une étape aussi limitante.</p>
<h3 id="camlistore">camlistore ?</h3>
<p><a href="http://camlistore.org/">Camlistore</a> est un projet de « dépôt » personnel d'un peu tout et n'importe quoi; lâchez-y vos photos et votre musique, et un système d'indexation vous permettra de vous y retrouver plus facilement dans votre masse d'information. Je pense que Camlistore est réellement intéressant pour ceux qui produisent/reçoivent beaucoup d'informations et souhaitent en garder une trace dans un lieu sûr; malheureusement la procédure d'installation n'est pas encore aussi simple, et dans l'état, vous devrez dupliquer vos informations entre votre système de fichiers et Camlistore, les garder en synchronisation…</p>
<h3 id="clearskies-ou-syncthing">clearskies ou syncthing ?</h3>
<p>Ces deux projets semblent être les alternatives libre les plus connues à Bittorrent Sync; l'une est en Go et introduit une notion inutile (à mon avis) de nœuds en plus d'un <em>nouveau</em> protocole, qui fait (encore à mon avis) l'erreur d'être trop orienté fichier, au lieu d'avoir une vision globale du dossier, comme le fait git avec succès, et l'autre est en C++, que je ne connais pas assez pour pouvoir y contribuer. Oh et il a également son propre protocole.</p>
<h3 id="les-autres">Les autres ?</h3>
<p>Il doit exister encore des dizaines d'alternatives que je n'ai pas citées, mais aucune d'elles n'a su me convaincre dans la simplicité d'installation et d'utilisation. Peut-être fais-je une erreur, l'avenir nous le dira.</p>
<h2 id="lavenir">L'avenir</h2>
<p>Comme dit précédemment, il y a un minimum de points à implémenter avant de pouvoir prétendre avoir un remplacement à Bittorrent Sync, mais je compte justement garder les choses simples (le protocole, basé sur Bittorrent, a peu de chances d'évoluer même si c'est techniquement possible) pour que la communauté de développeurs puisse venir renforcer la bête. Dans un avenir lointain, il sera certainement possible de carrément remplacer Dropbox ou encore <a href="http://jack.minardi.org/software/syncnet-a-decentralized-web-browser/">réinventer le web</a>… mais ne brusquons pas les choses !</p>
<p>En attendant, vous pouvez jouer avec; n'hésitez pas à remonter les problèmes sur le <a href="https://github.com/rakoo/rakoshare/issues">tracker</a> et à venir discuter sur la liste de diffusion (rakoshare servi-par librelist.com).</p>
<p><em>Note: ce document est placé sous licence CC0</em></p></div><div><a href="https://linuxfr.org/news/rakoshare-un-outil-de-synchronisation-de-dossiers-pour-tout-le-monde.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102577/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/rakoshare-un-outil-de-synchronisation-de-dossiers-pour-tout-le-monde#comments">ouvrir dans le navigateur</a>
</p>
rakoo
Nÿco
bubar🦥
claudex
Benoît Sibaud
palm123
https://linuxfr.org/nodes/102577/comments.atom
tag:linuxfr.org,2005:Diary/34948
2014-05-07T20:07:58+02:00
2014-05-07T20:07:58+02:00
\BlueLaTeX reloaded sort en bêta !
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><ul>
<li><a href="#m%C3%A9keskec%C3%A9">Mékeskecé ?</a></li>
<li><a href="#historique">Historique</a></li>
<li>
<a href="#fonctionnalit%C3%A9s">Fonctionnalités</a><ul>
<li><a href="#gestion-des-papiers">Gestion des papiers</a></li>
<li><a href="#%C3%89dition-de-papier">Édition de papier</a></li>
</ul>
</li>
<li><a href="#comment-qucest-quon-essaye">Comment qu'c'est qu'on essaye ?</a></li>
<li><a href="#architecture-globale">Architecture globale</a></li>
<li><a href="#et-la-licence">Et la licence ?</a></li>
<li><a href="#pour-finir">Pour finir</a></li>
</ul></li>
</ul><p>Allez, je me fends de mon premier journal pour vous présenter un projet qui m'occupe pas mal depuis quelques années, à l'occasion de la première version bêta publique de <a href="https://github.com/gnieh/bluelatex">\BlueLaTeX</a>, disponible <a href="https://github.com/gnieh/bluelatex/releases">sur la page des releases</a>.</p>
<h3 id="mékeskecé">Mékeskecé ?</h3>
<p>\BlueLaTeX est tout simplement une plateforme d'édition collaborative de documents en \LaTeX.</p>
<p>Le projet consiste en plusieurs modules :<br>
- le gestionnaire d'utilisateurs et de documents,<br>
- le serveur de synchronisation de fichiers,<br>
- le serveur de compilation des documents,<br>
- un client web<br>
- …</p>
<p>Je reviendrai sur les différents modules par la suite, mais voilà globalement la structure du projet.</p>
<p>Une instance d'une ancienne version de \BlueLaTeX est hébergée et utilisable sur <a href="http://www.publications.li/">publications.li</a>.<br>
La version bêta ne devrait pas tarder à y être disponible en test.</p>
<h3 id="historique">Historique</h3>
<p>Le tout premier prototype de \BlueLaTeX a été écrit par <a href="http://www.monperrus.net/martin/">Martin</a> en 2010 afin d'explorer l'idée d'un éditeur collaboratif en temps réel de documents en \LaTeX.<br>
Ce prototype était écrit en php, le serveur de synchronisation <a href="http://code.google.com/p/google-mobwrite/">mobwrite</a> en python, et le client utilisait <a href="http://prototypejs.org/">prototype</a>.<br>
L'idée était de créer facilement un document \ĻaTeX et de partager un simple lien entre les différents auteurs du document pour travailler dessus.</p>
<p>En 2011, le prototype est amélioré pour ajouter une interface Rest plus propre séparant clairement la livraison du contenu du client de la logique de gestion des documents.<br>
Le client pour sa part abandonne prototype pour <a href="http://yuilibrary.com/">YUI</a>, le serveur est resté fidèle au php avec une utilisation intensive de <code>RewriteRule</code>.</p>
<p>J'ai commencé à y mettre mon grain de sel début 2011, mais je n'aimais pas le php.<br>
J'ai donc effectué un lobbying pour utiliser autre chose et début 2012, le serveur est enfin entièrement réécrit en <a href="http://www.scala-lang.org/">scala</a> et fonctionne.<br>
Cette nouvelle version n'expose qu'une interface Rest et ne s'occupe pas du tout de l'application web, décorrélant la logique du client.<br>
Le but est d'avoir un serveur qui peut être utilisé par n'importe quel client qui parlerait correctement à l'interface.<br>
Un nouveau client est réécrit par Martin en GWT, ni lui ni moi n'étant spécialiste de javascript.<br>
La synchronisation est toujours effectuée par <a href="http://code.google.com/p/google-mobwrite/">mobwrite</a> à qui le serveur délègue les requêtes.<br>
Cette version est celle qui tourne depuis 2012 sur <a href="http://www.publications.li/">publications.li</a>.</p>
<p>Tout au long de ces <em>générations</em> du service, une ligne directrice s'est précisée pour Martin et moi même : fournir une plateforme d'édition collaborative, d'accord ! Mais une plateforme qui cible en premier lieu les publications scientifiques.</p>
<p>De nouveaux concepts sont donc venus se greffer, rendant la maintenance du code un poil difficile.</p>
<p>Mi 2013, nous avons donc entamé une réécriture complète du serveur, toujours en scala, avec une architecture modulaire permettant de séparer les concepts proprement, et de fournir une API propre et claire.<br>
Le code du serveur de synchronisation tenant plus du prototype que du code à mettre en production (notamment beaucoup de choses codées en dur), nous décidons de le réécrire.<br>
La <a href="http://code.google.com/p/google-mobwrite/wiki/Theory">théorie de Neil Fraser</a> très intéressante mais le <a href="http://code.google.com/p/google-mobwrite/wiki/Protocol">protocole</a> est assez rudimentaire.<br><a href="http://www.schiltknecht.fr/">Audric</a> nous rejoint à ce moment et s'attèle à cette tâche.</p>
<p>La nécessité de faire un nouveau client web, un poil <a href="http://blue.publications.li/u4ceb8c15abc2a">moins austère que l'actuel</a> s'est rapidement faite sentir.<br>
Au début de l'année nous rejoint donc <a href="https://github.com/tdurieux/">Thomas</a> qui entame l'écriture du nouveau client web avec <a href="https://angularjs.org/">angularjs</a>.</p>
<p>Et nous voici au point où la première bêta de la réécriture est prête et la deuxième est dans les tuyaux.</p>
<h3 id="fonctionnalités">Fonctionnalités</h3>
<p>Cette nouvelle mouture est censée être isofonctionelle à l'ancienne, et bien sûr apporte certaines améliorations que voici.<br>
Toutes les fonctionnalités sont disponibles dans le client web par défaut qui fait uniquement des appels à l'<a href="https://github.com/gnieh/bluelatex/wiki/Rest-Interface">API Rest</a>.<br>
Il est donc possible d'utiliser n'importe quel client qui sait faire des requêtes HTTP.<br>
La seule limitation dans cette première bêta (et pour la première version en fait) est qu'il est nécessaire d'avoir une session basée sur des cookies.<br>
La gestion de l'authentification <a href="http://oauth.net/">OAuth</a> est planifiée pour la version 1.1.0.</p>
<h4 id="gestion-des-papiers">Gestion des papiers</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e676e6965682e6f72672f70617065722d6c6973742e706e67/paper-list.png" alt="List des papiers" title="Source : http://www.gnieh.org/paper-list.png"></p>
<p>Dans un premier temps, un utilisateur connecté a accès à la page de gestion de ses papiers.<br>
Il peut en créer de nouveaux, en supprimer, ou lancer l'édition d'un papier existant.</p>
<p>L'auteur d'un papier peut ajouter d'autres auteurs, qui verront à leur tour le papier apparaître dans leur liste, et pourront commencer à travailler dessus.</p>
<p>Un rôle de relecteur est aussi disponible, qui s'intégrera dans le workflow classique d'une soumission de papier scientifique que nous souhaitons intégrer dans \BlueLaTeX à moyen terme.<br>
Un relecteur a un accès en lecture seule au papier, et pourra par la suite le commenter et l'annoter.</p>
<h4 id="Édition-de-papier">Édition de papier</h4>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e676e6965682e6f72672f70617065722d65646974696f6e2e706e67/paper-edition.png" alt="Édition de papier" title="Source : http://www.gnieh.org/paper-edition.png"></p>
<p>La page d'édition d'un papier est composée d'un éditeur de texte, de la liste des fichiers et ressources du papier (fichiers TeX, BibTeX, images, …) et du rendu du papier compilé en pdf.<br>
L'éditeur propose la coloration syntaxique et les fichier édités sont synchronisés en temps réel entre toutes les personnes connectées travaillant dessus.<br>
Le support de SyncTeX permet de naviguer facilement entre l'éditeur et le pdf compilé, dans les deux sens.</p>
<p>Il est aussi possible de configurer la manière dont le document est compilé, notamment le compilateur à utiliser et l'intervalle entre deux compilations.</p>
<p>Les compilations se font en arrière plan, et ne sont pas lancées par l'auteur du papier.<br>
Cette fonctionnalité est un essai, afin de voir si c'est plus simple et utilisable que l'ancien comportement où la compilation était lancée à l'initiative de l'utilisateur.</p>
<p>Il est possible de charger des images ou autres ressources associées à un papier, ces ressources ne sont pas synchronisées et n'ont pas vocation à être éditées dans le client web.<br>
Si vous souhaitez créer un nouveau fichier synchronisé et éditable, il suffit de passer par l'interface du client web.</p>
<h3 id="comment-qucest-quon-essaye">Comment qu'c'est qu'on essaye ?</h3>
<p>Malheureusement, un <a href="https://github.com/gnieh/bluelatex/issues/53">bug</a> de jeunesse nous empêche de faire une instance de test avec un utilisateur de test pour vous montrer cette bêta, j'espère pouvoir le corriger d'ici la prochaine.</p>
<p>En attendant, si vous souhaitez essayer chez vous, il vous suffit de <a href="https://github.com/gnieh/bluelatex/releases/download/v1.0.0-M1/bluelatex-1.0.0-M1.tgz">télécharger l'archive</a> de cette bêta, de la décompresser sur votre ordinateur, et de lancer la script dans le répertoire <code>bin</code>.</p>
<p>Afin que ça fonctionne correctement, il faut installer les dépendances nécessaires :<br>
- <a href="http://couchdb.apache.org/">couchdb</a> en version 1.2.0 minimum,<br>
- une JVM en version 7 minimum,<br>
- il vous faudra un serveur smtp aussi pour valider l'inscription (<a href="http://nilhcem.github.io/FakeSMTP/">FakeSMTP</a> fait très bien l'affaire),<br>
- et je crois que c'est tout…</p>
<p>Vous pouvez vous rendre sur <a href="http://localhost:8080/web/index.html">http://localhost:8080/web/index.html</a> et tester votre installation.</p>
<p>C'est une première bêta et toute la mécanique pour lancer proprement en démon n'est pas incluse mais devrait venir dans la prochaine.<br>
Cette version n'est évidemment pas faite pour être mise en production mais vous pouvez tester à souhait.</p>
<p>Si vous vous sentez l'âme aventureuse et voulez tester en mode développement, il vous faudra 2 dépendances de plus :<br>
- <a href="http://www.scala-sbt.org/">sbt</a> pour compiler le tout,<br>
- <a href="http://commons.apache.org/proper/commons-daemon/jsvc.html">jsvc</a> pour lancer le serveur de développement en démon.</p>
<p>Si vous avez toutes les dépendances installées, récupérer la dernière version et la lancer devrait être aussi simple que :<br>
```sh<br>
$ git clone <a href="mailto:git@github.com">git@github.com</a>:gnieh/bluelatex.git<br>
$ cd bluelatex<br>
$ sbt</p>
<blockquote>
<p>blueStart<br>
blueStop<br>
```</p>
</blockquote>
<p>Si ce n'est pas aussi simple, un rapport de bug est le bienvenu pour améliorer tout ça.</p>
<p>Pour la prochaine bêta, et la version finale, nous travaillerons à améliorer la documentation de la configuration du serveur, pour le moment c'est assez peu (comprendre pas du tout) documenté.</p>
<h3 id="architecture-globale">Architecture globale</h3>
<p>Sans rentrer dans les détails (loin de là), le serveur est conçu de façon modulaire, permettant d'ajouter ou retirer des fonctionnalités entières.<br>
Par exemple le cœur du serveur, nécessaire pour pouvoir le faire tourner, contient la gestion des utilisateurs et des papiers.</p>
<p>La synchronisation est un module à part car le choix est donné entre notre implémentation du protocole ou l'implémentation originale de mobwrite.<br>
Cette possibilité est donnée afin de pouvoir mieux s'intégrer dans une infrastructure existante qui utilisait l'implémentation originale.</p>
<p>Le module de compilation est complètement optionnel, car il est fort possible d'imaginer un client lourd qui permet aux différents auteurs de synchroniser leur travail, mais de compiler sur leur machine.</p>
<p>De nouveaux modules avec d'autre fonctionnalités sont dans les tuyaux pour les versions à venir, ce sera le moment de vérité afin de voir si notre architecture tient le coup !</p>
<p>\BlueLaTeX est en fait un ensemble de bundles <a href="http://www.osgi.org/Main/HomePage">OSGi</a> qui devrait pouvoir tourner avec n'importe quelle implémentation de la spécification.<br>
Nous utilisons par défaut <a href="http://felix.apache.org/">felix</a>, mais a priori vous devriez pouvoir vous en sortir avec <a href="http://eclipse.org/equinox/">equinox</a>, <a href="http://www.knopflerfish.org/">knopflerfish</a> ou autre.</p>
<h3 id="et-la-licence">Et la licence ?</h3>
<p>Le tout vous est fourni sous licence Apache version 2.0</p>
<h3 id="pour-finir">Pour finir</h3>
<p>Toute idée, tout commentaire, toute critique constructive, tout rapport de bug, toute contribution, sera accueilli avec plaisir.<br>
N'hésitez pas à <a href="https://github.com/gnieh/bluelatex/issues/new">ouvrir un ticket</a> ou à nous rejoindre sur irc à #bluelatex@freenode.</p>
<p>Merci d'avoir pris le temps de me lire, et j'espère que ce projet vous plaira autant qu'il nous occupe, et que nous pourront l'améliorer grâce à vos retours.</p><div><a href="https://linuxfr.org/users/george/journaux/bluelatex-reloaded-sort-en-beta.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102113/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/george/journaux/bluelatex-reloaded-sort-en-beta#comments">ouvrir dans le navigateur</a>
</p>
Lucas
https://linuxfr.org/nodes/102113/comments.atom
tag:linuxfr.org,2005:Diary/34767
2014-02-26T12:06:40+01:00
2014-02-26T12:06:40+01:00
S’il vous plaît... architecture-moi un Kanboard !
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<p><a href="//linuxfr.org/users/0xfg">0xfg</a> nous a fait le plaisir de partager son "gestionnaire de tâches visuel qui permet de gérer facilement des petits projets de manière collaborative" : <a href="http://kanboard.net/">Kanboard</a></p>
<p>Comme il l’explique dans sa <a href="//linuxfr.org/news/kanboard-un-logiciel-libre-pour-gerer-ses-projets-avec-la-methode-kanban">dépêche</a>, la pile logicielle utilisée est :</p>
<blockquote>
<p>D'un point de vue technique, Kanboard est une application web développée en PHP et utilise Sqlite pour enregistrer ses données.</p>
</blockquote>
<p>Avec du vanilla javascript (pas de framework) pour gérer les interactions côté client.</p>
<p>S’ensuit alors une discussion sur la merditude de PHP qui ne peut mener nul part, puisque le langage parfait n’existant pas, on trouverait toujours à redire sur le choix de la techno employée. C’est le but inavoué de ce journal.<br>
Pour autant, sans vouloir argumenter de la supériorité, des manques ou des faiblesses d’un langage par rapport à un autre, on peut tout à fait exprimer ses choix en matière de technologie à utiliser.<br>
Enfin, je vous encourage à argumenter, c’est juste que : c’est horrible, c’est lent, le code est pas beau, c’est quoi <a href="https://www.youtube.com/watch?v=QuGcoOJKXT8">la différence entre un bon <s>chasseur</s>développeur et un mauvais <s>chasseur</s>développeur</a>, ce sont des arguments d’une portée limitée …</p>
<p>Je commence par vous présenter le choix de <a href="http://www.fogcreek.com/">Fog Creek</a> pour son application <a href="https://trello.com/">Trello</a>. C’est <em>assez</em> ressemblant avec Kanboard, même si les finalités ne sont pas les mêmes.</p>
<p>Vous trouverez la démarche et les explications de ce choix sur leur blog : <a href="http://blog.fogcreek.com/the-trello-tech-stack/">Trello Stack</a></p>
<h2 id="serveur">Serveur</h2>
<ul>
<li>
<p><strong><a href="https://fr.wikipedia.org/wiki/Nodejs">node.js</a></strong> parce que :</p>
<ul>
<li>propagation instantanée des mises à jour</li>
<li>gére les évènements coté serveur de façon non blocante</li>
<li>adapté aux applications <a href="https://en.wikipedia.org/wiki/Single-page_application">SPA</a> avec le framework <a href="http://expressjs.com/">Express</a> pour gérer les routes et le middleware <a href="http://www.senchalabs.org/connect/">Connect</a> pour l’auth et la gestion des cookies</li>
<li>
<a href="http://learnboost.github.io/cluster/">Cluster</a> pour gérer les instances nodejs</li>
<li>Le tout écrit en <a href="http://coffeescript.org/">CoffeeScript</a> qui compile vers javascript</li>
</ul>
</li>
<li>
<p><strong><a href="http://haproxy.1wt.eu/">HAProxy</a></strong> pour :</p>
<ul>
<li>la répartition de charge</li>
</ul>
</li>
<li>
<p><strong><a href="http://redis.io/">Redis</a></strong> pour :</p>
<ul>
<li>gérer de façon rapide les données éphémères partagées entre les différentes instances</li>
<li>le <a href="https://fr.wikipedia.org/wiki/PubSub">PubSub</a> pour renvoyer les modifications aux clients</li>
</ul>
</li>
<li>
<p><strong><a href="http://www.mongodb.org/">mongoDB</a></strong> pour :</p>
<ul>
<li>une base de données orientée documents leur permettant de faire tourner différente versions de codes sans avoir à gérer les migrations de schéma que pourraient subir une base de données classique SQL</li>
</ul>
</li>
</ul><p>Il existe de nombreuses solutions NoSQL, ce <a href="http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis">blog</a> vous en propose une comparaison : Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Neo4j vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris</p>
<h2 id="client">Client</h2>
<ul>
<li>
<p><strong><a href="http://mustache.github.io/">mustache</a></strong> pour :</p>
<ul>
<li>le système de micro templating afin de générer le HTML</li>
</ul>
</li>
<li>
<p><strong><a href="http://lesscss.org/">Less</a></strong> :</p>
<ul>
<li>Less est un préprocesseur CSS, ce genre d’outil évite de se répéter dans son code et permet de pallier au manque de CSS tels que les variables ou les calculs.</li>
</ul>
</li>
</ul><p>D’autres solutions existent telles que :<br>
- <a href="http://sass-lang.com/">Saas</a>/<a href="http://compass-style.org/">compass</a><br>
- <a href="http://learnboost.github.io/stylus/">stylus</a></p>
<ul>
<li>
<p><strong><a href="http://backbonejs.org/">Backbone.js</a></strong> pour :</p>
<ul>
<li>gérer les évènements du DOM</li>
<li>regénérer le HTML produit par mustache en cas de changement</li>
</ul>
</li>
<li>
<p><strong><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history">pushState</a></strong> pour :</p>
<ul>
<li>pour executer les changements de pages dans le cadre d’une SPA en conservant la possibilité d’obtenir des liens propres (bookmark) en appelant le controller Backbone.js adéquat</li>
</ul>
</li>
<li>
<p>Pour les mises à jour de l’interface en temps réel :</p>
<ul>
<li>
<a href="http://socket.io/">Socket.IO</a> pour gérer les connections <a href="https://fr.wikipedia.org/wiki/WebSocket">WebSocket</a> dans les navigateurs récents</li>
<li>Du polling AJAX pour les navigateurs plus anciens ou IE ne supportant pas les WebSocket</li>
</ul>
</li>
</ul><p>Le monde des frameworks MVC côté javascript évoluant à un rythme effréné, il est tout à fait envisageable de se tourner vers d’autres solutions :<br>
- <a href="http://angularjs.org/">angularjs</a> (Google)<br>
- <a href="http://emberjs.com/">emberjs</a> (Tilde)<br>
- <a href="http://facebook.github.io/react/">React</a> (Facebook)</p>
<p>Si vous cherchez bien, vous trouverez de nombreuses querelles de clocher concernant ces solutions, comme d'habitude en somme …</p>
<p>J’ai bien compris la démarche de <a href="//linuxfr.org/users/0xfg">0xfg</a> exprimé dans <a href="//linuxfr.org/nodes/101308/comments/1521618">ce commentaire</a> :</p>
<blockquote>
<p>Au départ j'avais hésité à le faire en Python ou en Golang mais finalement je l'ai fais en PHP pour que se soit vraiment simple à installer partout. Quitte à faire un logiciel libre pour soit même autant qu'il serve aux autres également…</p>
</blockquote>
<p>On est donc loin de l’esprit de Fog Creek en ce qui concerne Trello, puisque eux même expliquent que <a href="http://joelonsoftware.com/items/2012/01/06.html">le logiciel n’a pas pour but d’être distribué</a> mais uniquement à être utilisé en solution <a href="https://fr.wikipedia.org/wiki/Logiciel_en_tant_que_service">SaaS</a>.</p>
<p>Disons que je suis curieux et que j’aimerais connaître vos choix sur les briques logicielles que vous affectionnez.<br>
Merci de partager vos connaissances ou réflexions.</p>
<p>Et vous, si vous deviez écrire ce Kanboard de zéro, quels seraient vos choix en matière de langage, framework ou architecture en général ?</p><div><a href="https://linuxfr.org/users/zebul0n/journaux/s-il-vous-plait-architecture-moi-un-kanboard.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101365/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/zebul0n/journaux/s-il-vous-plait-architecture-moi-un-kanboard#comments">ouvrir dans le navigateur</a>
</p>
zebul0n
https://linuxfr.org/nodes/101365/comments.atom
tag:linuxfr.org,2005:Post/33641
2014-02-04T19:49:38+01:00
2014-02-04T19:49:38+01:00
moteur de persistance
<p>Bonjour,</p>
<p>Je suis en manque d'inspiration.<br>
Je voudrais écrire une petite application et je ne sais pas quoi choisir comme mécanisme de persistance.</p>
<p>Mon application doit stocker des listes d'objets tous semblables mais pas forcément simples (ie: avec des compositions et des listes comme attributs).</p>
<p>Mes critères sont :<br>
- embarqué (ie: pas de client serveur)<br>
- utilisable en python et si possible avec d'autres langages (java, shell (donc cli))<br>
- pérenne (ie: que je puisse continuer à lire les données dans quelques temps)</p>
<p>J'ai envisagé : <br>
- SQLite, je suis assez fan du logiciel mais pas trop envie de me coller du SQL (requête, connection, statement, curseur pfff)<br>
- Fichier texte plat (csv ou json, ou autre) : j'aime bien l'aspect interopérable mais pas très scalable et pas vraiment robuste si je veux plusieurs processus écrivain<br>
- CouchDB mais je crois que c'est client serveur et il faut écrire du JS<br>
- MongoDB mais ça me paraît un peu lourd ET client/server<br>
- Redis et j'avais lu ici même que ça existait en embarqué (<a href="http://vedis.symisc.net/">http://vedis.symisc.net/</a>) mais je ne sais pas ce que ça vaut</p>
<p>Quels sont vos suggestions (argumentées si possibles) ?</p>
<p>Merci de vos lumières</p><div><a href="https://linuxfr.org/forums/programmationautre/posts/moteur-de-persistance.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101161/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/programmationautre/posts/moteur-de-persistance#comments">ouvrir dans le navigateur</a>
</p>
steph1978
https://linuxfr.org/nodes/101161/comments.atom
tag:linuxfr.org,2005:News/34813
2013-11-15T16:34:35+01:00
2013-11-15T16:34:35+01:00
Sortie de TYPO3 Neos 1.0 beta1
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr
<div><p>Toute l'équipe du projet est très heureuse d'annoncer la disponibilité de TYPO3 Neos 1.0 beta 1. Neos est un nouveau CMS développé par l'association TYPO3, la même association qui développe TYPO3 CMS (et qui continuera à développer ce CMS historique). Neos ne se veut pas un remplacement de TYPO3 CMS. L'idée à la base du projet est de mettre en place un système de gestion de contenu qui réconcilie enfin les contributeurs / éditeurs avec leur système de gestion de contenu.</p>
<p>Le projet TYPO3 Neos a commencé il y a presque 7 ans. La communauté TYPO3 cumule maintenant plus de 15 ans d'expérience dans le domaine de la gestion de contenu. C'est sur la base de cette expérience que nous avons souhaité repartir de zéro pour proposer un système de gestion de contenu qui redéfinisse les standards du domaine. </p>
<p>TYPO3 Neos est un système de gestion de contenu qui place l'expérience utilisateur au coeur du projet. L'édition du contenu peut se faire "in-place" directement dans la page du site. En supprimant complètement l'abstraction entre l'interface de gestion d'un CMS standard et le rendu du site, l'éditeur est dans une zone de confort qui lui permet de se concentrer sur la rédaction du contenu. D'autres modes d'éditions peuvent être développés pour répondre à des besoins spécifiques. Neos offre par défaut un second mode d'édition "immersif", qui permet de se focaliser sur le contenu, sans être perturbé par la forme.</p>
<p>Cette première version beta représente une étape importante pour l'équipe de développement qui va dès maintenant se concentrer sur la stabilisation du projet afin de livrer une version 1.0 pour le 10 décembre prochain. Vous pouvez utiliser le service Launchr pour tester TYPO3 Neos rapidement. Launchr vous permet d'avoir une instance de Neos fonctionnelle en quelques minutes. Le service est gratuit.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6e656f732e7479706f332e6f72672f5f5265736f75726365732f50657273697374656e742f623533356465323133623333323762623738326364666361376134316534343338396538666433342f6e656f732d626574612e706e67/neos-beta.png" alt="Titre de l'image" title="Source : http://neos.typo3.org/_Resources/Persistent/b535de213b3327bb782cdfca7a41e44389e8fd34/neos-beta.png"></p></div><ul><li>lien nᵒ 1 : <a title="http://neos.typo3.org/" hreflang="en" href="https://linuxfr.org/redirect/88473">Site officiel de Neos</a></li><li>lien nᵒ 2 : <a title="http://www.typo3.org/" hreflang="en" href="https://linuxfr.org/redirect/88474">Site officiel de TYPO3</a></li><li>lien nᵒ 3 : <a title="https://launchr.com/typo3-neos" hreflang="en" href="https://linuxfr.org/redirect/88475">Neos sur Launchr</a></li><li>lien nᵒ 4 : <a title="http://typo3.org/news/article/typo3-neos-10-beta-1-released/" hreflang="en" href="https://linuxfr.org/redirect/88476">L'annonces de la Beta1 sur typo3.org</a></li><li>lien nᵒ 5 : <a title="http://www.youtube.com/watch?v=lbI0Wg_u7Z8" hreflang="en" href="https://linuxfr.org/redirect/88477">Deane Barker parle de Neos</a></li><li>lien nᵒ 6 : <a title="http://www.youtube.com/watch?v=RhOQfnEQ7lc" hreflang="en" href="https://linuxfr.org/redirect/88478">Karen MacGrane parle de Neos</a></li><li>lien nᵒ 7 : <a title="https://www.youtube.com/watch?v=sLHZbL3lSFM" hreflang="en" href="https://linuxfr.org/redirect/88479">Une courte vidéo de présentation de Neos</a></li><li>lien nᵒ 8 : <a title="http://docs.typo3.org/neos/TYPO3NeosDocumentation/Appendixes/ChangeLogs/100-beta1.html" hreflang="en" href="https://linuxfr.org/redirect/88480">La note de release de la beta 1</a></li></ul><div><h2 id="la-philosophie">La philosophie</h2>
<p>Le CMS se positionne comme un CMS léger, les fonctionnalités offertes par le coeur de TYPO3 Neos sont aussi peu nombreuses que possible. L'outil se concentre sur des fonctionnalités génériques pour une gestion de contenus structurés. </p>
<p>La plupart des CMS (TYPO3 CMS, Drupal, …) offrent souvent un nombre de fonctionnalités très importantes, que les intégrateurs doivent désactiver (ou activer) selon les besoins des projets. Sur un projet TYPO3 Neos, on investira du temps pour développer les fonctionnalités métiers nécessaires aux utilisateurs, sans perdre de temps à cacher les fonctionnalités non nécessaires dans le cadre du projet.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6672616d65776f726b2e6465762e6d6f632e6e65742f6561746f6e2e706e67/eaton.png" alt="TYPO3 Neos" title="Source : http://framework.dev.moc.net/eaton.png"></p>
<h2 id="contenus-structurés">Contenus structurés</h2>
<p>Le stockage des données se fait dans un Content Repository (TYPO3CR), très inspiré de certaines spécifications JAVA, mais adapté aux contraintes d'un langage de script comme PHP. Certaines parties du Content Repository ne respectent pas les spécifications, spécialement la gestion des workspaces, ceci afin d'offrir des fonctionnalités qui répondent mieux aux besoins d'une gestion de contenu. L'avantage d'un Content Repository vient de sa capacité à stocker des données très structurées sans avoir besoin d'un schéma relationnel complexe. Un nouveau type de Node peut être configuré simplement dans un fichier YAML et devient directement utilisable sur n'importe quel page. Les Nodes peuvent être imbriqués les uns dans les autres afin de réutiliser au maximum les types d'élément de contenu disponible.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6672616d65776f726b2e6465762e6d6f632e6e65742f737472756374757265642e706e67/structured.png" alt="TYPO3 Neos - Contenu Structurés" title="Source : http://framework.dev.moc.net/structured.png"></p>
<p>Selon les besoins, des contenus relationnels plus traditionnels peuvent être utilisés. TYPO3 Neos se base sur un framework maison, TYPO3 Flow, lui-même basé sur Doctrine pour la partie ORM. D'autres backends existent comme CouchDB.</p>
<h2 id="preview-central">Preview Central</h2>
<p>Pas encore disponible dans la version béta, mais prévu pour la version 1.0, "Preview Central" offre des fonctionnalités avancés pour la prévisualisation du contenu dans différents contextes, par exemple le rendu de la page courante dans un résultat de recherche Google, sur un écran qui affiche les dernières actualités au dessus de la réception, sur un smartphone, … Cette fonctionnalité devrait permettre de créer un environnement cohérent pour permettre à l'éditeur de valider le bon rendu d'un contenu dans les différents contextes ou il sera utilisé / affiché.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6672616d65776f726b2e6465762e6d6f632e6e65742f6c6974746c657072696e7465722e706e67/littleprinter.png" alt="TYPO3 Neos - Preview Central" title="Source : http://framework.dev.moc.net/littleprinter.png"></p>
<h2 id="convention-over-configuration">Convention over Configuration</h2>
<p>Un travail important a été fait pour imposer des conventions et avoir un fonctionnement par défaut le plus intelligent possible. Le développeur peut se concentrer sur le développement de nouvelles fonctionnalités sans perdre de temps dans des fichiers de configuration. L'ensemble du CMS est architecturé comme un framework, même l'interface graphique respecte cette logique de framework.</p>
<h2 id="on-a-besoin-de-retours-de-la-communauté">On a besoin de retours de la communauté</h2>
<p>Maintenant que nous rentrons en phase beta et que l'API est stabilisée, nous avons besoin de retours de la part des utilisateurs. Nous sommes disponibles sur IRC #typo3-neos ou sur les forums / listes de discussion (<a href="http://forum.typo3.org/index.php/f/121/">http://forum.typo3.org/index.php/f/121/</a>). Si vous souhaitez contribuer au projet, on cherche des développeurs PHP et JS, des relecteurs pour la documentation… n'hésitez pas à nous contacter.</p>
<h2 id="et-pour-la-suite-">Et pour la suite …</h2>
<p>Les prochaines évolutions sont nombreuses et nous travaillons déjà sur des fonctionnalités pour faciliter la communication multi-canaux (site web, réseau sociaux, …) ainsi que la gestion du contenu ciblé.</p></div><div><a href="https://linuxfr.org/news/sortie-de-typo3-neos-1-0-beta1.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/100347/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-typo3-neos-1-0-beta1#comments">ouvrir dans le navigateur</a>
</p>
d'O James
palm123
bubar🦥
ZeroHeure
https://linuxfr.org/nodes/100347/comments.atom