Linux (fr)

  • Chronique des dinosaures rétrogrades (Journaux LinuxFR)

    Cher journal,

    Tu te dis que ça fait longtemps qu'on n'a plus entendu parlé des antisystemd (en fait, si mais ça casse mon intro si je le dis). Et bien, ils formanttaient un coup qui va mettre fin à l'adoption à coup sûr, ils proposent de boycotter systemd et de ne plus utiliser que Slackware, seule distribution résistant encore à l'envahisseur1. Dans les arguments, on retrouve certains points plus valides (une mise à jour de systemd demande un reboot, et ça arrive plus souvent qu'une mise à jour de l'init traditionnel2, systemd embarque une bibliothèque de QR code) que d'autres (la conf par défaut n'est pas terrible pour certains cas spécifiques, pour éviter de prendre le plus petit dénominateur commun, il faut utiliser les fonctions qui sont le plus petit dénominateur commun…).

    Et pour ceux qui aiment systemd, une petite nimage.

    PS : Je sais qu'il est encore un peu tôt mais moi le vendredi, je bosse.


    1. on remarquera qu'il doit y avoir un recoupement entre les anti systemd et la FSF vu que dès qu'on propose systemd, on est une mauvaise distribution, Debian et Gentoo sont donc exclues des alternatives. 

    2. même s'il y a un outil qui permet de recharger systemd, s'il crache, on n'est bon pour un reboot matériel, ce qui n'est pas toujours simple sur un serveur à distance. 

    Lire les commentaires

  • PGDay France 2014 - 5 et 6 juin à Toulon (Dépêches LinuxFR)

    Les 5 et 6 juin prochains le PGDay France fêtera les dix ans de la communauté francophone de PostgreSQL ! À cette occasion, la communauté francophone aura le grand plaisir d'accueillir Bruce Momjan, l'un des co-fondateurs et leader du SGBDR open source.

    Le PGDay France 2014 est un évènement de deux jours, composé d'ateliers, de conférences et d'échanges sur le thème de PostgreSQL.

    Que vous soyez DBA, architecte, développeur, administrateur système, chef de projet utilisant PostgreSQL, vous découvrirez des retours d'expérience d'autres utilisateurs, ainsi que des présentations techniques de PostgreSQL, de PostGIS (cartouche spatiale) ou d'autres extensions.

    Rendez-vous à Toulon les 5 et 6 juin !

    Voyez le détail des ateliers et des conférences dans la suite de l'article.

    Cet évènement est organisé par la communauté francophone des utilisateurs de PostGreSQL, avec le soutien de plusieurs entreprises partenaires. Inscrivez-vous dès à présent, et retrouvez les informations complémentaires sur le site PGDay France. Cela sera ainsi l'occasion de rencontrer Bruce Momjan mais aussi les principaux acteurs PostgreSQL en France.

    Le 5 juin, participez aux deux ateliers proposés :

    • atelier Performance Tuning par Bruce Momjan (EnterpriseDB) (en Anglais) ;
    • atelier Supervision avec Julien Rouhaud (DALIBO).

    Le 6 juin, le programme des conférences vous fera découvrir les sujets suivants :

    • PostgreSQL Past, Present and Future par Bruce Momjan (EnterpriseDB) ;
    • 2TB of RAM ought to be enough for anybody, par Jean-Louis Bergamo (Le Bon Coin) ;
    • les nouveautés de PostgreSQL 9.4, par Damien Clochard (DALIBO) ;
    • gestion du cache en lecture / écriture par Cédric Villemain (2ndQuadrant) ;
    • adoption de PostgreSQL dans les grandes entreprises par Jean-Paul Argudo (DALIBO) ;
    • aller plus loin avec VACUUM par Julien Rouhaud (DALIBO) ;
    • carte Sanitaire, carte Universitaire, carte des Cantines Scolaires de Côte d’Ivoire par Solange NIAMKE ;
    • intégrer des données dans PostgreSQL par Dimitri Fontaine (2ndQuadrant) ;
    • la réplication avec PostgreSQL 9.4 par Thomas Reiss (DALIBO) ;
    • principales avancées et nouveautés de PostGIS par Olivier Courtin (Oslandia) ;
    • expérience du 3ème type par Grégoire Hubert (PragmaFabrik).

    Le nombre de places étant limité, nous vous invitons à vous inscrire rapidement !

    Lire les commentaires

  • Sortie de la version 4.9 du compilateur GCC (Dépêches LinuxFR)

    La nouvelle version majeure du compilateur GCC du projet GNU vient de sortir. Écrit à l'origine par Richard Stallman, le logiciel GCC (GNU Compiler Collection) est le compilateur de référence du monde du logiciel libre. Il accepte des codes source écrits en C, C++, Objective-C, Fortran, Java, Go et Ada et fonctionne sur une multitude d'architectures.

    logo GCC

    Dans la suite de la dépêche, vous pourrez découvrir les nouveautés et les optimisations mises en œuvre dans cette version 4.9 de GCC

    Sommaire

    Optimisations générales

    Ubsan

    UndefinedBehaviorSanitizer est un projet initialement développé pour LLVM et qui fait son apparition dans GCC. Il rejoint ainsi ThreadSanitizer et AddressSanitizer qui sont entrés dans GCC 4.8.
    Contrairement à valgrind qui lance le programme dans une machine virtuelle, il s'agit comme pour tous les *Sanitizer d'instrumenter le code binaire généré. UndefinedBehaviorSanitizer détecte les erreurs qui donnent lieu à un comportement indéfini à l'exécution.
    Il s'agit par exemple des divisions par zéro, des erreurs de cast de type non aligné, de valeurs en dehors des bornes représentables par le type (énumérations ou flottants).

    Cette option s'active avec -fsanitize=undefined et elle est disponible pour les langages C et C++.

    Protection de la pile

    Les problèmes de débordement de pile sont un problème récurrent dans les programmes, en particulier avec le langage C qui alloue dans le même espace mémoire les variables locales à une fonction, la sauvegarde des registres et la Pile d'exécution contenant toutes les adresses de retour.

    Une personne mal intentionnée (ou un chercheur en sécurité) peut parfois fournir plus de données que le programme n'est prévu pour en traiter et cela entraîne un écrasement des autres données. En visant soigneusement, on s'arrange alors pour écraser l'adresse de retour avec une valeur soigneusement calculée pour exécuter des commandes non prévues. Le processeur, à la fin de la fonction, pensant revenir à la fonction appelante, va exécuter du code écrit par l’attaquant, qui n'a rien à voir avec le programme d'origine.

    L'idée de base pour se protéger de ce genre de chose est de déposer une valeur secrète juste avant l'adresse de retour, cette valeur est appelée "Canari" à l'image des oiseaux utilisés par les mineurs pour détecter les nappes de gaz. Lorsque la fonction se termine, cette valeur est contrôlée. S'il y a eu débordement, la valeur du "Canari" est écrasée, elle ne correspond plus et le programme est arrêté avant d'utiliser l'adresse de retour corrompue.

    GCC dispose déjà de deux fonctions permettant de mettre un tel mécanisme en place.

    L'option -fstack-protector-all comme son suffixe l'indique, provoque l'ajout d'un canari pour tous les appels de fonction. Cet ajout est coûteux car il y a plus d'instructions à exécuter, le code est plus long et va diminuer l'efficacité des différents caches.

    L'option -fstack-protector provoque l'ajout d'un canari sur toutes les fonctions qui contiennent une variable locale de type chaîne de caractères prévue pour 8 octets ou plus (8 étant paramétrable avec l'option --param=ssp-buffer-size=N). Cette option est nettement moins coûteuse, mais laisse pas mal de trous.

    Les ingénieurs de Google ont donc développé une troisième alternative appelée -fstack-protector-strong pour améliorer la couverture des canaris sans avoir à l'ajouter à toutes les fonctions d'un programme. Elle est déjà utilisée avec succès dans Chrome OS depuis au moins 10 mois. Par rapport à -fstack-protector, cette option protège également plusieurs autres situations à risque :

    • toutes les fonctions qui utilisent des variables locales contenant des tableaux (En C, tous les tableaux sont susceptibles de déborder par rapport à la taille allouée, les chaînes de caractères n'en sont qu'un cas particulier), y compris si le tableau est dans une structure ou une union ;
    • toutes les fonctions qui utilisent un pointeur vers une autre variable (l'adresse d'une autre variable) ;
    • et toutes les fonctions qui stockent des variables dans les registres.

    La version 3.14 du kernel Linux a été également modifiée pour permettre de le compiler avec les différentes options (il n'y a pas d'option pour -fstack-protector-all) :

    • CONFIG_CC_STACKPROTECTOR_NONE n'utilise pas de canaris;
    • CONFIG_CC_STACKPROTECTOR_REGULAR (anciennement CONFIG_CC_STACKPROTECTOR) pour -fstack-protector
    • CONFIG_CC_STACKPROTECTOR_STRONG pour -fstack-protector-strong

    Ingo Molnar a mesuré quelques valeurs par rapport à l'usage de ces options (ces valeurs ne sont pas absolues et dépendent bien évidement de la configuration générale du kernel) :

    • -fstack-protector augmente la taille du kernel de 0.33% et protège 2.81% des fonctions ;
    • -fstack-protector-strong augmente la taille du kernel de 2.4% mais protège 20.5% des fonctions.

    Bien que cette méthode ne soit pas parfaite, elle bloque un nombre significatif de problèmes de sécurité dans les applications. Comme toutes ces méthodes, elle a le double désavantage de faire payer à tous les utilisateurs les éventuels bugs de sécurité des applications et de ne pas inciter à la correction de ces problèmes. On peut s'attendre à ce que dans le futur, un certain nombre de distributions soient compilées avec cette option.

    Pour aller plus loin :

    Améliorations LTO

    La technique LTO (pour Link Time Optimization) qui a été introduite dans GCC 4.5 reçoit encore une fois son lot d'améliorations incrémentales.
    Cette fonction LTO permet des passes d’optimisations supplémentaires lors de l’édition des liens au prix d'un temps de compilation et d'une empreinte mémoire largement augmentés.

    La version 4.9 de GCC vise à réduire ces coûts afin de permettre une utilisation plus aisée par les distributions. On note en particulier une réécriture de l'algorithme de « type merging », un travail sur les méthodes virtuelles afin de les éliminer le plus tôt possible, un chargement du corps des fonctions à la demande et un déchargement le plus tôt possible.
    Tout ces patchs (et les nombreux autres non cités) constituent une importante amélioration globale de LTO et suppriment des goulets d'étranglements qui existaient dans les versions précédentes de GCC.

    Selon les notes de version, l'occupation mémoire d'une compilation LTO de Firefox (avec les symboles de debug) passe ainsi de 15 Go à seulement 3,5 Go. Le temps passé à faire l'édition des liens dégringole quant à lui de 1 700 secondes à 350 secondes.

    Point important à noter, plusieurs patchs ont été proposées à Linus afin d'intégrer la possibilité de compiler le noyau en mode LTO. Ces patchs sont écrits par Andi Kleen et Michal Marek et ont été proposées pour le futur noyau 3.15.
    Linus a jugé que ces patchs étaient encore trop expérimentaux et a demandé des tests prouvant qu'une compilation LTO du noyau apportait vraiment des bénéfices :

    So I think I'll let this wait a bit longer, unless people start talking about the upsides.
    How much smaller is the end result? How much faster is it? How much more beautiful is it? Does it make new cool things possible? Are those cool things really close on the horizon and really want this merged even though it's not really quite ready yet?
    So please: convince me.

    Après divers échanges sur la LKML il s'avère que, pour l'instant, la fonction LTO de GCC n’apporte que peu de bénéfices en terme de performances sur un projet déjà extrêmement optimisé comme l'est le noyau. En revanche on observe une réduction de la taille finale du noyau ce qui intéresse les gens travaillant dans l'embarqué.
    Andi Kleen ajoute également que les benchmarks utilisés sont peu sensibles aux performances du compilateur et qu'on sous-estime généralement le gain apporté par LTO.

    Langages

    ISO C11

    Le support de la norme C11 s’améliore encore dans cette version 4.9 de GCC. On note en particulier l'arrivée des types _Atomic, _Generic ainsi que de _Thread_local.
    Cette norme C11 est maintenant considérée comme aussi bien supportée que l'ancienne C99

    C++1y

    On retrouve dans cette nouvelle mouture de GCC plusieurs nouveautés concernant le support de la future version de C++ (connue sous le nom de C++14).
    Le récapitulatif est disponible sur cette page mais on peut citer les polymorphic lambdas (N3649) ou encore la déduction automatique du type de retour d'une fonction (N3638).

    Plus anecdotique on peut maintenant séparer de longs nombres par une simple quote afin d'améliorer la lisibilité.
    On aura ainsi :
    int j = 1'048'576'752'870;

    au lieu de :
    int j = 1048576752870;

    OpenMP

    GCC 4.9 apporte le support de la version 4.0 de l'interface de programmation OpenMP.
    OpenMP 4.0 est sorti en fin d'année 2013 avec beaucoup de nouveautés notamment en terme de support des accélérateurs ou des directives SIMD. La branche GOMP 4.0 de GCC qui suivait l'évolution de la norme et a permis son inclusion rapide dans la branche principale de GCC.

    Une nouvelle option -fopenmp-simd permet d'activer le support des directives SIMD d'OpenMP sans avoir à suivre les autres directives. Il est également possible de régler plus finement le modèle utilisé pour évaluer le coût de vectorisation des boucles de code. Il suffit de passer l'option -fsimd-cost-model= avec l'une de ces trois valeurs : unlimited, dynamic, cheap.

    Rappelons que le support OpenMP est une des grandes différences qui distinguent encore GCC et LLVM/Clang puisque LLVM ne propose aucun support OpenMP dans sa branche principale.

    Architectures

    AArch64

    Avant la déferlante attendue des processeurs ARM 64 bits on note que GCC 4.9 améliore encore sa couverture de l'ISA ARMv8 avec le support des fonctions intrinsèques crypto et CRC mais aussi l'amélioration des performances des intrinsèques de vectorisation SIMD.

    Le backend AArch64 profite également de l'activation de la passe d'optimisation REE (Redundant extension elimination) ainsi que de du LRA (local register allocator).
    Le réglage fin de la génération du code émis par GCC est amélioré pour les coeurs de processeur Cortex-A53 et Cortex-A57. Il est également possible d'indiquer au compilateur que l'on vise une architecture de type big.LITTLE via l'option -mcpu=cortex-a57.cortex-a53.

    POWER8

    Le titanesque et surpuissant POWER8 d'IBM est maintenant supporté par GCC 4.9 via l'option -mcpu=power8.
    GCC a également été modifié afin de supporter le module HTM (Hardware Transactional Memory) de ces nouveaux processeurs POWER8. C'est dans la bibliothèque libitm qu'a été ajouté un fastpath qui profite à fond des circuits spécialisés présents dans le processeur.

    Extension AVX512

    Les futurs processeurs Intel Xeon Phi Knights Landing et les Intel Core de la génération Skylake ont beau n'être prévus que pour 2015 ou 2016, cette version 4.9 de GCC supporte déjà l'extension AVX512 qui sera incluse dans leurs coeurs de calcul.
    AVX-512 est une extension complexe puisqu'elle propose un coeur obligatoire (AVX-512 Foundation) et plusieurs options (Conflict Detection Instructions, Exponential and Reciprocal Instructions, Prefetch Instructions) qui seront activées ou pas selon la gamme de processeur.

    GCC 4.9 prend en charge toutes ces extensions (le code assembleur, les intrinsèques, l'autovectorisation) qui s'activent via différentes options (par exemple -mavx512f pour AVX-512 Foundation).

    En bref

    • La colorisation automatique des diagnostics émis par le compilateur est maintenant disponible. L'option -fdiagnostics-color=auto permet ainsi de visualiser plus facilement les warnings ou les erreurs ainsi que l'emplacement exact du problème.

    • GCC 4.9 supporte maintenant la version 1.2.1 du langage Go (il s'agit de la toute dernière version sortie le 3 mars).

    • On trouve également dans GCC 4.9 le support de Cilk Plus, l'extension de C et C++ créé par Intel afin de faciliter l'écriture de code parallèle. L'utilisation se fait via l'option -fcilkplus et suit la version 1.2 de l'ABI Cilk Plus.

    • La bibliothèque d'exécution (runtime librairie) pour le langage C++ se nomme libstdc++ et elle a reçu diverses améliorations dans cette nouvelle version de GCC. Outre les nombreux changements liés au support du futur C++14 (par exemple std::exchange(), std::make_unique ou encore std::shared_lock) l'ajout le plus notable est le support de <regex> qui fait partie des nouveautés introduites par C++11.

    • De nouvelles options font leur apparition afin d'optimiser le code pour des processeurs récents ou à venir.
      On trouve ainsi -march=silvermont pour le nouveau coeur Atom avec exécution out-of-order, -march=broadwell pour la déclinaison 14 nm de l'architecture Haswell ou encore -march=bdver4 pour les futurs coeurs Excavator d'AMD.

    Suivre le développement de GCC

    Si vous voulez suivre le développement de GCC, sans nécessairement vous plonger dans le détail des commits ou des annonces sur les listes de diffusion, un bon moyen est de suivre le blog de Nick Clifton. Ce développeur GCC propose presque chaque mois une synthèse des nouveautés de la chaine de compilation GNU.
    Lire rétrospectivement les articles concernant GCC 4.9 permet de mieux mesurer tout le travail et les ajouts qui sont incorporés dans cette version :

    Lire les commentaires

  • Garradin 0.6 — Gestion d'association, maintenant avec les cotisations (Dépêches LinuxFR)

    Garradin est un logiciel libre de gestion d'association développé depuis 2 ans. Il se veut être la solution de gestion de petite et moyenne association la plus complète et la plus simple à utiliser. Il permet la gestion des adhérents et des cotisations, la tenue d'une comptabilité en partie double et l'envoi de courriels entre membres ou à tous les membres. Mais il contient aussi un wiki complet, comprenant la possibilité de chiffrer les pages, ainsi qu'un site web simple mais puissant grâce aux squelettes "à la SPIP".

    Il est léger, rapide et ne demande aucune configuration pour être installé sur n'importe quel hébergeur supportant PHP 5.4 ou plus (tout est stocké dans une base de données SQLite).

    Cette nouvelle version 0.6 fait suite à un an de développement et apporte de nombreuses fonctionnalités très attendues (listées ci-dessous).

    Mais un des changements les plus importants est l'ouverture du service commercial Garradin à destination des associations qui ne veulent pas ou ne peuvent pas installer Garradin sur leur propre serveur. Ce service devrait permettre de pérenniser les efforts investis sur le logiciel afin de financer le poste du développeur principal. C'est ainsi une formule semblable à beaucoup de logiciels libres qui a été choisie : un service payant sans installation pour accompagner le logiciel libre.

    Ce service est disponible sur le site http://garradin.eu/ pour un tarif de 42 € par an.

    Cela ne change rien au développement de Garradin, qui reste un logiciel libre sous licence AGPLv3, garantissant ainsi de reverser toute modification effectuée pour le service commercial.

    Principales nouveautés

    Gestion des cotisations

    Cotisations

    La gestion des cotisations a été complètement réécrite, l'implémentation originale étant trop simpliste pour être utile.

    • Les cotisations sont maintenant distinctes des catégories de membres pour plus de flexibilité ;
    • gestion fine des cotisations : possibilité de définir des cotisations pour une période fixe (année scolaire par exemple), de date à date (sur une durée à choisir), ou ponctuelle ;
    • suivi et historique des cotisations des membres ;
    • inscription automatique des cotisations dans la comptabilité ;
    • création de rappels automatiques de cotisation par e-mail (le délai avant rappel et le texte sont personnalisables) ;
    • envoi automatique par e-mail de rappels pour les cotisations ;
    • suivi manuel des rappels effectués par téléphone ou courrier.

    Comptabilité

    • Liste des opérations créées par un membre (pour suivre qui fait quoi) ;
    • recherche par requête SQL ;
    • amélioration de la clôture d'exercice : création d'un nouvel exercice automatiquement, possibilité de "découper" l'exercice courant pour répartir les écritures postérieures à une date sur un nouvel exercice, création automatique des reports à nouveau ;
    • graphique de la répartition des dépenses et recettes.

    Pour les geeks

    • Plugins : il est maintenant possible d'adjoindre des plugins à Garradin, pour le moment seul un plugin de test est disponible mais la documentation pour développer de nouveaux plugins est sur le site du projet.
    • Version hors ligne : Garradin peut maintenant être utilisé sans connexion à Internet. Un paquet Debian/Ubuntu à installer permet de disposer d'une version locale de Garradin.
    • Début du développement des tests automatisés des fonctionnalités.
    • Éditeur de code intégré (en Javascript) pour l'édition des squelettes du site public.

    Divers

    • Amélioration design et compatibilité IE8.
    • Possibilité de se connecter en utilisant un autre champ que l'adresse e-mail.
    • Import de membres en CSV.
    • Import de membres depuis Galette.
    • Indicateur de niveau de sécurité du mot de passe.
    • Nouveau design par défaut du site public.

    Et encore beaucoup de corrections de bugs et diverses améliorations.

    La prochaine version se concentrera sur la mise à disposition d'un porte-documents permettant d'archiver et partager des fichiers entre adhérents. Ainsi il sera possible d'archiver une facture avec une écriture comptable, un scan d'autorisation parentale dans une fiche membre, etc.

    Lire les commentaires

  • Deux mois après, le fork d'Ampache fusionne avec l'original (Journaux LinuxFR)

    Ampache est un serveur de diffusion de musique. Alors que le projet semblait à l'abandon (pas de releases, pas de commits, plus de site web), un fork nommé Ampache Doped a secoué cette communauté, recevant des echos plutôt positifs. Après quelques releases, voilà que Ampache Doped et le projet original Ampache fusionnent à nouveau:

    This project was merged with Ampache project.

    Happy end ? Apparement, puisque le développement a repris sur le dépot Git de Ampache.

    Apanage du libre, parfois décrié, banalisé notamment par Github, le fork semble parfois nécessaire pour revitaliser des projets au potentiel inexploité.

    Lire les commentaires

  • Héberger son courriel lorsque celui-ci est classé en tant que spam (Journaux LinuxFR)

    Suite à la dépêche Héberger son courriel j'avais tenté l'expérience et il faut avouer que ce ne fut pas vraiment facile.

    Voici donc un projet intéressant qui devrait permettre un déploiement rapide : Mail-in-a-Box.

    À noter aussi la série d'articles sur le sujet de Ars Technica :
    How to run your own e-mail server with your own domain, part 1
    Taking e-mail back, part 2: Arming your server with Postfix and Dovecot
    Taking e-mail back, part 3: Fortifying your box against spammers
    Taking e-mail back, part 4: The finale, with webmail & everything after

    De mon côté suite à l'expérience d'hébergement de mon courriel, mes courriels sont parfois classés en tant que spam par Gmail malgré SPF+ADSP+DMARC (je soupçonne l'adresse IP de mon kimsufi).
    J'avoue que je ne sais pas si j'aurai le courage de maintenir la chose sur le long terme. La gestion des spams reçus, la maintenance/protection du serveur, et la problématique de la classification des courriels envoyés en tant que spam, cela commence à faire beaucoup.

    Je suis un peu partagé entre le désir d'indépendance et de problématique de vie privée (Arrest of secret-leaking ex-Microsoftie raises Hotmail privacy concerns) et le côté critique d'une bonne gestion de ses courriels (je pense que très peu de mes contacts regardent leur boîte à spam).

    Je n'ai pas les moyens de m'offrir un administrateur de serveur pour gérer ce genre de choses, donc je n'ai que trois options :

    1. se faire une raison sur sa vie privée et partir sur les offres gratuites Gmail, Yahoo, Hotmail…
    2. me retrousser les manches et gérer moi-même
    3. payer et espérer que l'entreprise respecte sa part du contrat

    Pour la 3e option j'ai repéré Fastmail qui semble être une boîte sérieuse (même si la question se pose sur leurs serveurs basés aux USA : FastMail’s servers are in the US: what this means for you) et qui gère bien l'IMAP, a une interface web agréable et une bonne gestion des spams, etc.

    J'anticipe deux remarques que l'on pourrait me faire :

    • Je n'ai aucun soucis avec l'entreprise si celle-ci donne l'accès à mes courriels si la demande est légitime (i.e. avec l'aval de la justice dans le cadre d'une enquête). Donc je n'ai pas trop regardé les entreprises du genre Hushmail, ShazzleMail ou MyKolab.
    • J'ai bien lu attentivement le sondage d'il y a deux ans mais je n'ai pas vraiment trouvé de fournisseurs qui sortaient du lot : Quel fournisseur de courrier électronique utilisez-vous ?

    Donc pour un particulier ou pour une PME, je serai curieux d'avoir le retour d'expérience pour ceux ayant adopté l'option 2 et 3. Merci !

    Lire les commentaires

  • Full Disclosure, le retour (Journaux LinuxFR)

    Il y a peu, Xavier nous apprenait que Full Disclosure, c'est fini.

    Pourtant, devant les mouvements générés par cette annonce, une part de la communauté s'est organisé, et Full Disclosure a un nouveau départ.

    Fyodor reprend donc le flambeau de John Cartwright pour colporter les idéaux d'une sécurité transparente, jusque dans la publication des nouvelles failles.

    Longue vie à Full Disclosure, et n'hésitez-pas à vous inscrire si vous l'étiez sur l'ancienne.

    Lire les commentaires

  • La communauté francophone OpenSUSE endeuillée par la mort de Jluce (Journaux LinuxFR)

    Nous venons d'apprendre la mort tragique de jluce, acteur actif de la communauté SUSE et OpenSUSE en France et dans les pays francophones en général.

    Le site Alionet, qui était son bébé, en est le plus touché.

    Jluce avait également écrit de nombreux journaux sur Linuxfr.

    Ici l'annonce de sa mort : Information

    A 40 ans, jluce était une figure très appréciée dans la communauté et a beaucoup contribué sur diverses formes. Je tenais à lui rendre un hommage pour tout ce qu'il a pu faire et j'adresse à sa famille et à ses proches toutes mes condoléances.

    Lire les commentaires

  • Quelles alternatives libres à Dropbox ? (Dépêches LinuxFR)

    La société Dropbox a accueilli une nouvelle personne à son conseil d'administration : Condoleezza Rice, conseillère à la sécurité nationale de l'ère Bush et connue pour avoir approuvé des écoutes illégales. Confier ses données à une entreprise requiert une grande confiance et Dropbox vient de perdre la confiance de beaucoup d'utilisateurs. Dropbox s'est empressé d'affirmer que sa stratégie de protection des données reste inchangée.

    Dropbox

    Si comme beaucoup vous décidez d'abandonner Dropbox, pourquoi ne pas passer à un logiciel libre pour gérer et stocker la mise à disposition de fichiers ? De nombreuses solutions existent, avec serveur ou en peer-to-peer.

      Avec serveur

      Avec ces solutions, l'idéal est d'avoir son propre serveur. Pour ceux qui n'ont pas l'inclination de maintenir un serveur, des offres d'hébergement payantes et gratuites sont souvent disponibles. Choisissez un hébergeur en lequel vous avez confiance, dans un pays respectueux de vos libertés. Une fois que le serveur est en place, il suffit de s'y connecter avec le logiciel client.

      • Owncloud, qui requiert un serveur OwnCloud. Nombreuses offres d'hébergements à travers toute l'Europe. Beaucoup de fonctionnalités annexes, ce qui peut être un inconvénient. GNU-AGPLv3 pour le serveur, GNU-GPLv3 pour Linux/Windows/Mac/Android, licence MIT pour iOS.
      • Seafile, qui requiert un serveur dédié. GNU-GPLv3. Linux/Windows/Mac/Android/iOS.
      • Pydio (anciennement Ajaxplorer), qui est écrit en Javascript et PHP. Nécessite un serveur Web quelconque avec PHP5 dont les extensions MCrypt et GD. Simple à mettre en place. C'est un projet qui semble dynamique, plutôt ergonomique. GNU-AGPL. Linux/Windows/Mac.
      • SparkleShare, qui requiert un serveur Git. Idéal avec de petits fichiers, notamment pour les grandes équipes qui veulent un historique complet. GNU-GPLv3. Linux/Mac/Windows.
      • git-annex assistant, aussi basé aussi sur Git mais mieux équipé pour les gros fichiers. GNU-GPLv3. Linux/Windows/Mac/Android. Ne nécessite pas forcément de serveur central.
      • Syncany, qui requiert un serveur FTP ou WebDAV. GNU-GPLv2. Linux/Windows/Mac.
      • CmisSync, qui requiert un serveur de GED. Adapté aux entreprises qui disposent déjà d'un serveur Alfresco, Nuxeo, SharePoint ou autre. GNU-GPLv3. Linux/Windows/Mac.
      • Unison, qui nécessite une configuration en étoile, avec un "hub" au centre. Unison a l'avantage d'exister depuis longtemps, mais il souffre d'une certaine vétusté, il est difficile à mettre en place pour un utilisateur lambda et son code source en OCaml n'attire pas foule de développeurs. GNU-GPLv3. Linux/Windows/Mac.
      • NdM : On nous signale Cozy dans les commentaires. En plus du gestionnaire de fichiers, ce cloud perso s'accompagne d'autres applications comme un carnet de contacts, un calendrier, un lecteur de flux RSS

      En peer-to-peer

      Si votre smartphone est allumé la plupart du temps, vous n'avez pas vraiment besoin d'un serveur. Le logiciel non-libre BitTorrent Sync l'a compris et connait actuellement un succès phénoménal qui lui vaut le surnom de Dropbox-killer. Des solutions Open Source existent aussi, pour l'instant loin de rivaliser (en particulier, pas d'application pour smartphone).

      Le principe est de créer un "secret" sur l'appareil contient le répertoire à partager, puis renseigner ce secret sur chaque appareil à connecter.

      • Tahoe-LAFS est volontairement axé sur la sécurité des données, non seulement du point de vue de la disponibilité (en faisant en sorte que vos données soient suffisamment réparties), mais également du point de vue de la confidentialité (tout est chiffré, seules les personnes qui obtiennent un lien direct ont accès aux données en clair). L'organisation d'un groupe de pairs se fait typiquement sur les relations de confiance entre plusieurs humains qui veulent collaborer ensemble. GNU-GPLv2. Linux.
      • syncthing dont le but affiché est d'être un équivalent Open Source de BitTorrent Sync, codé en Go. Comme BitTorrent Sync, le client est une interface web locale. Licence MIT. Linux/Windows/Mac.
      • ClearSkies, la même chose en C++. GNU-LGPLv3. Seulement au stade de prototype, client basique en Python.
      • Hive2Hive qui se concentre pour l'instant sur sa bibliothèque. Licence MIT. Pas de client.

      Lire les commentaires

    • Un clone de la Raspberry Pi avec réseau 1 Gb et port SATA (Journaux LinuxFR)

      Bonjour.

      Une nouvelle carte est dispo : la Banna Pi. Un peu plus chère que la Raspberrty Pi, mais dispose de composqants plus performants, ainsi que d'un port SATA en supplément. Voicvi les principales caractéristiques de cette carte :

      • CPU : Allwinner A20 double coeur 1 GHz.
      • 1 Go de Ram.
      • lecteur de cartes SDXC
      • sortie HDMI
      • sortie composite
      • un port LVDS
      • port jack 3.5 mm.
      • 2 ports USB 2.0
      • Entrées/sorties déclarés compatibles "Raspberry Pi"(GPIO, etc …).
      • port Ethernet Gigabit,
      • un port SATA et
      • un capteur infrarouge,

      L'alimentation se fait via un MicroUSB

      Plus d'infos sur http://www.lemaker.org/ ainsi que sur l'annonce de minimachines.net : http://www.minimachines.net/actu/banana-pi-clone-raspberry-pi-framboise-peu-chere-17295

      Lire les commentaires

    • Le libre au festival coquelicot (Journaux LinuxFR)

      Bonjour, Nal,

      Je t'écris pour faire de la pub. En effet, la 7ieme édition du festival « Coquelicot » se déroulera à Coupelle Vieille, dans le Pas de Calais, le jeudi 8 Mai 2014, sur le domaine de la Traxène.

      En rassemblant des exposants sélectionnés, engagés dans la consommation responsable et biologique, Coquelicot s'impose comme un grand rendez-vous de printemps d'un style de vie qui allie respect de l’Homme et de la planète. C’est entre 1500 et 2000 visiteurs qui passeront sur l’événement.

      Invité par les organisateurs, nous souhaitons monter un « espace libre » où les visiteurs pourront découvrir une vision de l'informatique respectueuse de ses utilisateurs. L'April sera présente avec un stand, aux cotés d'autres associations du libre.

      Si vous souhaitez participer à l'animation du stand, n'hésitez pas à vous inscrire sur notre wiki : http://wiki.april.org/w/Coquelicot2014

      Si vous souhaitez être présent pour faire découvrir votre association ou votre mouvement autour du libre, n'hésitez pas à me contacter (fpoulain chez april point org), ou à contacter Aurore Rousseaux (equipe chez apetitspas point net).

      Lire les commentaires

    • Taxonomie des attaques Heartbleed (Dépêches LinuxFR)

      Pour ceux qui se demandent encore si ils doivent vraiment changer leurs mots de passe suite à l'affaire Heartbleed, qui veulent comprendre pourquoi il ne fallait pas le faire trop tôt, ou qui n'ont pas vérifié si leur navigateur détecte les certificats révoqués, l'article Taxonomie des attaques Heartbleed recense et explique schématiquement les diverses attaques rendues possibles par le bug, y compris contre les logiciels clients (reverse heartbleed), Tor et les VPN.

      logo Heartbleed

      « Heartbleed » est une des pires failles qui soient arrivées à la sécurité sur Internet. À cause d'elle, les pirates ont pu ou peuvent obtenir des données confidentielles sans avoir besoin d'intercepter les échanges. Après les premières réactions centrées sur la mise à jour des serveurs web vulnérables, la révocation des certificats et le renouvellement des mots de passe, il a fallu quelques jours de plus pour comprendre que la faille Heartbleed affecte également les logiciels clients, les échanges SSL/TLS autres que HTTPS, et une multitude d'appareils embarqués qui ne recevront jamais de mise à jour logicielle.

      Plus de détails dans la suite de la dépêche.

      Scénarios d'attaques et contre-mesures :

      • Extraction de données sensible depuis un serveur HTTPS vulnérable
      • Extraction de données d'authentification depuis un serveur HTTPS vulnérable
      • Détournement de session sur un serveur HTTPS vulnérable
      • Extraction de la clé privée SSL d'un serveur HTTPS vulnérable>
      • Déchiffrement d'interceptions anciennes
      • Déchiffrement d'interceptions récentes
      • Imitation de sites sécurisés
      • Extraction de données depuis un navigateur HTTPS vulnérable, par phishing
      • Extraction de données depuis un navigateur HTTPS vulnérable, via des liens tiers
      • Extraction de données depuis un aspirateur d'URL vulnérables
      • Analyse et corrélation de trafic Tor
      • Identification de serveurs cachés et d'utilisateurs par des noeuds Tor hostiles
      • Attaques contre les services VPN
      • Attaques contre les proxys HTTPS vulnérables

      Au delà de HTTPS, de nombreux services et protocoles basés sur SSL/TLS risquent d'être touchés par la faille Heartbleed :

      • le système sécurisé de noms de domaine DNSSEC ;
      • des tiers de confiance d'horodatage ou de notarisation, où les clés privées sont utilisées à des fins de signature plutôt que de chiffrement ;
      • des systèmes de téléchargement automatique de mises à jour de logiciels ;
      • les protocoles d'authentification RADIUS, Diameter, etc ;
      • le courriel avec SMTPS, POP3S, IMAPS ;
      • la voix/vidéo sur IP avec SIPS ;
      • des systèmes de monnaie électronique et des applications de porte-monnaie ;
      • des infrastructures de développement open-source (git).

      NdM : voir aussi les journaux sur l'émission 14h42, la sélection du meilleur des journalistes, le fork d'Openssl par OpenBSD, etc. Et d'autres liens comme Heartbleed : des cas français existent et les banques ne sont pas épargnées (NextINpact), HeartBleed : une chance qu'OpenSSL soit un logiciel libre ! (April). la réaction de la CNIL, les recommandations de l'ANSSI, Bug Heartbleed, vers un ralentissement mondial du Web ? (ZdNet), etc.

      Lire les commentaires

    • Ayé, Transmageddon 1.x est arrivé dans Debian Sid ! (Journaux LinuxFR)

      Transmageddon, un outil de transcodage de vidéos pour GNOME — et même dorénavant de rip de DVDs, qui sait donc pour l'occasion prendre en charge les pistes audio multiples — est sorti récemment en version 1.0 (et encore plus récemment en version 1.1)

      Les deux versions ont rapidement été disponibles sous Debian Sid. Toutefois, pour pouvoir lancer l'application, il faut installer manuellement le paquet gir1.2-gudev-1.0 en attendant que le problème soit réglé.

      Transmageddon repose sur GTK+3.x et GStreamer 1.x (et donc profite de l'accélération matérielle quand elle est disponible).

      Interface de Transmageddon

      J'aime quand les choses sont simples et puissantes :)

      À côté de toutes ces bonnes choses, je regrette l'ancienne icône.

      *Transmageddon 1.0 released! sur le blogue de Christian Schaller
      *Journal des nouveautés

      Lire les commentaires

    • Réunion sur IRC pour le projet Bépo (Journaux LinuxFR)

      Bonjour nal,

      Trouvant un peu longue l’hibernation de la communauté qui fait tourner le site web et les services du projet Bépo (Wiki, Forum, Liste de diffusion, canaux IRC, etc), j’ai décidé d’organiser une réunion sur le canal IRC #bepo ou #ergodis, je ne sais pas encore.

      Pour le choix de la date, j’ai créé un sondage sur Framadate. N’hésitez pas à indiquer vos disponibilités si vous souhaitez y participer.

      Vous pouvez également vous tenir au courant sur la page de la communauté.

      Si vous êtes utilisateur du Bépo, peut-être avez-vous envie d’aider un peu le projet?

      Lire les commentaires

    • Concours de programmation CodinGame le 26 avril 2014 (Dépêches LinuxFR)

      La prochaine édition de CodinGame, le challenge de code en ligne, aura lieu ce samedi 26 Avril 2014 à 18h (heure française).

      L'événement accueillera des développeurs du monde entier pour leur permettre de passer un bon moment, défier leurs pairs, gagner des prix ou entrer en contact avec des sociétés qui leur plaisent et qui recrutent.

      Skynet Revolution Coding Challenge

      Parmi les nouveautés sur la plate-forme :

      • Clojure est ajouté aux langages disponibles ;
      • l'autocomplétion est activée pour C# et Python ;
      • le thème de cette édition est « Skynet Revolution » : Vous êtes John Connor. Votre objectif : détruire Skynet. Votre arme : le code.

      L'objectif du challenge : résoudre deux problèmes de programmation dans le langage de son choix parmi les 19 proposés (C/C++, C#, Java, Javascript, PHP, Python, Python 3, Perl, Go, Dart, Scala, Haskell, Objective-C, Pascal, Ruby, Bash, Groovy et Clojure). La durée moyenne estimée de l'épreuve est de 2h30.

      Modalités de participation : c'est en ligne, c'est gratuit, et c'est anonyme pour ceux qui ne souhaitent pas communiquer leurs coordonnées. L’environnement de développement proposé donne accès à un éditeur de code et un shell Bash, pour lancer son programme depuis le navigateur.

      Comme d'habitude, le règlement prévoit que le code source des participants soit rendu public sous licence libre GPL v3 et affiché sur le site dès la fin du concours, pour que tout le monde puisse apprendre et progresser en consultant les solutions des autres.

      Lire les commentaires

    • Prototypo, ou comment devenir typographe en quelques clics (Dépêches LinuxFR)

      Qui n'a jamais été dans la situation où il ne trouvait pas exactement la police d'écriture qu'il cherchait, et surtout compatible multi-suppports, multi-applications ? Malgré le nombre de polices disponibles (gratuites ou non), il y a souvent toujours un détail qui vient entacher un choix. Malheureusement, la création d'une nouvelle police n'est pas chose aisée car cela demande de suivre un minimum de règles typographiques afin d'éviter certaines catastrophes visuelles…

      Campagne de financement

      Imaginez donc une application « WYSIWYG » (What You See Is What You Get) vous permettant de jouer au typographe en herbe sans avoir à vous soucier des bases de la typographie, le tout pouvant être exporté sous différent formats : c'est ce que propose Prototypo.

      Le projet, actuellement en phase de développement, a lancé le 9 avril dernier une campagne de financement participatif sur Kickstarter afin d'accélérer son développement ainsi que prendre la température sur les fonctionnalités les plus attendues par la communauté.

      Prototypo est un projet open-source sous licence AGPL dont le but est de fournir une application en ligne permettant de contrôler la conception d'une police à l'aide d'un large choix de paramètres typographiques (plus d'une vingtaine) afin de gérer la forme des lettres, le tout avec sa souris, simplement.

      Yannick Mathey (le designer) et Louis-Rémi Babé (le codeur) utilisent des technologies standards (HTML5, CSS3, SVG et JS) pour réaliser cette application dont le code est mis à disposition sur GitHub.

      Encore en phase beta, Prototypo a besoin d'autres logiciels pour convertir les polices du format svg vers otf. La campagne Kickstarter vise justement à plus d'autonomie (entre autres). Le développement est plutôt actif, le chat des auteurs se charge de la communication.

      Il est aussi à noter qu'une partie du financement sera reversé à d'autres projets open-source contribuant au développement : un juste retour à la communauté, selon l'équipe de Prototypo.

      En à peine une dizaine de jours, le projet à déjà atteint son deuxième objectif. Il lui reste jusqu'au 10 mai prochain pour le troisième. Alors, c'est français, c'est open-source, et en plus ça facilitera la vie de beaucoup, donc pourquoi ne pas supporter cette initiative !

      Lire les commentaires

    • Reportlab 3.1.8 (Journaux LinuxFR)

      Reportlab est une librairie Python pour générer des PDFs

      Cette version confirme le support de Python 3.3 et 3.4 en même temps que 2.7 (qui sera supporté pendant encore des années par l'équipe).
      Le paquet peut maintenant être installé avec PIP

      Pour moi c'était LE paquet qui m'empêchait d'envisager python 3 !

      Lire les commentaires

    • Revue de presse de l'April pour la semaine 16 de l'année 2014 (Dépêches LinuxFR)

      La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

      Sommaire

      [Le Point] Axelle Lemaire veut "rétablir un Internet qui garantit les libertés fondamentales"

      Par la rédaction, le vendredi 18 avril 2014. Extrait:

      Entretien avec la nouvelle secrétaire d'État au Numérique, qui détaille pour la première fois la politique qu'elle entend mener au gouvernement.

      Lien vers l'article original: http://www.lepoint.fr/chroniqueurs-du-point/guerric-poncet/axelle-lemaire-veut-retablir-un-internet-qui-garantit-les-libertes-fondamentales-18-04-2014-1814411_506.php

      Et aussi:

      [Numerama] Des graines open-source pour jardiner librement

      Par Guillaume Champeau, le vendredi 18 avril 2014. Extrait:

      Aux Etats-Unis, des universitaires ont conçu l'Open Source Seed Initiative, une organisation qui vise à distribuer des graines libres d'utilisation et de reproduction, sur le modèle des licences Creative Commons.

      Lien vers l'article original: http://www.numerama.com/magazine/29144-des-graines-open-source-pour-jardiner-librement.html

      [Le Huffington Post] Quelles répercussions politiques pour la faille Heartbleed?

      Par Marc Thiriez, le jeudi 17 avril 2014. Extrait:

      La faille de sécurité Heartbleed liée à la technologie OpenSSL va-t-elle prendre une dimension politique? Considérée déjà comme une des plus importantes failles de sécurité de l'histoire (deux serveurs sur trois seraient concernés selon The Verge), Bloomberg révélait que la NSA, au courant depuis deux ans de l'existence de la faille de sécurité, aurait gardé l'information sous silence en utilisant Heartbleed pour collecter des informations sensibles. D'autres États, aux intentions plus agressives que les États-Unis, ont pu faire de même

      Lien vers l'article original: http://www.huffingtonpost.fr/marc-thiriez/quelles-repercussions-politiques-pour-la-faille-heartbleed-_b_5158431.html

      Et aussi:

      Voir aussi:

      [Le Monde.fr] Il pourrait changer la face de l'Europe: le traité transatlantique décodé

      Par Maxime Vaudano, le mardi 15 avril 2014. Extrait:

      Le traité TAFTA, négocié dans le secret par Bruxelles et Washington, a pour but de constituer un marché commun de 820 millions de consommateurs, qui représenterait la moitié du PIB mondial.

      Lien vers l'article original: http://www.lemonde.fr/les-decodeurs/article/2014/04/15/il-pourrait-changer-la-face-de-l-europe-le-traite-transatlantique-decode_4399476_4355770.html

      [infoDSI] Open Source: l’Etat joue le jeu

      Par Damien Clochard, le mardi 15 avril 2014. Extrait:

      La DISIC vient de publier la dernière version du SILL (Socle Interministériel de Logiciels Libres) émettant des recommandations sur l'usage des logiciels libres au sein des ministères. Force est de constater que depuis la circulaire Ayrault de 2012, le passage au logiciel libre s’est accéléré. Non seulement l’Etat adopte des solutions libres, mais il contribue à leur développement pour le bénéfice des communautés mais aussi des autres institutions : un cercle vertueux qui bénéficie aussi à l’écosystème des sociétés de service informatique.

      Lien vers l'article original: http://www.infodsi.com/articles/147820/open-source-etat-joue-jeu-damien-clochard-directeur-operations-dalibo.html

      [PC INpact] Œuvres orphelines, restrictions d’accès et œuvres libres: les réactions

      Par Marc Rees, le lundi 14 avril 2014. Extrait:

      Le Conseil supérieur de la propriété littéraire et artistique poursuit sa mission sur les œuvres orphelines. Et pour cause, d'ici la fin de l'année, la France devra transposer comme les autres pays membres une directive sur ce sujet. Au ministère de la Culture, le CSPLA a rédigé un questionnaire interne où il se demande s’il faut ou non prévoir des restrictions d'accès sur ces œuvres. Il soulève aussi la question des oeuvres libres. Next INpact a recueilli les réactions de l'Aful, l'April et SavoirCom1 sur ces deux thèmes.

      Lien vers l'article original: http://www.pcinpact.com/news/86925-%C5%93uvres-orphelines-restrictions-d-acces-et-%C5%93uvres-libres-reactions.htm

      [Numerama] Le CSA dresse la liste de ce qu'il veut contrôler sur Internet

      Par Guillaume Champeau, le lundi 14 avril 2014. Extrait:

      Dans son rapport annuel, le CSA dresse la liste des domaines d'expressions dans lesquels il entend pouvoir exercer un droit de regard et de censure sur Internet.

      Lien vers l'article original: http://www.numerama.com/magazine/29080-le-csa-dresse-la-liste-de-ce-qu-il-veut-controler-sur-internet.html

      Et aussi:

      Lire les commentaires

    • Petit jeu en HTML5 et découverte de Crafty (Dépêches LinuxFR)

      Rien de tel que de créer son propre jeu… à jouer dans le navigateur. Petite introduction au développement de jeux sur web avec le moteur Crafty.

      C'est un moteur de jeu pour HTML5 écrit en javascript. Il fonctionne par entités et propose un rendu par DOM ou Canvas. Dans ce tutoriel, on va utiliser un rendu par DOM, qui est apparemment plus rapide que Canvas (c'est ce que dit la doc !). Nous allons donc nous servir de Crafty pour créer un petit tableau de jeu généré aléatoirement, et y déplacer un personnage, tout en gérant les collisions et animations du personnage et son environnement.

      NdM : merci à etenil pour son journal.

      Sommaire

      Programmer des jeux vidéo avec Crafty

      J'ai commencé à apprendre la programmation pour développer mes propres jeux vidéos. Beaucoup d'eau a coulé sous les ponts depuis et je me retrouve à développer surtout du web et des systèmes de base de données. Mon but initial de faire des jeux vidéos sombrant dans l'oubli…

      J'ai donc choisi de renouveler mon intérêt pour le développement de jeux et de regarder du côté des technologies web. Leur promesse d'être utilisable sur tout support est séduisante et c'est aussi la seule manière de faire des jeux pour Firefox OS (mon téléphone).

      Tout d'abord, trouver quelques sprites; c'est quand même plus intéressant à voir que des blocs colorés ! Une bonne ressource est OpenGameArt.org. J'en ai fait une petite sélection et y ai ajouté une fleur animée.

      Sprites du monde

      Sprites du perso

      Vous pouvez récupérer le code du petit jeu, ça vous évitera d'être perdu.

      L'écran de chargement

      Le fichier HTML qui va nous servir de base est pratiquement nu.

          <!DOCTYPE html>
          <html>
            <head>
              <meta charset="utf-8" />
              <script type="text/javascript" src="https://raw.githubusercontent.com/craftyjs/Crafty/release/dist/crafty.js"></script>
              <script type="text/javascript" src="game.js"></script>
              <style>
                body, html {
                  margin: 0;
                  padding: 0;
                  overflow: hidden;
                }
                #game {
                  margin: 100px auto 0;
                }
              </style>
              <title>Crafty game test</title>
            </head>
            <body>
              <div id="game"></div>
            </body>
          </html>

      Et voici la toute base de notre jeu, à mettre dans le fichier game.js.

          window.onload = function() {
              var game = document.getElementById('game');
      
              randRange = function(min, max) {
                  return Math.floor(Math.random() * (max - min + 1)) + min;
              }
      
              Crafty.init(320, 240, game);
      
              Crafty.sprite(16, "world.png", {
                  grass1: [0,0],
                  grass2: [1,0],
                  grass3: [2,0],
                  grass4: [3,0],
                  flower: [0,1],
                  bush1:  [0,2],
                  bush2:  [1,2]
              });
      
              Crafty.sprite(16, 18, "character.png", {
                  player: [0,0]
              });
      
              Crafty.scene("loading", function() {
                  Crafty.load(["world.png", "character.png"], function() {
                      Crafty.scene('main');
                  });
      
                  Crafty.background('#000');
                  Crafty.e("2D, DOM, Text")
                      .attr({x: 140, y: 120})
                      .text('Loading...')
                      .css({'text-align': 'center', 'color': '#FFF'});
              });
      
              Crafty.scene('loading');
          }

      La première chose qu'on fait ici, c'est initialiser le moteur Crafty. Pour cela, on lance Crafty.init() en définissant la taille de la zone de jeu (320x240), ainsi que la zone de jeu elle-même (le div #game).

      On définit ensuite les sprites. Les sprites se gèrent très facilement dans Crafty; il suffit d'indiquer le fichier de sprites, puis l'index de chaque sprite dans l'objet de mapping. ici grass2 est situé à x=1 et y=0, c'est-à-dire 16px vers la droite, et collé au haut de l'image.

      Les sprites de personnages sont un peu différents car ceux-ci sont plus hauts que larges (16x18). Une fois définis, on pourra invoquer les sprites par leur petit nom directement, simplifiant ainsi les opérations. Notez que les sprites d'animation ne sont définis que par une seule image pour le moment, leur état neutre (voir player).

      Crafty utilise le concept de scène. Ici on a défini la scène de chargement, qui s'affiche jusqu'à ce que les objets nécessaires à la scène suivante soient chargés. Vous ne le verrez peut-être pas car c'est très court, mais le texte loading… devrait apparaitre brièvement sur un écran noir. La scène suivante main n'a pour l'instant pas été déclarée, conduisant à un écran noir.

      Il est temps de passer à la scène principale.

      Planter le décor

      La zone de jeu va être générée en grande partie aléatoirement. Le sol sera tapissé de carrés d'herbe aléatoires, quelques buissons et fleurs animées. Les bords de l'écran seront quant à eux délimités par des buissons. Enfin notre personnage sera au milieu la zone de jeu.

      On va définir empiriquement qu'il y a 1 chance sur 50 d'avoir une fleur sur un carré de sol, et 1 chance sur 25 de trouver un buisson aléatoire. Il sera aisé plus tard d'ajuster ces valeurs si besoin.

      Je vous livre la fonction de génération de monde :

          // Method to randomy generate the map
          function generateWorld() {
              // Generate the grass along the x-axis
              for (var i = 0; i < 20; i++) {
                  // Generate the grass along the y-axis
                  for (var j = 0; j < 15; j++) {
                      grassType = randRange(1, 4);
                      Crafty.e("2D, DOM, grass" + grassType)
                          .attr({x: i * 16, y: j * 16});
      
                      // 1/50 chance of drawing a flower.
                      if (i > 0 && i < 19 && j > 0 && j < 14 && randRange(0, 50) > 49) {
                          var flower = Crafty.e("2D, DOM, SpriteAnimation, flower")
                          .attr({x: i * 16, y: j * 16})
                          .reel("wind", 1000, 0, 1, 3)
                          .animate("wind", 10)
                          .bind("enterframe", function() {
                              if (!this.isPlaying())
                                  this.animate("wind", -1);
                          });
                      }
      
                      // 1/25 chance of drawing a bush.
                      if (i > 0 && i < 19 && j > 0 && j < 14 && randRange(0, 25) > 24) {
                          var bush = Crafty
                              .e("2D, DOM, randbushes, bush"+randRange(1,2))
                              .attr({x: i * 16, y: j * 16});
                      }
                  }
              }
      
              // Create the bushes along the x-axis which will form the boundaries
              for (var i = 0; i < 20; i++) {
                  Crafty.e("2D, DOM, wall_top, bush"+randRange(1,2))
                      .attr({x: i * 16, y: 0, z: 2});
                  Crafty.e("2D, DOM, wall_bottom, bush"+randRange(1,2))
                      .attr({x: i * 16, y: 224, z: 2});
              }
      
              // Create the bushes along the y-axis
              // We need to start one more and one less to not overlap the previous bushes
              for (var i = 1; i < 15; i++) {
                  Crafty.e("2D, DOM, wall_left, bush" + randRange(1,2))
                      .attr({x: 0, y: i * 16, z: 2});
                  Crafty.e("2D, DOM, wall_right, bush" + randRange(1,2))
                      .attr({x: 304, y: i * 16, z: 2});
              }
          }

      Passons à la déclaration de la scène principale.

          Crafty.scene("main", function() {
              generateWorld();
      
              // Create our player entity with some premade components
              var player = Crafty.e("2D, DOM, player, controls")
                  .attr({x: 152, y: 111, z: 1})
                  .reel("walk_left", 200, 6, 0, 2)
                  .reel("walk_right", 200, 9, 0, 2)
                  .reel("walk_up", 200, 3, 0, 2)
                  .reel("walk_down", 200, 0, 0, 2);
          });

      Ici, on génère le monde aléatoirement, puis on place notre personnage principal en plein milieu de la zone de jeu. Les appels .reel() définissent les animations du personnage par rapport à l'arrangement des sprites. Les paramètres de .reel() sont le nom de l'animation, sa durée en ms, la position x du sprite de départ, la position y du sprite de départ, puis la longueur de l'animation en nombre de sprites (vers la droite).

      Pour l'instant le personnage est immobile, et les animations n'ont aucun effet. Nous allons remédier à cela.

      Premiers pas

      Crafty fournit deux contrôles de base. L'un permet d'aller à droite ou gauche et sauter, l'autre de se déplacer dans les quatre directions. Ce n'est pas très satisfaisant, nous allons définir nos propres contrôles qui permettront aussi des diagonales.

      Juste après la ligne generateWorld();, mettez le code suivant:

          Crafty.c('CustomControls', {
                  __move: {left: false, right: false, up: false, down: false},    
                  _speed: 3,
      
                  CustomControls: function(speed) {
                      if (speed) this._speed = speed;
                      var move = this.__move;
      
                      this.bind('EnterFrame', function() {
                          // Move the player in a direction depending on the booleans
                          // Only move the player in one direction at a time (up/down/left/right)
                          if (move.right) this.x += this._speed; 
                          else if (move.left) this.x -= this._speed; 
                          else if (move.up) this.y -= this._speed;
                          else if (move.down) this.y += this._speed;
                      });
      
                      this.bind('KeyDown', function(e) {
                          // Default movement booleans to false
                          move.right = move.left = move.down = move.up = false;
      
                          // If keys are down, set the direction
                          if (e.keyCode === Crafty.keys.RIGHT_ARROW) move.right = true;
                          if (e.keyCode === Crafty.keys.LEFT_ARROW) move.left = true;
                          if (e.keyCode === Crafty.keys.UP_ARROW) move.up = true;
                          if (e.keyCode === Crafty.keys.DOWN_ARROW) move.down = true;
                      });
      
                      this.bind('KeyUp', function(e) {
                          // If key is released, stop moving
                          if (e.keyCode === Crafty.keys.RIGHT_ARROW) move.right = false;
                          if (e.keyCode === Crafty.keys.LEFT_ARROW) move.left = false;
                          if (e.keyCode === Crafty.keys.UP_ARROW) move.up = false;
                          if (e.keyCode === Crafty.keys.DOWN_ARROW) move.down = false;
                      });
      
                      return this;
                  }
          });

      Voici notre code de contrôle. La logique est assez simple, à chaque appui sur un bouton, on regarde l'état des touches fléchées pour déterminer les directions du mouvement en une combinaison de gauche, droite, bas et haut. Une fois le mouvement défini dans __move, crafty déplacera l'entité de _speed pixels dans les directions données lors du rafraîchissement d'écran.

      On va maintenant modifier la déclaration du personnage pour le faire se déplacer, et animer son mouvement.

              var player = Crafty.e("2D, DOM, player, controls, CustomControls, SpriteAnimation")
                  .attr({x: 160, y: 144, z: 1})
                  .CustomControls(1)
                  .reel("walk_left", 200, 6, 0, 2)
                  .reel("walk_right", 200, 9, 0, 2)
                  .reel("walk_up", 200, 3, 0, 2)
                  .reel("walk_down", 200, 0, 0, 2)
                  .bind("EnterFrame", function(e) {
                      if(this.__move.left) {
                          if(!this.isPlaying("walk_left"))
                              this.animate("walk_left", 10);
                      }
                      if(this.__move.right) {
                          if(!this.isPlaying("walk_right"))
                              this.animate("walk_right", 10);
                      }
                      if(this.__move.up) {
                          if(!this.isPlaying("walk_up"))
                              this.animate("walk_up", 10);
                      }
                      if(this.__move.down) {
                          if(!this.isPlaying("walk_down"))
                              this.animate("walk_down", 10);
                      }
                  })
                  .bind("KeyUp", function(e) {
                      this.pauseAnimation();
                      this.resetAnimation();
                  });

      Notez la déclaration de CustomControls comme méthode controle, et la vitesse d'1px/image. Pour gérer les animations, on se greffe sur l'évènement EnterFrame, et on détermine l'animation à jouer par rapport à la direction de mouvement du personnage. Quand une touche est relachée, on arrête et rembobine l'animation pour revenir en position neutre (évènement KeyUp).

      À présent, le personnage devrait évoluer gaillardement sur votre écran, et passer allègrement à travers les buissons et hors de la zone de jeu…

      Collisions

      Il est temps de passer à la gestion des collisions. On va faire très simple et ne pas définir de hitbox. Crafty utilisera alors les sprites eux-mêmes comme hitbox. Pas terrible, mais simple.

      On va aussi ne s'occuper que des collisions entre le joueur et les buissons (quels qu'ils soient). Ça évitera au perso de sortir de la zone de jeu et le forcera à éviter les buissons dans l'herbe.

      Modifiez la déclaration du joueur comme suit :

              var player = Crafty.e("2D, DOM, player, controls, CustomControls, SpriteAnimation, Collision")
                  .attr({x: 160, y: 144, z: 1})
                  .CustomControls(1)
                  .reel("walk_left", 200, 6, 0, 2)
                  .reel("walk_right", 200, 9, 0, 2)
                  .reel("walk_up", 200, 3, 0, 2)
                  .reel("walk_down", 200, 0, 0, 2)
                  .bind("EnterFrame", function(e) {
                      if(this.__move.left) {
                          if(!this.isPlaying("walk_left"))
                              this.animate("walk_left", 10);
                      }
                      if(this.__move.right) {
                          if(!this.isPlaying("walk_right"))
                              this.animate("walk_right", 10);
                      }
                      if(this.__move.up) {
                          if(!this.isPlaying("walk_up"))
                              this.animate("walk_up", 10);
                      }
                      if(this.__move.down) {
                          if(!this.isPlaying("walk_down"))
                              this.animate("walk_down", 10);
                      }
                  })
                  .bind("KeyUp", function(e) {
                      this.pauseAnimation();
                      this.resetAnimation();
                  })
                  .collision()
                  .onHit("wall_left", function() {
                      this.x += this._speed;
                      this.pauseAnimation();
                      this.resetAnimation();
                  })
                  .onHit("wall_right", function() {
                      this.x -= this._speed;
                      this.pauseAnimation();
                      this.resetAnimation();
                  })
                  .onHit("wall_bottom", function() {
                      this.y -= this._speed;
                      this.pauseAnimation();
                      this.resetAnimation();
                  })
                  .onHit("wall_top", function() {
                      this.y += this._speed;
                      this.pauseAnimation();
                      this.resetAnimation();
                  })
                  .onHit("randbushes", function() {
                      if(this.__move.left) this.x += this._speed;
                      if(this.__move.right) this.x -= this._speed;
                      if(this.__move.up) this.y += this._speed;
                      if(this.__move.down) this.y -= this._speed;
                      this.pauseAnimation();
                      this.resetAnimation();
                  });

      Après avoir déclaré l'utilisation du module Collision, on l'initialise avec collision(). Ensuite il suffit de gérer l'évènement onHit sur les objets intéressants.

      Les évènements de collisions sont résolus après le mouvement, mais avant le rendu. C'est pour cela qu'on fait reculer le personnage d'un pas (enfin, de _speed) lors de la détection d'une collision. Du point de vue du joueur, le personnage restera parfaitement immobile.

      On pourrait bien entendu faire autre chose lors de la collision, comme lancer un combat, ou envoyer un bonus tout en laissant le personnage passer dans le buisson. Les possibilités sont infinies !

      Aller plus loin

      C'est donc une toute base de jeu, mais sans logique. On peut déjà améliorer le code sur beaucoup de points. Vous pourrez vous plonger dans la documentation de Crafty pour vous y atteler.

      On peut s'assurer que les buissons n'apparaissent pas sur des fleurs, et que le joueur n'apparaît pas sur des buissons.

      L'algorithme de génération du monde peut être largement amélioré pour grouper les types d'herbe et faire des zones herbues et d'autres moins. On pourra introduire d'autres types de sprites pour avoir un terrain un peu plus intéressant. Avec de gros sprites, on peut aussi introduire des éléments de décor comme des maisons, ou même des PNJ.

      Les hitbox des entités sont très maladroites. Il serait bien plus élégant de définir des hitbox sur les pieds du personnage et la base des buissons, afin de pouvoir passer derrière les éléments (il faudra aussi gérer l'axe Z des sprites pour le rendu !).

      En faisant des zones de sortie dans les buissons sur les rebords, on pourra lier d'autres tableaux, générés de façon procédurale eux aussi. Voire même générer plusieurs zones contigües à la fois et maintenir une structure de données pour que le jeu reste homogène.

      Et bien plus encore, autant que votre créativité permet !

      Lire les commentaires

    • Grisbi : après le logiciel, le manuel en version 1.0 (Dépêches LinuxFR)

      Utilisateur du logiciel de comptabilité personnelle Grisbi depuis la version 0.3, j'ai un jour constaté que le logiciel avait tellement évolué que le manuel était devenu complètement obsolète ; je me suis donc attelé à sa remise à niveau, d'autant qu'il est écrit en Latex, que ça m'intéressait d'apprendre… D'où les versions 0.6, 0.8 et enfin celle-ci. Alors bonnes lectures !

      En plus de documenter le logiciel version 1.0 (voir la dépêche dédiée), c'est bien le moins (!), ce manuel de l'utilisateur apporte un certain nombre de nouveautés, détaillées en seconde partie.

      Nouveautés du manuel

      • un glossaire pour les termes techniques ;
      • un index pour une recherche plus rapide des fonctions et descriptions ;
      • un format html avec images, accessible par le menu Aide ;
      • la liste des nouveautés du logiciel ;
      • une liste de logiciels libres pour sa lecture ;
      • la réorganisation de certains chapitres pour plus de clarté ;
      • un grand nombre de précisions, en particulier à la demande des utilisateurs ;
      • un chapitre association présentant les principales procédures utilisées en comptabilité d'association ou de petite entreprise ;
      • tous les fichiers sous locale UTF-8 ;
      • et enfin quelques perles du style Album de la Comtesse, pour les aficionados (:-).

      J'ajoute que les utilisateurs disposeront dans quelque temps d'un format epub pour leurs liseuses : surveillez le dépôt sur Sourceforge !

      Lire les commentaires

    • Logiciels pour survivre avec Docker (Dépêches LinuxFR)

      Docker a déjà été présenté via un tutoriel pour manipuler les conteneurs et une présentation de la gestion des containers sur LinuxFR. Il s'agit d'un système de conteneurs qui étend ce que fait le système de cloisonnement Linux Containers LXC sous Linux. Cette dépêche présente un certain nombre de logiciels utiles pour compléter Docker.

      Gestion du réseau

      Pipework

      Pipework est un script de configuration réseau pour Docker/LXC. C'est un complément à Docker, lequel ne se charge pas directement de configurer le réseau (en tous cas pas suffisamment).

      Site officiel et doc

      Installation

      apt-get install arping bridge-utils  
      git clone https://github.com/jpetazzo/pipework.git
      mv pipework/pipework /usr/local/bin/pipework

      Utilisation

      Créer un réseau privé entre deux conteneurs et l'hôte :

      pipework br1 conteneur1 192.168.1.1/24@192.168.1.254  
      pipework br1 conteneur2 192.168.1.2/24@192.168.1.254  
      ip addr add 192.168.1.254/24 dev br1

      dnsmasq

      DNSMasq c'est un mini serveur qui vous évite d'installer des services plus lourds (comme Bind, ISC Dhcpd…). Il n'est pas spécifiquement lié à l'environnement Docker mais il peut être très utile pour se monter très simplement un service de noms et une distribution d'adresses.

      Configuration en deux minutes
      Documentation officielle

      Serveur PXE dans un container

      Un container pour booter en PXE des machines sous Debian.
      Les explications et le dockerfile.

      Gestion des containers

      Interface Web (DockerUI ou Shipyard)

      Docker peut aussi s'administrer avec une interface Web.
      C'est peut-être un gadget mais ça permet à ceux qui ne connaissent pas Docker de faire de l'administration basique (redémarrer un container, …).

      J'aime bien DockerUI qui a le mérite d'être simple.

      Ça s'installe directement dans un container :

      docker build -t crosbymichael/dockerui github.com/crosbymichael/dockerui
      docker run -d -p 9000:9000 -v /var/run/docker.sock:/docker.sock crosbymichael/dockerui -e /docker.sock

      Dans ce domaine, il y a aussi Shipyard qui semble plus complet, qui propose une API et qui fonctionne en client serveur (avec le shipyard-agent sur les containers).

      nsenter

      Problème habituel dans Docker : une fois qu'on lance un container en mode démon, on ne peut plus rentrer dedans.

      Pour résoudre ça, on va avoir besoin de nsenter fourni par le paquet util-linux > 2.23.
      Sous debian/ubuntu, c'est la version 2.20 donc il faut télécharger et compiler les sources :

      cd /tmp
      curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-
      cd util-linux-2.24
      ./configure --without-ncurses
      make nsenter
      cp nsenter /usr/local/bin

      Et maintenant on se crée un script pour Docker (/usr/local/sbin/dkenter) :

      #!/bin/bash
      
      CNAME=$1
      CPID=$(docker inspect --format '{{ .State.Pid }}' $CNAME)
      nsenter --target $CPID --mount --uts --ipc --net --pid

      Je lance un container en démon :

      docker run --name lamp1 -d lamp-maria supervisord -n
      

      Je ne peux plus m'attacher dessus alors j'utilise dkenter pour obtenir un shell.
      Quand j'en ressort, le container continue de tourner.

      dkenter lamp1
      root@ff94c159642f# ...
      root@ff94c159642f# exit

      Boot2Docker

      Boot2Docker est une distribution Linux ultra-légère pour servir d'hôte Docker.
      On peut télécharger les images ISO ou suivre le manuel.

      Busybox

      Busybox est un système Linux ultra léger (2,5 Mo, qui dit mieux ?).
      Il existe en image Docker sur le dépôt officiel Docker

      Baseimage

      Baseimage c'est le contraire de busybox. Ça part du principe que l'image Ubuntu ou Debian fournie de base par Docker doit être complétée pour fournir d'autres services tels qu'un process init correct, un syslog, un cron, et un serveur SSH.

      Les explications
      Le dépôt git

      Créer son propre dépôt Docker

      Docker registry : un logiciel pour créer son propre dépôt Docker.
      Sur Github

      Lire les commentaires

    • OpenSSL est mort, vive (le futur) LibreSSL (Journaux LinuxFR)

      Salut les jeunes,

      Vous n'êtes pas sans savoir qu'OpenSSL, la librairie plus ou moins standard implémentant les protocoles SSL/TLS, a récemment fait beaucoup parler d'elle pour un bug extrêmement grave. La librairie n'en était pas à son premier coup, elle a déjà fait parler d'elle à plusieurs reprises par le passé par sa piètre qualité (j'ai pas vu moi-même, je ne fais que rapporter ce que j'entends sur la toile).

      Et bien les gens de chez OpenBSD en ont eu marre, ont décidé de forker OpenSSL et de nettoyer la librairie de fond en comble pour repartir sur une base saine. Ils ont commité comme des petits fous (on parle de 250 commits à 8), et sont arrivés à un résultat assez intéressant: en virant tout les machins spécifiques à VMS et Windows, ils ont viré la moitié du bloat qu'il y avait, et toutes les applis dans l'arbre OpenBSD continuent de compiler. Pas mal.

      Pour suivre les changements, un amateur a monté un tumblr, OpenSSL Valhalla Rampage qui met l'accent sur les messages de commits. On sent la rage des développeurs envers le code plus que médiocre. Dire que tout le monde dépend de ça. Vous pouvez aussi suivre ça au format twitter (ou aller à la source pour voir tous les changements)

      Enfin, il y a un site tout joli pour s'informer sur la Fondation. Je vous rappelle qu'OpenBSD a besoin d'argent (comme tout le monde, vous me direz), et je pense que cette page peut aider. Je vous conseille d'aller jeter un coup d'oeil à la page Campagne de financement pour vous rendre compte à quel point tout le monde dépend de ces gens là.

      Ah, et surtout, on apprend que le fork devrait s'appeler LibreSSL. Tout ça me rappelle drôlement quelque chose

      Note: Ce contenu placé sous CC0

      Lire les commentaires

    • pyAggr3g470r (Journaux LinuxFR)

      Présentation

      pyAggr3g470r est un agrégateur de nouvelles très simple écrit en Python et est sous licence AGPL v3.0.

      Il utilise le micro-framework Flask, et Bootstrap comme framework front-end. SQLAlchemy est utilisé pour la gestion de la base de données et Gevent pour le téléchargement des flux.

      Il est possible de le déployer assez facilement sur votre serveur ou en mode PaaS (Platform as a Service) sur Heroku. Plusieurs utilisateurs peuvent profiter d'une même instance (avec des comptes utilisateurs et administrateurs).

      Il est capable de résoudre les URLs des articles (pratique avec les flux qui fournissent des adresses du type feedproxy.google.com) et peut être configuré pour passer par un proxy HTTP (par exemple Privoxy/Tor pour les paranoïaques) lorsqu'il n'est pas déployé sur Heroku.

      Il est également possible d'effectuer des recherches grâce au projet Whoosh. Cette fonctionnalité est désactivé sur Heroku. Ce problème sera contourné dans une version futur.

      Prochaines étapes

      Les principales prochaines étapes sont l'internationalisation, la recherche full-text pour Heroku et le faire à nouveau fonctionner avec Python 3 (oui, je travail à l'envers).

      Un peu d'historique

      Le projet date en fait déjà de 2010 et à l'époque utilisait CherryPy avec une base SQLite. L'interface était moins soignée (et je sais qu'elle est encore largement perfectible). J'ai donc eu l'occasion de tester pas mal de choses, même des algorithmes de classification.
      J'ai par la suite abandonné SQLite pour MongoDB (avec PyMongo puis MongoEngine, pour tester…). Maintenant j'utilise une base PostgreSQL.
      La base contient environ 80.000 articles (voici un export assez récent) et les performances sont plutôt bonnes. J'ai utilisé cette base pour comparer ma solution utilisant Whoosh à ElasticSearch. À ma surprise Whoosh était plus rapide pour rechercher des articles (mais bien plus lent pour indexer la base de données). Ceci dit, même si ElasticSearch avait été plus rapide je serai resté avec Whoosh car je préfère une solution plus Pythonesque et préfère éviter d'obliger l'utilisateur d'installer un serveur Java uniquement pour effectuer des recherches.

      Le projet est bien entendu ouvert aux contributions (il dispose aussi d'un dépôt sur GitHub).
      J'espère que ce billet d'autopromotion aura été un minimum intéressant.

      Lire les commentaires

    • Microlabel : Alternative Tentacles à toi tout seul (Journaux LinuxFR)

      Alternative Tentacles

      Quand j'étais petit, dans les années pre-internet, les musiciens, pour faire connaitre leur musique en dehors des concerts et performances, utilisaient des "Labels".

      Oui parce qu'à cette époque, la musique était encore solide, matérielle, il y avait ces trucs qu'on appelait des disques, il fallait aller les voler au magasin pour après les enregistrer sur des cassettes. En ne touchant plus à la galette, car c'était le fichier source.

      Aujourd'hui, il y a toujours des concerts (hum) mais il n'y a plus de disques. Nib de skeuds.

      Et pour un musicien aujourd'hui, dont le but dans la vie n'a pas changé (tomber des meufs exprimer son art) le seul moyen de diffuser sa musique de façon indépendante est de la publier lui-même sur le 'Net. Et c'est la que les ennuis commencent, si tu as des potes musiciens, tu vois ce que je veux dire.

      Microlabel est fait pour leur faciliter la vie.

      Bon, vous, vous connaissez, vu que je m'en sers pour présenter ma musique ici et ailleurs, public chéri et si tant plein d'amour. Mais ce WEnd j'ai décidé de nettoyer ce brun et de le diffuser en GPL.

      Il s'agit basiquement d'un gros script en PHP héhé, qui commence par lire le contenu du répertoire de musique (léméta) et avec ça, construit un site complet de présentation par albums.

      Microlabel

      Featuring

      • Baseless. Tu le droppes dans un répertoire, tu pointes un navigateur vers ledit rep. et c'est marre. Nan pasque les musicos, faut pas leur parler de base
      • Baseless. Tu tagues tes fichiers correctement, et tu les balances dans le répertoire MUSIC
      • Affiche les tweets des musicos sur la page de l'album
      • Affiche les vidéos (youtube only :/ j'ai pas eu le temps de faire un truc générique) la page de l'album
      • Interface multilingue
      • Affiche la pochette (balance juste un fichier préfixé bg- dans le rep. de l'album) et derrière, une galerie de any image trouvée dans le rep.
      • Full HTML / JS / CSS (No flash, quoi)
      • Quand tu playes un fichier, tu peux aussi le partager vite-fait en copiant le lien dans le div de droite, et quand ton pote clique dessus, ça lit le bazar, et le suivant, et l'album suivant, et c'est bien cool
      • Direct Download
      • J'ai voulu faire un système de paiement, mais j'ai la flemme pas de compte paypal et j'aimerais bien que quelqu'un d'autre le fasse, voilà
      • Code tout crade et tout pourri (j'ai fait ça ya un moment déjà) c'est aussi pour ça que je le diffuse, j'aimerais bien qu'il puisse compter sur autre chose que mon seul amour, le pauvre.
      • TKT je vais quand même m'occuper de l'affichage sur les mobiles, car j'aime bien faire ça et que je sais le faire bien maintenant.

      Lire les commentaires

    • pkgsrc 2014Q1 est disponible (Dépêches LinuxFR)

      Dans un message à des listes de diffusion pkgsrc et NetBSD, Alistair Crooks a annoncé la disponibilité de la branche pkgsrc-2014Q1 ! Pkgsrc est un framework de construction de logiciels tiers pour NetBSD ainsi que pour d'autres systèmes de type UNIX. Il permet donc à NetBSD et à d'autres systèmes d'exploitation de disposer de nombreux logiciels, sous forme source mais aussi sous forme binaire.

      Les développeurs pkgsrc fournissent une nouvelle version stable chaque trimestre. Comme son nom l'indique, pkgsrc 2014Q1 est donc la première sur les quatre de 2014, et est disponible depuis le 4 avril dernier. Anecdote amusante, il s'agit de la 42e version de pkgsrc.

      Plus de détails sur cette version en particulier en deuxième partie de dépêche.

      À propos de pkgsrc

      Pkgsrc est historiquement le système de paquets pour NetBSD, issu d'un fork en 1997 de la collection de ports FreeBSD. Avec le temps, pkgsrc a évolué, dans le même esprit de portabilité que NetBSD il est utilisable sur plusieurs systèmes d'exploitation. Ils peuvent alors gérer leur propre collection de paquets sources et binaires. Ainsi, pkgsrc prend en charge une vingtaine de plateformes, dont voici un extrait :

      Cygwin ;
      Darwin/Mac OS X ;
      DragonFlyBSD ;
      FreeBSD ;
      GNU/kFreeBSD ;
      Interix/SFU/SUA ;
      Linux ;
      Minix3 ;
      NetBSD ;
      OpenBSD ;
      Solaris/illumos.

      On notera que même si des architectures sont prises en charge, cela ne signifie pas pour autant que le projet met à disposition des paquets binaires pour celles-ci, ou que les systèmes d'exploitation concernés fournissent des paquets binaires officiels. À contrario, même si dports a pris le pas sur pkgsrc pour DragonFlyBSD, il est toujours possible de l'utiliser.

      Quelques chiffres

      En terme de paquets, pkgsrc-2014Q1 c'est :

      • 14255 paquets au total pour NetBSD-current/amd64 ;
      • 13841 paquets binaires compilés avec clang pour NetBSD-current/x86_64 ;
      • 12093 paquets binaires compilés avec gcc pour SmartOS/i386 ;
      • 12046 paquets binaires compilés avec gcc pour SmartOS/x86_64 ;
      • 11445 paquets binaires compilés avec gcc pour FreeBSD 9/x86_64 ;
      • 11233 paquets binaires compilés avec clang pour FreeBSD 10/x86_64.

      Ce trimestre, en terme de modifications, c'est :

      • 222 paquets ajoutés ;
      • 33 paquets retirés ;
      • 1681 paquets mis à jour ;
      • et, chose étrange, un paquet a été rétrogradé de version : math/R-zoo.

      Les changements

      Si on s'en tient aux chiffres, on peut penser que ce trimestre est un peu plus calme que le précédent, avec moins d'ajouts et moins de retraits. Il n'en est cependant rien, car il y a au moins 300 nouvelles mises à jour depuis 2013Q4. De plus, Alistair Crooks souligne l'arrivée de Python 3.3, en tant que « citoyen de première classe », ainsi que l'ajout d'une nouvelle plateforme compatible, portant son total à 22 : SCO OpenServer. Parmi les nouveaux arrivants, on peut aussi souhaiter la bienvenue à git-svn, plein de modules Perl et Python, ainsi qu'à Ruby 2.1.1. Du côté des départs, ce sont entre autres cvsup, SmartEiffel, ezm3 et snobol qui tirent leur révérence.

      Contribuez !

      Si aucun appel à contribution en particulier n'a été fait pour pkgsrc, sachez que vous pouvez toujours vous essayer à l'empaquetage pour pkgsrc grâce au projet pkgsrc-wip, qui avait été abordé lors d'une précédente dépêche. Néanmoins, un appel à contribution à été fait, sur Twitter par iMil pour pkgin, le gestionnaire de paquets binaires gérant les dépendances.

      Lire les commentaires

    • Redmine Git Hosting 0.7 (Dépêches LinuxFR)

      Après un peu plus d'un an de travail, JBox Web est fière d'annoncer la sortie de la version 0.7 du plugin Redmine Git Hosting. Pour rappel, ce plugin pour Redmine, le fameux gestionnaire de projet codé avec Ruby on Rails, permet d'améliorer la gestion des dépôts Git en s'interfaçant avec Gitolite. Depuis la version 0.6 de nombreuses fonctionnalités ont été rajoutées et un gros travail de refonte du code et d'optimisation a été réalisé.

      Vous trouverez toute la documentation nécessaire dans le Wiki du projet Github.

      Mise à jour : depuis la rédaction de la dépêche, le plugin a reçu deux mises à jour mineures. La dernière version à utiliser est donc la 0.7.2.

      Changements de la version 0.7 :

      • retrait de la gestion de Redmine 1.x ;
      • retrait de la gestion de Rails 2.x ;
      • retrait de la gestion de Ruby 1.8.x ;
      • remplacement des Rails Observers par des Active Record Callbacks ;
      • remplacement de l'interface maison Gitolite par une gem Gitolite ;
      • beaucoup de nettoyage de code ;
      • beaucoup de corrections de bugs ;
      • ajout des listes de diffusion Git ;
      • ajout des jobs asynchrones Sidekiq ;
      • ajout du choix de la branche par défautselection ;
      • ajout de l'initialisation automatique de dépôt ;
      • ajout du téléchargement de l'historique Git ;
      • ajout de la prévisualisation des fichiers README ;
      • ajout de la gestion des clés config du dépôt ;
      • ajout des statistiques améliorées sur le dépôt ;
      • ajout de la synchronisation des problèmes Github ;
      • ajout du parcours des dépôts archivés ;
      • ajout de la CSS Bootstrap ;
      • ajout d'icônes avec une meilleure police.

      Changements de la version 0.7.1

      • suppression de la dépendance ENV['HOME'] ;
      • suppression de la dépendance sur le fichier Git config ;
      • suppression de la dépendance sur le fichier SSH config ;
      • diverses corrections de bugs ;
      • utilisation de la dernière version de la gem jbox-gitolite (1.1.11).

      Changements de la version 0.7.2

      • correction d'une erreur en cas de migration depuis une version 0.6.2 ;
      • correction d'un plantage quand une resynchronisation de clés SSH a lieu avec Sidekiq.

      Lire les commentaires

    • 5 ans de support pour un sous-ensemble de Debian Squeeze (Journaux LinuxFR)

      Cher journal,

      Tu as peur de Heartbleed mais tu as aussi peur de mettre à jour, tu n'aimes pas les h, les o ou les u dans le nom de ta distribution. Voici une nouvelle qui devrait t'intéresser. Le support de Debian Squeeze va s'arrêter fin mai mais un groupe distinct1 de l'équipe sécurité officielle de Debian a décidé de continuer le support jusque février 2016. Tous les détails ne sont pas encore fixés mais il semblerait qu'on s'oriente vers une branche à part, appelée squeeze-lts où les personnes chargées de la maintenance auraient les droits d'upload. De plus, seules les architecture i386 et amd64 seront prises en charge et certains paquets (comme les applications web) ne seront pas maintenu mais il y aura un moyen de déterminer quels paquets seront affectés.

      Et, cerise sur le gâteau, si cela se déroule bien et que les personnes derrière ce projet sont toujours motivées, il se pourrait bien que le scénario se répète pour Wheezy et Jessie.

      Et pour ceux qui n'aiment pas Debian ou qui aiment mettre à jour, une nimage.


      1. même si une partie des personnes impliquées se trouve dans les deux équipes. 

      Lire les commentaires

    • Lots de correctifs pour NetBSD (Dépêches LinuxFR)

      La fondation NetBSD a annoncé le 25 janvier dernier une nouvelle fournée de versions de leur système d'exploitation éponyme. Point de nouvelle fonctionnalité ici, il ne s'agit que de correctifs de bugs, et surtout de sécurité. Le nombre de nouvelles versions mineures peut sembler important, mais il n'est que l'application du plan de version tel qu'il est défini par la fondation. Ces versions sont les suivantes : 6.1.3, 6.0.4, 5.2.2 et 5.1.4.

      De plus, le 12 avril dernier, deux nouvelles versions de la branche 6 ont été rendues disponibles, afin de corriger la désormais connue faille Heartbleed : 6.1.4 et 6.0.5. La branche 5 n'est pas affectée par cette faille.

      Une partie de ces corrections est abordée en deuxième partie de dépêche.

      Pour toutes les versions

      Toutes les versions publiées corrigent le CVE-2014-0591 : il s'agit d'une faille dans Bind située au niveau de la gestion des zones signées avec NSEC3, qui peut aboutir à un plantage si des requêtes forgées sont reçues.

      Autre faille de sécurité corrigée pour tout le monde, et référencée sous l'indice CVE-2013-6462 : il s'agit d'un buffer overflow dans X.org, plus exactement dans libXfont. Celui-ci pouvait provoquer un plantage, voire une exécution de code. Xorg bénéficie d'une deuxième correction, corrigeant le CVE-2013-4396, qui pouvait entraîner un plantage, mais aussi une grande consommation mémoire.

      On repart du côté des services réseau : il s'agit cette fois d'ajouter des options par défaut au fichier de configuration du serveur NTP, afin d'éviter les attaques DoS d'une part, et d'amplifier d'autres attaques d'autre part.

      Parmi les autres correctifs communs, sont concernés Xen PR 46313, IPv6, la (non-)création d'image ISO pour l'architecture ews4800mips.

      Correctifs spécifiques aux branches 6.0 et 6.1

      Horreur ! Malheur ! Un bug dans Qemu l'empêche de faire démarrer NetBSD. Le problème est bien entendu remonté, et porte le numéro 897771. Bien qu'il ait été corrigé, il est possible que certaines personnes utilisent une version affectée par le bug. Une correction a donc été faite du côté du noyau NetBSD (port-xen/46313), qui consiste à utiliser le mode PCI 1 quand le système tourne sous Qemu.

      Autre composant corrigé dans la branche 6, l'installeur, nommé sysinst. Celui-ci doit, en théorie, se comporter comme fdisk lorsqu'il s'agit de l'alignement des partitions. Sauf que devinez quoi, dans le cas d'un disque de moins de 128 Go, l'offset du MBR était quand même positionné à 2048 quand on le mettait à 0. Les détails sont dans le PR 48304.

      Un deuxième problème Xen touchait aussi les branches 6, provoquant un kernel panic du dom0, ou un plantage de l'hyperviseur dans le cas de création de certains domUs. Pour rencontrer le bug, il fallait que le pilote frontend du domU ne fournisse pas à xenstore d'entrée nommée "protocol".

      Si vous utilisez NetBSD sur une machine sparc64, vous avez peut-être eu du mal à compiler gtk+ en version 3.10.6. Rassurez-vous, c'est du passé, des corrections ont été faites dans GCC, qui générait un mauvais code assembleur.

      Quelques autres corrections intéressantes touchant par exemple TLS (PR 48324), un plantage noyau avec tcpdrop (PR 48098), un problème au niveau des sockets (PR 47591), et une erreur de « couper-coller » dans fsck_ffs.

      Branche 5

      On notera l'absence de correctif spécifique aux versions 5.2 et 5.1 : en effet, les problèmes touchant ces versions touchaient aussi la branche 6.

      Lire les commentaires

    • Sortie d’Ubuntu 14.04 LTS (Dépêches LinuxFR)

      Sortie le 17 avril 2014, Ubuntu 14.04 est la vingtième version d’Ubuntu et la cinquième version LTS (pour Long Term Support, c’est‐à‐dire maintien à long terme). Son nom de code est Trusty Tahr, soit le caprin « tahr sûr » en bon français.

      Pour rappel, Ubuntu est une distribution GNU/Linux basée sur Debian. Elle est principalement destinée à être utilisée sur des ordinateurs de bureau, des portables ou des mobiles. Elle se veut simple d’accès pour les utilisateurs n’ayant pas des connaissances poussées en informatique.

      En plus de la distribution mère, Ubuntu, il existe plusieurs variantes officielles fournies avec des choix logiciels différents, afin de couvrir un besoin (Ubuntu Server, Edubuntu…) ou de fournir un environnement de bureau en particulier (Kubuntu, Xubuntu…). Cette dépêche présente les nouveautés pour les principales d’entre elles.

      Tahr

      Sommaire

      Une version LTS

      Une version ordinaire d'Ubuntu n'est maintenue que pendant 9 mois, ce qui la déconseille de fait aux utilisateurs peu avertis ainsi qu'aux entreprises qui ne souhaitent pas mettre à jour leurs machines aussi régulièrement.

      Tous les deux ans, une version dite LTS sort et offre, quant à elle, un maintien de 5 ans. Le maintien concerne à la fois la correction des bogues fonctionnels et de sécurité.

      Le gestionnaire de mises à jour permet de passer directement d'une LTS à la suivante sans passer par les versions intermédiaires. Notez cependant que la migration depuis Ubuntu 12.04 LTS ne sera proposée aux utilisateurs qu'à partir de fin juillet, quand la révision 14.04.1 sera sortie. En attendant, les impatients peuvent migrer via la commande update-manager -d.

      Canonical emploie une équipe spécifique pour maintenir tous les paquets du dépôt main. Le contenu des autres dépôts est maintenu du mieux possible par Canonical et la communauté.

      Certaines des distributions officielles dérivées d'Ubuntu disposent, elles aussi, d'un support à long terme et bénéficient, de ce fait, du label LTS. C'est notamment le cas d'Edubuntu, de Kubuntu (dont le support sera effectué pendant 5 ans par la société Blue Systems) ainsi que de Xubuntu, Lubuntu, Ubuntu GNOME et Ubuntu Studio, qui bénéficieront d'un support communautaire de 3 ans.

      Les principales nouveautés

      Alors que la précédente version utilisait Linux 3.11, Trusty Tahr dispose du noyau 3.13 sorti en janvier dernier. La 14.04 profite également de la sortie récente de APT 1.0.0.0b (voir aussi ce journal), qui est d'ores et déjà dans les dépôts. Toutes les opérations courantes de manipulation des paquets pourront désormais être effectuées avec la seule commande apt, bien que apt-get et apt-cache soient, pour l’instant, toujours disponibles par défaut pour des raisons de compatibilité. Toujours du côté technique de la force, on trouvera GCC 4.8.2, Python 3.4, Xorg 15.0.1 et Mesa 10.1.

      Ubuntu

      L’interface de USB Creator a été peaufinée pour régler quelques bugs. Pour rappel, il permet de mettre une image disque d’Ubuntu sur clé USB et de la rendre amorçable.

      Unity, l'interface utilisateur pour GNOME 3 développée par Ubuntu, a reçu de nombreuses améliorations détaillées dans cet article d'Ubuntuser.com. En effet, après plusieurs années de travail, le nouveau décorateur de fenêtre pour Unity est enfin disponible. Ce dernier permet d'utiliser un menu local (intégré dans la barre de titre) à la place du menu global (intégré dans la barre globale), un redimensionnement en temps réel des fenêtres et l'introduction de véritable coins arrondis dans celles-ci, ces derniers ayant jusqu'ici un léger effet pixelisé.

      Bords ronds et intégration locale des menus

      Par ailleurs, il est maintenant possible de faire des recherches dans le mode exposé, ce qui peut-être pratique lorsqu'on cherche du contenu précis parmi de nombreuses fenêtres.

      Recherche en mode exposé

      On notera également que les développeurs ont fait des efforts pour remplacer les menus propres aux applications GNOME, qui s’intègrent très bien dans GNOME 3 classique mais sont plus gênantes dans Unity, par des menus déroulants plus traditionnels qui s'afficheront dans le menu global ou le menu intégré localement (comme c'est déjà le cas pour les autres logiciels).

      L'écran de verrouillage est maintenant directement géré par LightDM, ce qui améliore la sécurité de l'ensemble, la rapidité du processus de verrouillage et de déverrouillage et permet une meilleure intégration visuelle du-dit écran dans l'environnement de bureau.

      Enfin, les possesseurs d'écran très haute définition seront heureux d'apprendre que ces derniers sont désormais totalement pris en charge.

      LibreOffice, la suite bureautique libre fournie par défaut avec Ubuntu, a elle aussi été mise à jour. La nouvelle version 4.2.3 apporte beaucoup de corrections et de nouvelles fonctionnalités, présentées dans une précédente dépêche. Parmi les nouveautés visibles du premier coup d'œil, on notera l'introduction d'un nouveau centre de démarrage et l'arrivée d'un nouveau jeu d'icônes baptisé Sifr.

      Le nouvel écran de démarrage

      Au final, cette nouvelle mouture apporte des évolutions appréciables mais relativement peu nombreuses. LTS oblige, une bonne partie du temps de développement a consisté à traquer puis corriger divers bugs au travers de l'interface, ceci afin de simplifier la maintenance de l'ensemble pour les 5 ans à venir.

      Kubuntu

      C’est le tout frais KDE 4.13 qui est présent dans cette version de Kubuntu.

      Ça faisait plusieurs versions que Rekonq était devenu le navigateur web par défaut. C’est désormais Firefox qui remplira ce rôle.

      Un équivalent Kubuntu du gestionnaire de pilotes matériels présent depuis quelques années dans Ubuntu a été introduit en remplacement de Jockey-KDE. Il s'agit d'un KCM (module de l’application « Configuration du système »), ce qui permet donc une intégration plus naturelle dans l'environnement tout en partageant d'avantage de code avec Ubuntu.

      Nouveau gestionnaire de pilotes de Kubuntu

      Un nouvel outil pour gérer les pavés tactiles (touchpads) a été introduit. Il propose de nombreuses options, dont la désactivation du pavé tactile si un périphérique de pointage est branché ou pendant la frappe (afin d’éviter un clic accidentel).

      Nouvel outil de gestion de pavé tactile

      Un nouveau plasmoïde pour la gestion du réseau débarque. Il remplace complètement le précédent qui commençait à être vieillissant. Écrit en QML, il est plus compact et l’interface a été amélioré grâce aux retours utilisateurs. Vous pouvez trouver plus d’informations dans cet article chez grulja ou ou celui chez lamarque-lvs.

      Nouveau plasmoïde de gestion du réseau

      KDE Connect est un tout nouveau logiciel absolument génial qui facilite les interactions entre KDE et votre appareil Android. Partage de fichier d’Android à l’ordinateur via le bouton Partager, contrôler les lecteurs multimédias de votre ordinateur depuis votre téléphone, synchronisation du presse-papiers, et d’autres petites choses sympathiques.

      Module de configuration de KDE Connect

      Un nouvel outil a été ajouté pour pouvoir envoyer un rapport en un clic après un plantage.

      Pour le reste, on notera l'arrivée de nouvelles notifications systèmes, du SDK KDE, l'amélioration des paramètres de langue, l'introduction de KDE Telepathy et bien d'autres choses encore.

      Xubuntu

      Cette nouvelle version de Xubuntu apporte plusieurs nouveautés, dont beaucoup de changements au niveau de l'interface graphique. Le menu standard de XFCE 4 est ainsi remplacé par Whisker Menu tandis que MenuLibre remplace Alacarte comme éditeur de menu par défaut.

      Whisker menu

      Comme pour Ubuntu, l'ancien écran de verrouillage a été retiré au profit de Light Locker, l'écran de verrouillage fourni par LightDM. On notera également l'arrivée d'un nouveau fond d'écran par défaut et l'ajout dans les dépôts d'un paquet contenant les papiers peints issus d'un concours communautaire.

      Parmi les nombreux logiciels présents dans les dépôts qui ont été mis à jour, plusieurs sont fournis par Xubuntu à l'installation. La 14.04 vient ainsi, entre autres, avec gmusicbrowser 1.11.1 et Parole 0.6. gThumb n'est, en revanche, plus présent à l'installation, faisant désormais de Ristretto le seul logiciel de visionnage de photos présent par défaut.

      Lubuntu

      Cette version de Lubuntu apporte peu de changements, la principale nouveauté étant que ce système d'exploitation est, pour la première fois, maintenu à long terme.

      Un soin tout particulier semble néanmoins avoir été porté au rafraîchissement de l'interface, avec l'arrivée d'un nouveau thème, d'un nouvel ensemble d'icônes et d'une nouvelle interface de configuration pour LXSession. Par ailleurs, PCMan File Manager, le gestionnaire de fichier de LXDE, a bien été mis à jour et c'est la toute dernière version, la 1.2.0, qui est incluse par défaut.

      Ubuntu GNOME

      Comme pour Lubuntu, Ubuntu GNOME 14.04 est la première version de cette distribution à être maintenue à long terme.

      Les adeptes de cette déclinaison d'Ubuntu seront heureux d'apprendre que la majorité des composants de GNOME 3.10 sont désormais intégrés au système. De plus, les utilisateurs avancés désireux d'utiliser GNOME 3.12 pourront, si ils le souhaitent, télécharger les logiciels manquants depuis un PPA dédié. Par ailleurs, GNOME Classic session, le mode de GNOME 3 permettant de retrouver une apparence similaire à celle qu'avaient les anciennes versions de cet environnement de bureau, fait son arrivée dans Ubuntu GNOME à cette occasion.

      Edubuntu

      Cette variante dédiée au monde de l'éducation hérite de tous le travail qui a été fait sur le bureau Ubuntu standard. Une nouvelle version majeure 5.5 de LTSP fait son entrée. Celle-ci se veut plus rapide, plus économe en bande passante et plus fiable. Toujours dans le même domaine, on remarquera le passage de l'outil d'administration de labo informatique Epoptes en version 0.5.7 (cela faisait presque 2 ans qu'aucune nouvelle version n'était sortie).

      Ubuntu Server

      Ubuntu 14.04 apporte aussi son lot de belles nouveautés pour les serveurs, en particulier en ce qui concerne la grande mode du moment : les conteneurs.

      Conteneurs

      Cette nouvelle mouture d'Ubuntu voit débarquer LXC en version 1.0, soit sa première version décrétée « stable ». On notera qu'il permet maintenant de faire tourner un conteneur sans aucun privilège (le root du conteneur ne doit plus forcément correspondre au root de l'hôte).

      Toujours sur le même sujet, Docker fait une entrée remarquée dans les dépôts.

      Pour rappel, LXC est un ensemble d'outils relativement bas niveau qui permettent de gérer tous les aspects de la vie d'un conteneur, tandis que Docker vient au dessus pour fournir une interface simple ainsi qu'une série de fonctionnalités intéressantes comme le packaging, le versionnement et d'autres gourmandises dont les barbus raffolent.

      Pour résumer, il n'y a maintenant plus qu'un apt install docker.io entre une installation de base et le monde merveilleux des conteneurs !

      Le reste

      Le serveur Web nginx a intégré le dépôt main, ce qui signifie qu'il sera maintenu officiellement par Canonical pendant toute la durée de cette LTS.

      Du côté des autres avancées notables, on citera par exemple Xen 4.4, Puppet 3 et OpenStack 2014.1.

      Ubuntu Touch

      Énormément de travail a été fait sur cette version, apparue pour la première fois il y a 6 mois. On parle ici de Unity 8/Mir et de tout l'écosystème associé.

      Pour rappel, les deux premiers « Ubuntu-phones » commerciaux sont attendus avant la fin de l'année (l'un par Meizu, l'autre par BQ). Ceux-ci embarqueront très probablement cette version 14.04, agrémentée des diverses mises à jour fonctionnelles qui vont continuer d'y être poussées dans les prochains mois.

      Le support du Galaxy Nexus et du Nexus 7 version 2012 a été abandonné pour se concentrer sur du matériel plus récent et donc plus proche de ce qui sera proposé dans le commerce prochainement. Le Nexus 7 version 2013 est maintenant pris en charge officiellement.

      La première priorité était d'implémenter un mode « tablette » à l'interface. Celui-ci permet par exemple, en mode paysage, d'afficher simultanément deux applications : une en mode téléphone et une en mode tablette.

      side stage

      Beaucoup de mises au point, d'optimisations et de fonctionnalités importantes ont été ajoutées (service pour les notifications Push, gestion des téléphones double SIM, des doubles appels, de la mise en attente, système d'alarme, synchronisation du calendrier et des contacts, notification lorsqu'une mise à jour est disponible…).

      Beaucoup d'autres choses sont dans les tuyaux et arriveront prochainement via les mises à jour. On citera par exemple la prise en charge des MMS.

      Nouveau changeur d'applications, testé et approuvé par votre serviteur :

      switcher
      Comme auparavant, faire glisser un doigt du bord droit de l'écran vers la gauche permet de passer à l'application suivante (l'ensemble des applications lancées formant une pile). Cette nouvelle vue « globale » se déclenche si le mouvement du doigt se prolonge après la moitié de l'écran.

      Sous le capot, on notera principalement le passage à une base Android 4.4 pour ce qui concerne le noyau et les pilotes des modèles actuellement pris en charge.

      Alors qu'on pouvait qualifier la version 13.10 du téléphone d'ébauche, force est de constater que les choses ont bien évoluées. Les téléphones qui sortiront dans le commerce ne profiteront certes pas d'un OS aussi mature qu'un Android, mais le résultat devrait rester honorable.

      Et dans 6 mois ?

      Le nom de code de la version 14.10 n'a certes pas encore été annoncé, mais on voit déjà se dessiner les grands travaux qui auront lieu.

      Convergence, convergence et convergence

      Tous les efforts de Canonical et d'une partie significative de la communauté sont actuellement concentrés sur la création d'un environnement convergent complet.

      Pour faire court, une interface est dite « convergente » lorsqu'elle est utilisable sur toute forme d'interfaces. Mieux qu'un long discours, voici une vidéo montrant une application utilisant le SDK Ubuntu fonctionner sur un téléphone, une tablette et un PC.

      Concrètement, cela consiste à faire évoluer Unity 8 (l'interface utilisée actuellement sur téléphones et tablettes) pour qu'il puisse remplacer Unity 7, soit l'interface actuelle du bureau par défaut d'Ubuntu. Le tout sans faire régresser l'expérience utilisateur actuelle.

      Les plus aventureux d'entre vous pourront d'ailleurs tester Mir/Unity 8 sur leur Ubuntu 14.04, en sachant que celui-ci ne tournera qu'en mode « tablette » dans l'immédiat.

      Il y a objectivement peu de chance que ce travail titanesque soit achevé d'ici la 14.10. Cependant, il est probable que quelques applications du cœur d'Ubuntu Touch commencent à débarquer sur le bureau. Le gestionnaire de fichier et le panneau des paramètres système sont par exemple pressentis, en remplacement de Nautilus et du fork actuel de Gnome Control Center.

      De la polémique en perspective

      Nous verrons peut-être le début du remplacement d'Upstart par systemd !

      Lire les commentaires

    • Sélection des candidats pour le prix Hugo 2014 & Rosny aîné 2014 (Journaux LinuxFR)

      Les nominés pour les prix Hugo, et Rosny aîné, pour l’année 2014 ont été annoncés.
      Pour rappel le prix Rosny aîné récompense des œuvres de SF francophones (Roman, et nouvelle), et le prix Hugo couvre une palanquée de catégories de la nouvelle au long métrage, publiés l'année précédente (2013).
      En plus de récompenses pour les œuvres publiés en 2013, des retro Hugos seront décernés pour l’année 1939.

      Lire les commentaires

    Il vaut mieux pomper même s'il ne se passe rien que risquer
    qu'il se passe quelque chose de pire en ne pompant pas.
    -+- Devise Shadok -+-