Syndiquer le contenu
Mis à jour : il y a 49 min 18 sec

Revue de presse de l'April pour la semaine 42 de l'année 2014

20 octobre, 2014 - 21:03

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 Monde.fr] Dark Wallet, les anarchistes de l'argent

Par Yves Eudes, le samedi 18 octobre 2014. Extrait:

Un groupe de techno-militants vivant dans des squats veut construire sur Internet un nouveau système monétaire libre et anonyme.

Lien vers l'article original: http://www.lemonde.fr/pixels/visuel/2014/10/18/dark-wallet-les-anarchistes-de-l-argent_4508228_4408996.html

[Silicon.fr] Linux: Linus Torvalds justifie son franc-parler face à la communauté

Par Ariane Beky, le vendredi 17 octobre 2014. Extrait:

Le créateur du noyau Linux admet la violence d’échanges au sein de la communauté de développeurs, mais ne regrette aucune décision prise en 23 années de développement.

Lien vers l'article original: http://www.silicon.fr/linux-linus-torvalds-erreurs-communaute-99623.html

[Next INpact] Terrorisme: blocage et déréférencement administratifs adoptés au Sénat

Par Marc Rees, le jeudi 16 octobre 2014. Extrait:

Comme une lettre à la poste! Les sénateurs ont adopté le projet de loi sur le terrorisme et spécialement l’article 9, celui qui instaure le blocage administratif des sites. Comme annoncé ce matin dans nos colonnes, le gouvernement a fait adopter en séance un sous-amendement visant à étendre cette mesure administrative au déréférencement des sites.

Lien vers l'article original: http://www.nextinpact.com/news/90454-terrorisme-blocage-et-dereferencement-administratifs-adoptes-au-senat.htm

Et aussi:

[ZDNet] Munich: revenir de Linux à Windows coûterait des millions d’euros

Par la rédaction, le jeudi 16 octobre 2014. Extrait:

Munich rebasculera-t-il vers Windows? Pour le maire de la ville, le seul fait de passer de Linux à Windows 7 couterait déjà 3,15 millions d’€ en achats de nouveaux PC. En ajoutant les licences Windows, ce sera encore des millions en plus, et un gâchis des 14 millions d’€ de LiMux.

Lien vers l'article original: http://www.zdnet.fr/actualites/munich-revenir-de-linux-a-windows-couterait-des-millions-d-euros-39807869.htm

[La Tribune] «Dégoogliser Internet», le combat d’irréductibles Gaulois du logiciel libre

Par Delphine Cuny, le mercredi 15 octobre 2014. Extrait:

Proposer des alternatives aux services populaires des géants du Web, c’est la démarche de l’association de promotion des logiciels libres Framasoft. Un combat essentiel et salutaire après l’affaire Snowden, ou bien utopique et perdu d’avance? Décryptage.

Lien vers l'article original: http://www.latribune.fr/technos-medias/internet/20141015trib00504cf3a/degoogliser-internet-le-combat-d-irreductibles-gaulois-du-logiciel-libre.html

Et aussi:

Voir aussi:

[CNRS Le Journal] Jean Tirole, Prix Nobel d’économie

Par Matthieu Ravaud, le lundi 13 octobre 2014. Extrait:

Pour faire simple, notre économiste a développé des notions théoriques très importantes (lire notre article "Les jeux de l'économie selon Jean Tirole") qu’il a ensuite appliquées à une multitude de problèmes concrets. Son domaine de prédilection? La nouvelle économie industrielle, dont il est le père fondateur. Auteur en 1988 de l’ouvrage de référence en la matière, connu comme «Le Tirole» dans le monde entier, il a travaillé, entre autres, sur l’économie des logiciels libres, les regroupements de brevets, ou encore les ententes tacites entre entreprises.

Lien vers l'article original: https://lejournal.cnrs.fr/articles/jean-tirole-prix-nobel-deconomie

[Juritravail] Validité d’une clause de contrat de travail sur la publication par l’employeur de logiciel sous licence libre

Par Dalila Madjid, le lundi 13 octobre 2014. Extrait:

Le Conseil de Prud’hommes de Paris, par jugement en date du 4 juin 2014, n’a pas remis en cause la validité d’une clause de propriété intellectuelle d’un contrat de travail imposant à l’employeur de publier des logiciels sous licence libre, développés par des salariés.

Lien vers l'article original: http://www.juritravail.com/Actualite/clauses-contrat/Id/159331

Télécharger ce contenu au format Epub

Lire les commentaires

Framasoft veut dégoogliser Internet !

20 octobre, 2014 - 03:13

Framasoft lance une campagne d’envergure : Dégooglisons Internet. Après avoir mis en place Framapad, Framadate, Framindmap, Framanews et le petit dernier Framabag, il était temps de passer à la vitesse supérieure en annonçant la mise en place de plus de services L.E.D.S. (Libres, Éthiques, Décentralisés et Solidaires). L’annonce s’est donc accompagnée de l’ouverture d’un nouveau pod Diaspora* pour les francophones soucieux de leur vie privée : la Framasphère.

L’objectif est d’installer, face à chaque service propriétaire, un service L.E.D.S. hébergé par les soins de Framasoft. L’association s’inscrit dans un contexte d’ouverture en encourageant les projets qui participeront à cet effort d’émancipation des « grands de l’Internet ».

N .D. R. : une autre dépêche (actuellement en rédaction) liste des alternatives aux services habituels sur Internet, permettant d’utiliser des services libres pour vos activités de tous les jours.

La dégooglisation, c’est pas que pour les geeks !

C’est parti ! Alors que Google devient de plus en plus tentaculaire, que Facebook décide de continuer ses expérimentations sur ses clients « pour leur bien », qu’Apple se fait pirater ses serveurs ; Framasoft, association francophone de promotion et diffusion des logiciels libres (ça fait toujours du bien de le rappeler !) se lance dans un nouveau défi : bouter l’envahisseur hors de la Gaule libérer l’Internet !

Github, Google Search, Skype, Dropbox… tout doit y passer ! Pour cela, un plan a été mis en place en sortant de nouveaux services régulièrement jusqu’en 2017. Ici, rien de magique, les services proposés se baseront tous sur des logiciels libres existants (avec éventuellement quelques retouches). Le but n’est pas de réinventer la roue mais bien de capitaliser sur les projets existant en les plaçant sous une marque commune pour apporter de la cohérence à l’opération (certains l’ont bien remarqué !).

Vous l’aurez remarqué, quitter Google pour tout centraliser chez Framasoft, ce n’est pas génial… et ce n’est pas le but ! L’opération Dégooglisons Internet est résolument orientée grand public, mais pas que. Aux premiers, l’objectif est de leur montrer les problèmes du système actuel et de leur expliquer que rien n’est perdu, il existe d’autres solutions plus respectueuses et qui marchent ! Aux autres, plus avertis et plus techniques, on veut leur dire qu’il est possible de s’auto‐héberger et on va leur montrer comment, en leur mettant à disposition différentes « recettes » pour installer les services que l’association va peu à peu mettre en place.

Et pour répondre aux dernières questions (ou trolls, c’est vous qui voyez), Gee vous a concocté un petit dessin.

Aidez Framasoft, ayez le Framaréflexe !

Développeurs, designers, traducteurs, utilisateurs, Framasoft a besoin de toutes les bonnes volontés ! Que ce soit en relayant le message, en contribuant au code source, en proposant de nouvelles idées ou, plus important encore, en faisant un don (mensuel de préférence), vous pouvez participer au combat de l’association. Et si vous avez des idées mais que vous ne savez pas trop par où commencer, Framasoft a mis en place une page pour vous inviter à participer à cette belle aventure (n’oubliez pas de vous inscrire à la liste de diffusion en bas de page si vous souhaitez vous impliquer !).

La plus simple des actions reste encore d’avoir le Framaréflexe : lorsque votre sœur, votre père ou votre voisin viendra vous voir en vous disant « J’ai préparé un Doodle », « J’ai mis les photos des vacances sur Dropbox » ou encore « T’es sur Facebook ? », vous n’aurez qu’à leur répondre « Ah, mais t’es so 2013 ! La NSA, l’espionnage de masse, ta vie privée, ça ne te dit rien ? Va voir sur http://degooglisons-internet.org/, ils expliquent très bien tout ça, et en plus ils proposent des alternatives. »

Télécharger ce contenu au format Epub

Lire les commentaires

Participer à l'espace de rédaction de LinuxFr.org

18 octobre, 2014 - 23:06

Quitte à discuter de l'espace de rédaction, autant faire appel à ses participants réguliers pour en parler ;-)

L'espace de rédaction c'est ce qui permet sur LinuxFr.org de préparer ses dépêches de manière collaborative, grâce à l'aide de ses pairs, des habitués de la rédactions ou de quiconque est inscrit sur le site. Un intérêt est de bénéficier de l'écriture à plusieurs pour agréger les compétences, les centres d'intérêt et le temps de chacun pour constituer des dépêches de qualité sous licence libre CC-by-SA.

N'hésitez pas à indiquer ce qui vous faciliterait la participation à la rédaction ;-) Le seul pré-requis est d'avoir un compte valide, quel qu'en soit le karma.

Voici un retour d'expérience sur la rédaction globalement et des questions plus spécifiquement destinées à ceux qui y participent ou souhaiteraient y participer davantage ; une fois la dépêche publiée, il vous reste les commentaires pour vous exprimer.

Sommaire Présentation générale de l'espace de rédaction

Il y a les statistiques de rédaction : c'est une ludification (gamification), où rédacteurs et modérateurs apparaissent, ce qui met en avant la modération, certaines dépêches étant envoyées directement en modération sans passage préalable en rédaction.

Les rédacteurs ont les moyens de contact et de relance suivant :

  • la tribune de rédaction globale (et sur chaque article, sur le côté droit), avec une icône apparaissant lorsqu'il y a un nouveau commentaire 
  • la liste de diffusion de rédaction et un bouton relance accessible à ceux qui ont le statut rédacteurs et modérateurs
  • les modérateurs sont abonnés à la liste de diffusion de rédaction, pas besoin de mettre modérateurs chez linuxfr.org en copie.

Ce qui fonctionne bien :

  • menées et motivées grâce à Martin Peres, les dépêches noyau permettent de suivre les publications de Linus Torvalds et son franc-parler (cela est accessible à tout inscrit : traduire est à la portée de tous ;-) et en plus cela permet de suivre les évolutions des pilotes libres dans une bonne ambiance) dès que la rc1 sort une dépêche est démarrée
  • les sorties de Firefox, de Gnome… pour KDE, il y aurait besoin de plus de monde :/ ainsi que sur les thèmes récurrents.
    • note de Thomas DEBESSE : il me semble qu’Étienne BERSAC a pris de la distance pour le moment et comme il était très actif au sujet de GNOME, il faudrait être attentif à ce que ça ne fasse pas comme KDE.
  • systemd, Rust et (de temps en temps) Wayland sont propulsés par sinma et A.D. par eingousef tandis que Thomas DEBESSE s'intéresse régulièrement à d'autres jeux (autant ne pas parler de devnewton qui ne fait que vendre sa came en java qui ne fonctionne pas sur ordiphone sous android^WLinux^WDalvik :p)

Un très gros défaut : le manque de coordination, propre au travail collaboratif, chacun fait ce qu'il peut et c'est ce qui fait que cela fonctionne, il y a bien plus d'implication qu'espéré ou attendu ! (c'est en fait une qualité, pour ceux qui souhaitent s'impliquer, un peu désarçonnante pour ceux ne s'y accrochant pas :/).

Pour mettre en visibilité la rédaction et maximiser l'interactivité, il y a quelques entrées de suivi nécessitant un peu plus de discussion afin de mettre en visibilité l'espace de rédaction et ses discussions pour les personnes le choisissant (opt-in), une des idées étant de fluidifier le suivi des discussions entre rédacteurs, animateurs de rédaction, modérateurs et administrateurs :

Si cela n'intéresse personne ni ne suscite l'intérêt d'un rédacteur ou d'un modérateur, ce ne sera jamais publié. Il y a quelques exemples :

  • grapheurs javascript libres pour les statistiques, démarrée en janvier 2013
  • une dépêche « pas sage en seine 2014 » jamais publiée et encore présente mi-septembre, un bon raté, alors que cela aurait dû être publié début juin 2014 (Benoît Sibaud l'ayant enlevée, il n'y a plus le lien, mais il reste quelques cadavres laissés à titre d'exercice, ne vous inquiétez pas)
  • quelques suggestions de contenus techniques n'ayant pas (jusqu'à maintenant ?) trouvé leur chemin pour en faire une dépêche
  • pas besoin d'élaborer, cela n'arrive finalement pas si souvent et cela dépend de l'implication de chacun et de l'importance de publier en temps et en heure, voire de la nécessité de forcer la publication, même si ce n'est pas complètement prêt (les commentaires sont là pour ajouter du contexte une fois publié)
  • néanmoins, cela pose question : est-ce dû au fait que l'auteur n'a pas trouvé le bouton pour pousser en modération ou que cela n'était pas prêt ou qu'il aurait fallu le relancer ? (c'est indécidable généralement)

Tout le monde peut participer

Via le wiki, il est assez facile de comprendre comment cela fonctionne, voire d'ajouter ses propres retour d'expérience (bon, si c'est un bogue, c'est dans le suivi) :

Questions à ceux participant à l'espace de rédaction

Quelques questions aux personnes s'impliquant dans la rédaction, vous pouvez répondre dans les commentaires ou directement ci-dessous (l'édition collaborative est faite pour cela) :

Pouvez-vous vous présenter rapidement ?

En ordre alphabétique, Thomas DEBESSE, sinma et tankey ont choisi de répondre : un rédacteur, un animateur, un modérateur, pas besoin de présentation pour ceux qui les fréquentent tous les jours.

[Note de Thomas : je m’étais permis de copier dans le corps de la dépêche le commentaire de Christophe Chapuis qu’il avait fait dans la tribune de rédaction parce qu’il m’avait semblé intéressant.]

Comment avez-vous connu LinuxFr.org ?
  • sinma : « Je ne me souviens pas vraiment comment j’ai connu le site, mais je me souviens que je lisais surtout les dépêches noyau avec attention, et les discussions dans les commentaires. À l’époque je crois que j’étais encore sous Ubuntu, ou alors c’était peut-être mes débuts sur Arch Linux. Je ne comprenais pas tout mais c’était (et c’est toujours fascinant) de voir l’immensité du travail réalisé à chaque version du noyau Linux (c’est aussi ça qui m’impressionne à chaque version de systemd ou des logiciels KDE aujourd’hui). C’est à force de tomber sur des contenus de LinuxFr.org que j’ai commencé à naviguer sur et à vraiment découvrir le site. »

  • Thomas DEBESSE : « au moment de l’avènement du flux RSS et sa démocratisation, un forum généraliste que je fréquentais assidûment pour sa section programmation en assembleur 68000 pour calculatrice avait créé pour ses utilisateurs une page qui centralisait les flux de divers sites d’actualités (et pas seulement d’actualité technologique). Je lisais les articles qui me tapaient à l’œil dans cette liste, mais très rapidement, je me suis rendu compte que je ne lisais surtout que des articles LinuxFr.org qui n’avaient aucun équivalent en terme de qualité de rédaction et d’exhaustivité. J’avais été aussi très impressionné par le niveau des commentaires qui pouvaient valoir autant si ce n’est plus que l’article. À l’époque il n’y avait pas d’espace de rédaction collaboratif, et les articles avaient tendance à sortir avec de nombreux jours de retard. Ce qui fait que dès que j’apprenais par un autre canal une nouvelle qui m’intéressait (sortie d’une nouvelle version de logiciel par exemple), je venais sur LinuxFr.org tous les jours jusqu’à ce que sorte la dépêche détaillée et ciselée à ce sujet, dépêche que j’attendais avec impatience ! J’ai créé mon compte en 2005 pour écrire un commentaire sur la vente liée de musique et de matériel, après plusieurs mois de pure observation (“lurkage”) »

Quand et comment avez-vous commencé à contribuer à LinuxFr.org ?
  • sinma : « L’espace de rédaction existait longtemps avant que je m’inscrive (mi-2012). C’est seulement un an après mon inscription que j’ai commencé à y jeter un œil de temps en temps pour voir les dépêches en préparation. J’ai commencé à faire quelques corrections sur des dépêches en cours, puis fait une bonne partie de (et terminé) la dépêche sur Linux Mint Olivia qui patinait, pour aider tout simplement. J’ai alors, au fur et à mesure, commencé à contribuer plus régulièrement. »

  • Thomas DEBESSE : « J’ai vraiment commencé à rédiger sérieusement et de manière régulière en 2012, dépêches et journaux confondus. On trouve quelques traces en 2008/2009 mais ça n’est pas significatif du tout. Ce n’est pas un quelconque changement sur LinuxFr.org qui m’a mis le pied à l’étrier, mais un ensemble de circonstances qui m’ont donné un jour le temps de me passionner pour certains sujets et développer mon goût de l’écriture. L’arrivée de l’espace de rédaction collaboratif a rendu la rédaction plus aisée et, surtout, l’initiative : il est plus facile de commencer avant d’en voir la fin, mais c’est surtout ma propre disponibilité qui m’a permis de contribuer. »

Quelles sont les dépêches auxquelles vous contribuez ?
  • sinma : « J’édite assez peu de dépêches différentes, je préfère me concentrer sur la substance des quelques dépêches sur lesquelles je travaille. J’aime bien contribuer aux dépêches sur Firefox ; je crée des dépêches sur systemd (pas mon sujet de discussion préféré, mais très intéressant techniquement), pour chaque version de Rust (depuis la version 0.8), j’essaie de parler de Wayland aussi et je me suis essayé à parler de sécurité, bien que ça ne soit pas du tout mon sujet de prédilection. Parfois la dépêche nécessite majoritairement de la traduction/réorganisation (dépêches sur Wayland et systemd), parfois c’est plutôt de la recherche/synthèse. Pour plus tard, j’espère très bientôt, j’ai pour projet de parler de sujets culturels, pas directement en rapport avec le libre mais plutôt avec l’esprit hacker. »

  • Thomas DEBESSE : « Je collabore parfois aux dépêches ayant trait à des technologies que j’utilise (Gnome, Gstreamer, Owncloud, Linux) parce que je me tiens au courant de cette actualité. Cependant, lorsque je suis à l’initiative de la dépêche, je traite surtout de thèmes liés à la culture libre (les initiatives de Blender ou de MusOpen par exemple), au jeu vidéo (beaucoup de dérivés de moteurs id Software mais pas que), ainsi que certains sujets de marge qui flattent le geek (programmation sur calculatrice, démoscène) ou un peu laissés pour compte (ReactOS et son api win32 libre, couture libre). Mais en réalité, la trame principale de mes dépêches n’est pas la technique mais l’histoire humaine derrière les projets. C’est pourquoi j’écris par exemple énormément sur des jeux vidéos alors qu’en fait je joue très peu en réalité et suis un piètre joueur ! Ce sont surtout des aventures humaines passionnantes, avec des équipes qui se font, se défont, et le projet m’intéresse plus que le jeu lui-même ! Mes plus gros succès : Une histoire de fork et Punix, le baptême du feu sont un reflet de ce triptyque “aventure humaine & marginalité & technique pointue”. »

Pourquoi publier un article sur LinuxFr.org plutôt qu'ailleurs ?
  • sinma : « J’ai commencé à contribuer aux dépêches des autres, puis j’ai créé mes propres dépêches. Partant de là, il était impensable que j’écrive certains articles ailleurs ou tout seul, non seulement pour la rédaction collaborative (notamment pour les dépêches sur Rust), mais aussi pour l’audience (tant au niveau qualité que quantité — et je trouve qu’il est important d’informer un maximum de monde). J’encourage tout le monde à ajouter sa pierre (correction, éclaircissement, ajout — que ça soit votre domaine ou pas du tout c’est toujours intéressant) : ça ne vous engage à rien, et c’est parfois ce qui fait toute la différence. »

  • Thomas DEBESSE : « Je crois que j’ai commencé à lire les dépêches des autres, puis j’ai créé mes dépêches, et enfin j’ai commencé à collaborer aux dépêches des autres. En fait j’écris sur LinuxFr.org pour la même raison que je lis LinuxFr.org, parce que son lectorat (qui se confond avec son équipe de rédaction) est une société exigeante et pointue, et que j’aime lire et écrire des articles soignés qui vont au bout des choses. »

Pourquoi apparemment aussi peu de participation et de contrib'action ?

Il y a 3 000 actifs sur plus de 30 000 utilisateurs ayant un compte et plus de 30 000 visites uniques par jour ? Pourquoi tant de monde se privant de la barre d'outils ??

  • sinma : « Comme sur tous les sites, il y a beaucoup plus de visiteurs que de participants. Et même si les visiteurs occasionnels connaissaient l’existence et les fonctionnalités de la barre d’outils, elle n’est utile qu’aux visiteurs réguliers. »
Pourquoi certaines dépêches ne sont jamais terminées ni publiées alors qu’elles montrent un avancement certain ?
  • Christophe Chapuis : « Un manque que j'ai pu constater, c'est que lorsque quelqu'un “lance” une idée de dépêche avec juste quelques lignes, si d'autres personnes viennent compléter et s'approprier cette dépêche ils ne pourront pas l'envoyer en modération car ils ne sont pas modérateurs ou initiateurs de cette dépêche. Sur LuneOS par exemple, je suis tombé dans ce cas et c'est assez frustrant : j'ai dû relancer 3 fois en dix jours pour que finalement ça se fasse… »

  • sinma : « Parfois, on se rend compte que le travail est plus important que prévu, les contributeurs peuvent déserter plus ou moins au fil du temps, on a créé une dépêche en espérant que les contributeurs fassent la majorité du boulot, ou on n’a parfois plus le temps ou la motivation pour terminer. J’ai déjà vu des dépêches faites aux trois quarts être supprimées car l’information était devenue trop vieille… les relances ne marchent pas toujours. Si vous voyez qu’une dépêche a du mal à avancer, il ne faut pas hésiter à donner un petit coup de main, ça motive et ça montre qu’il y a des personnes intéressées. »

  • Thomas DEBESSE : « Les messages privés ont disparu en même temps qu’est apparu l’espace de rédaction collaboratif (c’est-à-dire lors de la migration depuis templeet vers RoR), peut-être qu’il manque un moyen simple et fiable de contacter un rédacteur  ⁉ » [NdR] : le bouton relance permet d'envoyer un courriel à tous les participants à la dépêche (en CCi) et à la liste de diffusion redacteurs (sur laquelle tout le monde peut s'inscrire).

Pourquoi pas plus d'articles sur KDE ?
  • sinma : «  Malgré mon affection pour les logiciels KDE, je n’ai jamais spécialement eu envie de communiquer dessus. De plus, ça a été relativement calme pendant la stabilisation de la branche 4.x des logiciels KDE, et avant la communication autour de Plasma 5, KF5, les applications KDE 5, la rencontre à Randa, etc. Maintenant c’est le contraire, il y a tellement d’activité que c’est difficile de suivre le planète, et on ne se rend pas compte à quel point c’est épuisant de lire, trier, traduire, organiser, polir (surtout quand on a en parallèle d’autres dépêches). Dans le fond le problème est toujours le même : le manque de contribution !  »
Ajouter les entrées de suivi qui rendraient la rédaction plus efficace :

Les commentaires permettent d'élaborer des entrées de suivi et en discuter, mais s'il n'y a pas d'entrée, cela restera perdu dans un commentaire pouvant difficilement être retrouvé autrement que dans la mémoire commune : autant soumettre ses suggestions au bon endroit ;-)

Télécharger ce contenu au format Epub

Lire les commentaires

Conférence sur la musique libre à Neuchâtel (Suisse) le 23 octobre 2014

18 octobre, 2014 - 21:53

La FCMA et la Superette organisent une conférence/débat sur le thème « Musique libre : terminologie et enjeux », le jeudi 23 octobre 2014 au Théâtre du Pommier à Neuchâtel (Suisse) à 17h30. L'entrée est libre.

Internet a rendu la musique accessible à tous, téléchargeable de façon légale comme illégale. Dans ce climat, comment diffuser sa musique au plus grand nombre sans en perdre le contrôle? Des plateformes, telle que Creative Commons, se développent afin de protéger les œuvres, de les diffuser et de les partager, selon les souhaits de l’auteur. Quels sont les enjeux pour les artistes ? Quelles sont les obligations inhérentes à ce genre de plateforme pour les utilisateurs ? Quelle licence choisir pour quel projet ? Tels sont quelques-uns des aspects sur lesquels les intervenants débattront durant cette rencontre.

Les intervenants suivants ont été invités à partager leur(s) expérience(s) sur le sujet:

  • Eric Mermod (CH) – membre de la Commission de Répartition et des œuvres de la SUISA, créateur de MyMusicRights – permanence de conseils juridiques, administratifs pour les intervenants de la musique ;
  • Alexandre Patti (CH) – fondateur du net label Audioactivity, membre de l’Association Petzi ;
  • Simon Chanson (FR) – musicien, photographe, secrétaire de « Musique Libre ! » et président de « Formats Libres ».

Cette rencontre est gratuite. Elle se déroulera comme suit :

  • 17h30 : ouverture des portes ;
  • 18h : conférence – débat (durée 1h45).

Les participants sont invités à poursuivre le débat et à échanger lors de l’apéritif qui suivra.

Télécharger ce contenu au format Epub

Lire les commentaires

Qpsycle, un studio modulaire de création musicale, cherche des développeurs

18 octobre, 2014 - 21:52

Psycle est un studio modulaire de création musicale, ne fonctionnant jusqu'à présent que sous Windows. Il permet d’utiliser des instruments virtuels ou des enregistrements acoustiques, avec des effets et de les combiner en les assemblant comme module.

De type tracker, sous licence GNU GPL, il gère aussi les vst2 comme des instruments intégrés. (Virtual studio technology est un format initié par Steinberg en tant que protocole de greffons audio).

Qpsycle a pour objectif de porter la version Windows sous Linux en gérant les greffons originaux de psycle et en ajoutant un séquenceur multipiste ainsi que les LADSPA et DSSI, deux interfaces de programmation pour le développement de plugins audio dans le monde du libre, prochainement regroupés sous les spécifications LV2.

La dernière version stable de Psycle vient de paraître sous Windows (06.10.2014) tandis que Qpsycle, bien qu'intéressant dans le monde de la MAO sous Linux où les logiciels de création musicale restent relativement rares (malgré quelques perles comme Ardour et LMMS), est actuellement à la cherche de développeurs pour être relancé aux profits des artistes et musiciens de plus en plus nombreux à se tourner vers le monde de la création musicale libre.

Aux dernières nouvelles (06.10.2014), Qpsycle est repris en main par le développeur baneofshadow qui recompile la version actuelle Qt, en ajoutant lentement des fonctionnalités.

Pour illustrer l'utilisation des modules, voici une copie d'écran :

Télécharger ce contenu au format Epub

Lire les commentaires

Ruby dans le terminal - Session 2 - Le 21 octobre 2014 à Saint-Étienne

18 octobre, 2014 - 21:15

Alolise est un groupe d'utilisateurs de logiciels libres (GUL) de la Loire basé à St-Étienne.

Deuxième session ce mardi 21 octobre, d'une série d'ateliers, hebdomadaires ou bi-mensuels, consacrés à Ruby.

Parce que nous sommes en 2014, beaucoup voient le code comme le moyen d'avoir des jeux multijoueurs, des webapp consommant de multiples API, administrées sur des architectures distribuées de micro service… bla bla bla…

Oui… Mais et le plaisir d'écrire dans tout ça ? À travers les ateliers Terminal Ruby, nous vous proposons de nous attarder sur le plaisir d'écrire, la découverte d'un langage, ses subtilités ou ses multiples variations de tests de réponses autour d'un besoin donné.

Un coding dojo donc ! Avec pour seule ambition de faire tout de suite et sans objectif, des choses qui s'affichent dans le terminal, scripts, jeux en ascii… Un atelier fait pour ceux qui veulent coder tout de suite et surtout écrire, réécrire, débattre et comparer.

Ruby terminal ou le cercle des codeurs disparus 2 Le Retour : à l'écran le 21 octobre 2014.

Bon ! Après le blabla, la technique: Ruby 2.0.0, Ncurses, Vim et … C'est tout !

Lors d'une première session, 6 personnes on eu l'occasion de découvrir ruby avec le traditionnel "hello World !". Plein de variantes, pendant presque 2 heures :D C'est d'ailleurs étonnant de voir dès le début autant de variété dans les solutions. Les discussions et comparaisons ont pu ensuite permettre à chacun de partager ses visions.

Ce mardi à partir de 19h-19h15, on remet ça, au local d'Alolise à Saint-Etienne.

Les infos pratiques ? C'est par ici : l'article sur notre site.

Une solution pour la participation distante est à l'étude, mais ne sera pas en place pour cette fois-ci. Peut-être pour la suivante, le 28 octobre ou le 04 novembre. De plus, on creusera un peu Vim et Git…

Télécharger ce contenu au format Epub

Lire les commentaires

Firefox : dites 33, comme chez le docteur

18 octobre, 2014 - 20:01

La version 33 de Mozilla Firefox est sortie le 13 octobre. Elle apporte son lot d’améliorations.

Desktop OpenH264

OpenH264, développé par Cisco, permet à Firefox de faire des vidéoconférences WebRTC au format H.264. Il n’est pas utilisé pour le décodage de la balise vidéo car il ne gère pas le profil High de H.264 qui est généralement utilisé pour les vidéos diffusées sur le Web.

Publié sous la licence BSD (2 clauses), le code source est disponible sur GitHub.

Vous pouvez lire plus d’informations sur le sujet sur le blog d’Andreas Gal.

Recherche améliorée

Dans les versions précédentes, lors de la recherche d’un seul mot via la barre d’adresse, Firefox tentait de résoudre l’adresse http://mot_recherché puis, seulement après expiration du délai, redirigeait vers la recherche du mot en question (voire, dans certains cas, affichait une page d’erreur).

Désormais la recherche se lancera directement. En cas de potentielle correspondance avec un domaine local, une notification apparaîtra pour demander si l’utilisateur souhaite être redirigé vers le domaine trouvé. Répondre oui rend le comportement par défaut pour ce domaine (déjà le cas pour localhost). C’est un comportement qui devient très proche de Chrome et Chromium.

Le résultat est une rapidité accrue dans l’affichage de la recherche.

De même, les —  maintenant classiques — suggestions proposées par les moteurs de recherche sont intégrées à la page de démarrage de Firefox (about:home) et la page des nouveaux onglets (about:newtab).

Chaînes de caractères JavaScript plus légères et plus rapides

Le moteur JavaScript peut désormais stocker les chaînes Latin1 plus efficacement (1 octet par caractère au lieu de 2). Voici une comparaison avant/après sur une page GMail :

Restauration de session

Le mécanisme de restauration de session a été amélioré. Grâce à une meilleure gestion des sauvegardes de la session, la probabilité de perdre plus de 30 secondes de travail est passée de 1 / 158 à 1 / 630 000 000. Et ce, même en cas de coupure brutale de courant !

Mobile Gestion des périphériques Chromecast et Roku

Firefox pour Android offre maintenant une connexion avec les périphériques Chromecast et Roku. Ainsi, le contenu d’une page Web peut être facilement transmis sur une télévision munie de l’un de ces périphériques.

Amélioration de la gestion des onglets

La navigation par onglet de la version mobile se retrouve largement améliorée dans cette version et rejoint ce qui se fait depuis plusieurs années sous GNU/Linux. Les fonctionnalités suivantes ont été intégrées dans cette version :

  • annuler la fermeture d’un onglet ;
  • afficher la liste des onglets récemment fermés ;
  • fermer tous les onglets ;
  • option de passage rapide à un onglet nouvellement créé (privé ou non).
Nettoyage des données à la fermeture de l’application

Cette option, accessible dans les paramètres de Firefox, va forcer le nettoyage des données (historique, cookies, etc.) lorsque Firefox est fermé.

Outils développeurs Éditeur de courbe de Bézier

Firefox continue à intégrer de nouveaux outils à destination des programmeurs, comme ce nouvel éditeur de courbe de Bézier. Il est maintenant possible de modifier visuellement la courbe de Bézier définissant en CSS la vitesse d’animation d’un élément.

Affichage des éléments ayant des listeners associés

Lors du développement d’une page avec jQuery et consorts, il est parfois difficile de savoir quel listener agit sur un composant. L’inspecteur de page les indique clairement.

Paint flashing

Un outil pour les développeurs avancés, le paint flashing, affiche les sections de la page qui ont été redessinées. Fortement utilisé par les développeurs du navigateur, elle permet aussi aux développeurs avancés de mieux analyser les performances d’affichage de leurs pages.

Affichage des CSS transform

Dans les versions précédentes, les transformations étaient affichées dans l’inspecteur. Maintenant, elles le sont directement dans la page HTML.
Exemple :

Keyframes modifiables

Les règles @keyframes associées à l’élément sélectionné sont affichées dans la section Règles de l’inspecteur et sont éditables comme le montre la vidéo sur le site de Mozilla (Flash).

Prochaine version

À partir de la version 34, l’App Manager sera remplacé par WebIDE : un environnement de développement permettant d’éditer, de lancer et de déboguer des applications Firefox OS. Pour les impatients, cet outil de développement est déjà disponible dans la version 33 en mettant la valeur true dans le paramètre devtools.webide.enabled du about:config.

Firefox 34 n’intégrera pas SSLv3 suite à la découverte d’une faille dans SSLv3, dont vous avez déjà pu lire les tenants et les aboutissants ici‐même.

Télécharger ce contenu au format Epub

Lire les commentaires

Repas du Libre à Toulouse le 23 octobre 2014

18 octobre, 2014 - 13:02

Le groupe d'utilisateurs et utilisatrices de Logiciels Libres de Toulouse « Toulibre », en collaboration avec « Tetaneutral », fournisseur d'accès internet et hébergeur libre, proposent aux sympathisants et sympathisantes de se retrouver l'un des mardis ou jeudis de chaque mois pour échanger autour des logiciels Libres, des réseaux libres, discuter de nos projets respectifs et lancer des initiatives locales autour du Libre.

Ce repas est ouvert à toutes et à tous, amatrices et amateurs de l'esprit du Libre, débutantes et débutants ou technicien(ne)s chevronné(e)s.

Ce « Qjelt » aura lieu le jeudi 23 octobre 2014 à 20 heures, au restaurant « Bois et Charbon » : 64 rue de la Colombette à Toulouse, à proximité de la place Saint Aubin, accessible par le métro à la station Jean Jaurès (ligne A et B). Entrée/plat/dessert + 1/4 de vin à 18€.

Pour des raisons de logistique, une inscription préalable avant la veille au soir est demandée.

Télécharger ce contenu au format Epub

Lire les commentaires

Ateliers au hackerspace le BIB en octobre 2014

18 octobre, 2014 - 09:46

Le BIB, hackerspace Montpellierain, fait sa rentrée avec un peu de latence !

Avec un début d'été chargé où ce sont tenues les RMLL et le déménagement de notre local, l'équipe du BIB n'a pas dérogé à la règle de l'hibernation estivale à laquelle les touristes peuvent assister chaque année dans les rues de Montpellier.

Enfin, après de longues semaines de questionnement et la venue de l’automne annoncée par les pluies (bit)torrentielles auxquelles nous sommes désormais accoutumées, l'activité reprend.

C'est avec émotion que nous vous annonçons cette vague d'ateliers qui se tiendra au Kalaj, le squat artistique qui nous a ouvert ses portes quand tous les autres les fermaient  !
Mais l'heure est aux réjouissements, en passant de la fabrication de savon jusqu'à une nuit cathartique de programmation, toutes les âmes y trouveront leur compte.

C'est aussi l'heure à l'action et à la réincarnation collective, en effet le BIB va se concrétiser sous la forme d'une association et nous nous appliquons à la recherche de financements et d'un nouveau local.

Alors nous vous attendons avec impatience, faites votre choix dans le menu et si rien ne vous convient ramenez vous avec votre grain de sel !

Le Kalaj : 11 rue Desmaze à Montpellier

  • 18/10/2014 - 14:00 - 19:00 Atelier premiers secours

    Pauline présentera les gestes des premiers secours.

  • 18/10/2014 - 19:00 - 23:45 Atelier programmation du noyau Linux
    Apprenez les bases de la création d'un module pour le kernel linux, en participant à The Eudyptula Challenge avec T3h N1ko.

  • 19/10/2014 - 14:00 - 19:00 Atelier enfant : petit robot et bricolage sonore
    Bololipsum propose aux plus jeunes et aux autres la fabrication de petits robots simples, et d'objets sonores.

  • 19/10/2014 - 19:00 - 23:45 Atelier circuit bending
    Après les bricolages, passons a la déstructuration et modification de jouets musicaux.

  • 26/10/2014 - 14:00 - 19:00 Atelier Savon, lessive, déo Do It Yourself
    Marion nous propose d'apprendre comment fabriquer tous les produits ménagers et cosmétiques à partir d’ingrédients simples.

  • 26/10/2014 - 19:00 - 23:45 Atelier Darktable
    Gnujsa présentera le logiciel Darktable.
    Darktable est un logiciel libre de traitement photographique, qui permet d'appliquer des corrections et effets divers à des fichiers numériques (photos en "raw", mais aussi d'autres formats comme le jpeg). Il autorise également le contrôle en temps réel d'un appareil photographique numérique (APN) connecté par un câble à un ordinateur.
    Cette présentation a pour but de vous faire découvrir Darktable. Elle s'adresse non seulement aux photographes, mais aussi à tout type de personne intéressée par le traitement d'image (graphiste ou simple amateur). Il n'est pas nécessaire de posséder un appareil photo numérique.

  • 28/10/2014 - 14:00 - 21:00 Atelier robot from trash

    Fabrication de robots mécaniques, électriques, électromécaniques, voire poétiques, à partir de matériel de récupération. Atelier animé par p33k et pulp_pure.
    Pensez à apporter du matériel de récupération pour construire votre robot (dans la mesure de vos moyens)
    Liste ici : materiel-robots-trash.
    Sept personnes de 15 à 150 ans. Atelier "non-fumeur".
    Sur réservation par mail : alonzo.gael{at}gmail.com ou pulppure{at}free.fr

  • 28/10/2014 - 21:00 - 29/10/2014 - 05:00 Atelier nocturne programmation python
    freipwny et pistache proposent une nuit dédiée au code, libre bien entendu !
    Alors venez vous initier à la programmation python par la pratique ou approfondir vos connaissances !

  • 29/10/2014 - 14:00 - 19:00 Atelier audio sous linux

    Wargreen et Bololipsum présenterons les outils disponibles sous linux pour travailler l'audio.
    Amateurs ou professionnels, simples pédales d'effet pour guitares, Digital Audio Worksation complet, ou systèmes plus exotiques encore.

  • 29/10/2014 - 19:00 - 23:00 Atelier logiciel pure-data, data sonore et video tracking
    Bololipsum est de retour pour présenter ou approfondir les notions de data sonores, et de tracking video, le tout sur et autour du logiciel de programmation graphique Pure-Data.

Télécharger ce contenu au format Epub

Lire les commentaires

Atelier LPIC à Puteaux le 8 novembre 2014

17 octobre, 2014 - 11:49

Dans le cadre de ses formations bi-mensuelles, l'association StarinuX vous convie à l'atelier kickstart : Linux Professional Institute Certifications (LPIC).

Mettez le pied à l'étrier pour réussir les LPIC, passeports pour l'emploi dans le logiciel opensource. Multipliez vos chances de réussite.

Rappel : le LPIC comporte quatre examens, 101-102 et 201-202 (détails).

Objectifs :

  • il faut bien se préparer à l'examen et ne pas le rater car il coûte ~150 € ;
  • s'informer sur l'enjeu du LPIC ;
  • préparer les examens à partir du LPIC 101-102, sous forme de nombreux tests (corrigés) ;
  • recevoir un avis personnalisé sur vos chances de réussir les examens ;
  • la méthode individuelle pour s'y préparer au mieux selon vos résultats.

À l'issue de l'atelier, vous connaîtrez :

  • votre niveau sur GNU/Linux ;
  • la partie 101 et 102 sur laquelle vous aurez progressé ;
  • vos chances de réussite aux LPIC (sans ou avec cours ou attendre…) ;
  • le meilleur moyen pour réussir (éviter de débourser encore 150 Euro pour le repasser).

Public (recommandé) :

  • avoir déjà un niveau GNU/Linux correct ;
  • être motivé pour réussir les LPIC.

Formateur : Marc BAUDOIN, professeur à l'ENSTA, membre-enseignant, agréé LPIC en France (reconnu pour son excellente pédagogie).

Lieu : société Linagora (spécialisée logiciel opensource)
74 rue Roque de Fillol 92800 Puteaux
(carte OpenStreetMap, métro Esplanade de la Défense)

Quand : samedi 08 novembre 2014 de 9h30 à 18h00.

Divers restauration : boissons, micro-ondes sur place, restos/alimentation à côté.

Contact : events AT starinux POINT org

Comme à l'accoutumée, une participation annuelle de 20 € (10 € demandeurs d'emploi) est demandée, valable un an, permettant de suivre au moins 15 ateliers.

Télécharger ce contenu au format Epub

Lire les commentaires

Utiliser colout pour colorier tout ce qu'affiche GDB

17 octobre, 2014 - 08:16

Je sais ce que vous pensez : vous avez beau essayer d'utiliser des interfaces graphiques avec le débogueur GDB (GNU Project Debugger), vous finissez toujours par revenir à la bonne vieille ligne de commande, qui seule vous permet de ressentir une flamboyante puissance et une incandescente rapidité d'action. Dans le même temps, vous aimeriez bien que certaines informations importantes soient agrémentées d'un rouge pétant qui saute aux yeux. Comme je vous comprends. Fort heureusement, GDB est un logiciel complètement hackable, ce qui va me permettre d'exaucer vos vœux les plus ardents.

Il est en effet possible d'attacher des hooks à chaque commande, et d'y appeler des commandes shell. Afin d'ajouter notre touche de carmin, il suffit donc de récupérer la sortie de la commande et de la faire passer dans un colorisateur écarlate. C'est possible, car GDB permet de logguer tout ce qui se passe et qu'Unix a eu la bonne idée d'inventer les pipes nommés.
Pour ajouter la touche de pourpre, un colorisateur capable de gérer facilement des expressions régulières est nécessaire, je vous suggère colout.

La suite de la dépêche vous donnera un exemple de fichier de configuration à utiliser pour ajouter votre touche d'andrinople à votre propre système.

Équipé de tous ces outils libres ultra-cools, il suffit d'éditer votre .gdbinit préféré :

# Créer le pipe de communication. shell test -e /tmp/coloutPipe && rm /tmp/coloutPipe shell mkfifo /tmp/coloutPipe # Activer la redirection (à appeler APRÈS votre commande)... define logging_on set logging redirect on. set logging on /tmp/coloutPipe end # la désactiver. define logging_off set logging off set logging redirect off # Voilà la partie foireuse du hack : pour éviter que le prompt ne s'affiche avant la sortie, il faut le faire attendre... shell sleep 0.4s end # Premier exemple : coloration syntaxique complète du code source. define hook-list shell cat /tmp/coloutPipe | colout --all --source Cpp & logging_on end define hookpost-list logging_off end # Deuxième exemple : coloration de la pile. define hook-backtrace # Regexp pour [path]file[.ext]: (.*/)?(?:$|(.+?)(?:(\.[^.]*)|)) shell cat /tmp/coloutPipe | colout "^(#)([0-9]+)\s+(0x\S+ )*(in )*(\S+) (\(.*\)) at (.*/)?(?:$|(.+?)(?:(\.[^.]*)|)):([0-9]+)" red,red,blue,none,green,cpp,none,white,white,yellow normal,bold,normal,normal,bold,normal,normal,bold,bold,bold & logging_on end define hookpost-backtrace logging_off end

Vous noterez que dans ce dernier exemple, le numéro de frame est coloré d'un vermeil¹ du plus bel effet.

¹ C'est quand même dingue le nombre de synonymes de « rouge » dans la langue française, non ?

Télécharger ce contenu au format Epub

Lire les commentaires

CVE-2014-3566 — Vulnérabilité POODLE

17 octobre, 2014 - 07:26
Qu’est‐ce POODLE ?

POODLE signifie Padding Oracle On Downgraded Legacy. Il s’agit d’une vulnérabilité permettant via une attaque de l’« homme du milieu » (MIM, Man In the Middle), en se plaçant entre le navigateur Web et le serveur Web, de déchiffrer les informations chiffrées.

POODLE affecte les anciennes normes de chiffrement, notamment Secure Socket Layer (SSL) version 3.0. Il n’affecte pas le mécanisme de chiffrement plus récent, et standardisé, appelé Transport Layer Security (TLS).

Recommandations

Pour atténuer cette vulnérabilité, désactivez SSL 3.0 en forçant l’utilisation de TLS, tout en vérifiant la compatibilité des navigateurs clients devant y avoir accès.

Plusieurs bulletins de sécurité ont annoncé la vulnérabilité : Histoire et aides diverses

Google a identifié une faille dans le protocole SSL v3. Il existe des contournements côté serveurs comme côté clients : garder en tête la compatibilité avec les navigateurs clients. Red Hat n’a pour l’instant pas publié d’errata. Cela affecte RHEL5, RHEL6 et RHEL7, également les CentOS. À voir pour les autres distributions…

Remarque : poodle signifie caniche en anglais.

Page pour tester votre navigateur client

https://www.poodletest.com/

Tester par vous même

openssl s_client -connect mon_site:443 -ssl3

Configurer Apache

SSLProtocol All -SSLv2 -SSLv3

Configurer Postfix

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 Tester la vulnérabilité de vos sites

Voici le script proposé par Red Hat :

#!/bin/bash # # Copyright (C) 2014 by Dan Varga <dvarga@redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. host=$1 port=$2 if [ "$2" == "" ] then port=443 fi out="`echo x | timeout 5 openssl s_client -ssl3 -connect ${host}:${port} 2>/dev/null`" ret=$? if [ $ret -eq 0 ] then echo "VULNERABLE! SSLv3 detected." exit elif [ $ret -eq 1 ] then out=`echo $out | perl -pe 's|.*Cipher is (.*?) .*|$1|'` if [ "$out" == "0000" ] || [ "$out" == "(NONE)" ] then echo "Not Vulnerable. We detected that this server does not support SSLv3" exit fi elif [ $ret -eq 124 ] then echo "error: timeout connecting to host $host:$port" exit fi echo "error: Unable to connect to host $host:$port"Télécharger ce contenu au format Epub

Lire les commentaires

Aujourd’hui c’est déjà demain : systemd dans l’initrd sous Arch Linux

16 octobre, 2014 - 18:10

Nous allons voir dans ce petit article comment utiliser systemd dans l’initrd. La construction d’un initrd étant spécifique à la distribution, nous verrons comment l’utiliser avec Arch Linux, mais avec un peu de travail cela devrait pouvoir donner le principe général de fonctionnement et être adaptable sur d’autres distributions.

Sommaire

ATTENTION : nous allons modifier une partie très importante du démarrage de la machine, et il est probable qu’elle ne puisse plus démarrer. Prévoyez donc un live CD quelconque pour pouvoir réparer en cas de souci !

Quelques généralités sur l’initrd

L’initrd, c’est une archive cpio qui est chargée en mémoire vive par le noyau juste après son lancement. Elle est montée sur /, puis le fichier /init est exécuté. Ce dernier est censé s’occuper de lancer tout ce qui est nécessaire au montage de du vrai système de fichiers racine /, et qui n’est pas en dur dans le noyau, comme le chargement de modules noyau : accès au LVM, le déchiffrement de partitions, montage de /usr s’il est sur une partition séparée…

Traditionnellement, ce fichier init est un script shell construit par des outils spécifiques à la distribution.

La construction classique de l’initrd sous Arch Linux

Sous Arch Linux, la construction d’un initrd se fait à l’aide du logiciel mkinitcpio. Il se configure en utilisant le fichier /etc/mkinitcpio.conf. La variable HOOKS est celle qui nous intéresse présentement.

Pour chaque hook présent dans cette variable, deux fichiers seront utilisés, un script install qui sera chargé d’ajouter les fichiers nécessaires à l’initrd lors de la construction, et un script hook qui sera lancé par le script shell init lors de l’amorçage du système. L’ordre d’apparition des hooks dans la variable HOOKS est important, car c’est l’ordre utilisé pour lancer les scripts lors de l’amorçage.

L’utilisation de systemd dans l’initrd

Lorsqu’on utilise systemd dans l’initrd, le fichier /init de l’initrd n’est plus un script shell, mais directement systemd.

Ainsi, lors de la construction de l’initrd avec mkinitcpio, le script hook n’a plus aucun effet, et le script install est chargé, outre les fichiers nécessaires, tels les démons et modules noyaux, d’installer les unités systemd nécessaires à monter la vraie racine. L’ordre d’apparition des hooks dans la variable HOOKS n’a plus d’importance (à une exception près que nous verrons plus bas), car ce sont les unités systemd qui détermineront l’ordre de lancement des différentes unités (et donc de tous les binaires lancés, car tout est lancé via systemd).

systemd dans l’initrd, ça sert à quoi ?

Il y a sûrement des avantages secondaires, comme la parallèlisation, une configuration de démarrage unique et centralisée, et peut‐être d’autres, mais l’avantage principal est quand même de faire rager les anti‐systemd en le mettant partout et à toutes les sauces.

Configuration du système pour utiliser systemd

Le problème principal est que le support d’Arch Linux pour systemd dans l’initrd est un peu balbutiant, et il faut donc mettre un peu les mains dans le cambouis pour que tout fonctionne. Nous verrons ici comment configurer un système utilisant une partition chiffrée contenant du LVM et Plymouth, puisque c’est ma configuration. L’ajout du RAID ne doit pas être très compliqué.

La base

Les hooks base, usr, udev et timestamp ne sont plus nécessaires et sont remplacés par le hook systemd. Les hooks autodetect, block, filesystems, btrfs et keyboard sont toujours nécessaires (au moins sur ma machine). Les autres hooks (lvm, encrypt, plymouth, etc.) seront par la suite remplacés par des équivalents sd-machin.

Les hooks sd-machin doivent toujours être après le hook systemd. En effet, ce hook ajoute une fonction utilisable dans les autres hooks, add_systemd_unit. Cette fonction ajoute dans l’initrd l’unité passée en paramètre, ainsi que toutes ses dépendances.

Correctif 1 : unités dans /etc

Cette fonction a un problème : elle n’utilise que le dossier /usr/lib/systemd/system et ignore donc totalement les unités créées par l’utilisateur, situées dans le dossier /etc/systemd/system (voir le rapport de bogue).

Nous allons donc modifier le hook, en copiant /usr/lib/initcpio/install/systemd vers /etc/initcpio/install/systemd. Nous allons donc pouvoir effectuer nos modifications sans risquer de les voir écrasées par une mise à jour.

Le correctif est le suivant :

--- /usr/lib/initcpio/install/systemd 2014-09-02 00:11:28.000000000 +0630 +++ /etc/initcpio/install/systemd 2014-10-16 13:39:11.291460470 +0630 @@ -51,7 +51,7 @@ local unit= rule= entry= key= value= binary= dep= - unit=$(PATH=/usr/lib/systemd/system:/lib/systemd/system type -P "$1") + unit=$(PATH=/etc/systemd/system:/usr/lib/systemd/system:/lib/systemd/system type -P "$1") if [[ -z $unit ]]; then # complain about not found unit file return 1 @@ -78,18 +78,23 @@ done <"$unit" # preserve reverse soft dependency - for dep in {/usr,}/lib/systemd/system/*.wants/${unit##*/}; do + for dep in {{/usr,}/lib,/etc}/systemd/system/*.wants/${unit##*/}; do if [[ -L $dep ]]; then add_symlink "$dep" fi done # add hard dependencies - if [[ -d $unit.requires ]]; then - for dep in "$unit".requires/*; do - add_systemd_unit ${dep##*/} - done - fi + for dir in {{/usr,}/lib,/etc}/systemd/system/${unit##*/}.requires; do + if [[ -d "$dir" ]]; then + for dep in "$dir"/*; do + if [[ -L $dep ]]; then + add_symlink "$dep" + fi + add_systemd_unit ${dep##*/} + done + fi + done } build() { Correctif 2 : emergency.target

Second problème de ce hook, il n’ajoute pas les utilitaires nécessaires au fonctionnement d’emergency.target, une unité spéciale qui est lancée lorsque l’amorçage plante et donne un shell à l’utilisateur pour essayer de sauver les meubles (voir un rapport de bogue et un autre). On va donc le modifier pour rajouter sulogin, ainsi que les utilitaires de busybox.

--- /etc/initcpio/install/systemd.old 2014-10-16 13:44:23.135993657 +0630 +++ /etc/initcpio/install/systemd 2014-10-16 13:43:23.657715653 +0630 @@ -98,12 +98,22 @@ } build() { - local rules unit + local rules unit applet # from base add_binary /bin/mount add_binary /usr/bin/kmod /usr/bin/modprobe + add_binary /usr/lib/initcpio/busybox /bin/busybox + for applet in $(/usr/lib/initcpio/busybox --list); do + add_symlink "/usr/bin/$applet" busybox + done + + # sulogin is needed for emergency target + add_binary /sbin/sulogin + add_file /etc/shadow + add_file /etc/gshadow + # systemd add_binary /usr/lib/systemd/systemd /init add_binary /usr/bin/systemd-tmpfiles

À ce stade, si l’on a une partition racine simple, on a terminé.

Partition chiffrée

S’il y a une partition chiffrée nécessaire au démarrage, il faut ajouter le hook sd-encrypt.

Attention, les paramètres de ligne de commande du noyau (probablement configurés dans /etc/default/grub) pour indiquer les partitions et leurs options ont changé. Le paramètre cryptdevice est remplacé par luks.machin (man systemd-cryptsetup-generator pour plus d’infos).

Cependant, plutôt que ces paramètres, il est plus utile d’utiliser le fichier /etc/crypttab.initramfs, qui suit la syntaxe de /etc/crypttab.

LVM

Il suffit d’ajouter le fichier sd-lvm. Aucune configuration particulière, car un détection est lancée dès l’apparition d’un nouveau block device, et activé si celui‐ci est un LVM (donc on peut avoir une partition chiffrée dans un LVM et un LVM dans une partition chiffrée, sans avoir à préciser d’ordre particulier ; et même avoir une partition chiffrée dans un LVM dans une partition chiffrée).

Résumé

Il n’y a rien dans la version stable de systemd pour s’occuper de sortir le système de l’hibernation. C’est prévu pour la prochaine version, mais en attendant, il va falloir faire les choses à la main.

On crée donc une unité /etc/systemd/system/resume.target :

[Unit] Description=Resume from disk Before=initrd-root-fs.target sysroot.mount [Install] WantedBy=initrd.target

Et on l’active avec systemctl enable resume.target.

Puis une unité générique /etc/systemd/system/resume@.service :

[Unit] Description=Resume from disk using %I Before=resume.target DefaultDependencies=no BindsTo=%i.device After=%i.device [Service] Type=oneshot ExecStart=/bin/sh -c "echo $(mountpoint -x %I) > /sys/power/resume" [Install] RequiredBy=resume.target

On l’active en utilisant le chemin de sa partition d’échange (swap), dans mon cas : systemctl enable resume@dev-main-swap.service.

On crée enfin le hook mkinitcpio /etc/initcpio/install/sd-resume :

#!/bin/bash build() { add_systemd_unit resume.target } help() { cat <<HELPEOF This hook adds resume capabilities to the initramfs. HELPEOF } # vim: set ft=sh ts=4 sw=4 et:

Et on l’active en ajoutant sd-resume dans la variable HOOKS.

Plymouth

Si l’on utilise le AUR de Plymouth, cela demande un peu de travail.

Création du hook

Il n’y a pas de hook sd-plymouth, donc il va falloir en créer un à partir du hook plymouth. On copie donc /usr/lib/initcpio/install/plymouth vers /etc/initcpio/install/sd-plymouth, puis on applique le correctif suivant pour ajouter les unités systemd :

--- /usr/lib/initcpio/install/plymouth 2014-10-16 09:38:06.000000000 +0630 +++ /etc/initcpio/install/sd-plymouth 2014-10-16 14:05:01.237713438 +0630 @@ -1,7 +1,6 @@ build() { add_dir /dev/pts add_dir /usr/share/plymouth/themes - add_dir /var/run/plymouth DATADIR="/usr/share" PLYMOUTH_LOGO_FILE="${DATADIR}/plymouth/arch-logo.png" @@ -49,7 +48,15 @@ add_binary "$(readlink -e /lib/libnss_files.so.2)" add_file /lib/libnss_files.so.2 - add_runscript + add_systemd_unit systemd-ask-password-plymouth.path + add_systemd_unit systemd-ask-password-plymouth.service + + map add_systemd_unit plymouth-switch-root.service \ + plymouth-start.service \ + plymouth-reboot.service \ + plymouth-kexec.service \ + plymouth-poweroff.service \ + plymouth-halt.service } help() { Utilisation avec systemd-ask-password

Lorsqu’on utilise Plymouth avec un système ayant besoin d’un mot de passe (comme une partition chiffrée), il faut que le mot de passe soit demandée via Plymouth et non sur la console. systemd possède un système plutôt malin pour gérer ce genre de choses, sauf que l’unité plymouth-start.service est cassée, et donc la détection du l’utilisation de Plymouth ne marche pas. On copie donc l’unité /usr/lib/systemd/system/plymouth-start.service vers /etc/systemd/system/plymouth-start.service et on applique le correctif suivant pour corriger le chemin du fichier contenant l’identifiant de processus :

--- /usr/lib/systemd/system/plymouth-start.service 2014-10-16 14:15:55.005953827 +0630 +++ /etc/systemd/system/plymouth-start.service 2014-10-16 14:06:53.054169994 +0630 @@ -7,7 +7,8 @@ ConditionKernelCommandLine=!plymouth.enable=0 [Service] -ExecStart=/usr/bin/plymouthd --mode=boot --pid-file=/var/run/plymouth/pid --attach-to-session +ExecStartPre=/bin/mkdir /run/plymouth +ExecStart=/usr/bin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session ExecStartPost=-/usr/bin/plymouth show-splash Type=forking KillMode=none Création de l’initrd

On crée l’initrd avec mkinitcpio -p linux, on redémarre et on croise les doigts. :)

Pour s’amuser un peu

Pour s’amuser un peu, on peut créer des unités et supprimer de son système /etc/crypttab, /etc/cryttab.initramfs, /etc/fstab et certains paramètres de ligne de commande du noyau (comme root, par exemple).

Ainsi, toute la configuration de démarrage du système est centralisée dans des unités systemd, et non plus éparpillée dans différents endroits.

Suppression de /etc/crypttab et des paramètres luks.machin du noyau

Le plus simple est d’utiliser directement le générateur /usr/lib/systemd/system-generators/systemd-cryptsetup-generator /etc/systemd/system /etc/systemd/system /etc/systemd/system, puis d’analyser les fichiers pour éventuellement les simplifier.

On peut ensuite déplacer /etc/crypttab.initramfs vers /etc/crypttab, puis relancer la commande. On peut maintenant se débarrasser des ces deux fichiers.

Pour les paramètres luks.machin du noyau, le plus simple est de les transformer en une entrée de /etc/crypttab avant de lancer le générateur.

Suppression de /etc/fstab

Même principe en utilisant le fichier /usr/lib/systemd/system-generators/systemd-fstab-generator.

Suppression du paramètre root du noyau

Cette partie est normalement gérée par le générateur fstab, mais celui‐ci génère l’unité correspondant au paramètre root du noyau seulement s’il est lancé dans l’initrd. Il faudra donc créer l’unité à la main.

Cette unité doit s’appeler /etc/systemd/system/sysroot.mount et doit contenir les options habituelles d’une unité [Mount] (man systemd.mount pour les détails). Cependant, les lignes suivantes sont indispensables :

[Install] RequiredBy=initrd-root-fs.target [Unit] Before=initrd-root-fs.target [Mount] Where=/sysroot

Il faut bien sûr ajouter les lignes spécifiques à votre système, notamment What et peut‐être Type dans la section [Mount].

Ne pas oublier d’activer l’unité avec systemctl enable sysroot.mount.

Conclusion

Cette solution de gestion de l’initrd, qui en est à ses débuts, sera sûrement une solution standard à l’avenir et par défaut sur les distributions majeures.

À vos trolls !

Télécharger ce contenu au format Epub

Lire les commentaires

SELKS 1.0 : une distribution

16 octobre, 2014 - 15:23

SELKS est une distribution liv_e et installable qui fournit un système de détection d’intrusion (_Intrusion Detection System, abrévié IDS) Suricata prêt à l’emploi. Elle intègre Scirius, une interface Web de gestion des règles de l’IDS, et le trio Elasticsearch, Logstash et Kibana (ou "ELK"). L’interface Kibana permet d’analyser les alertes et les événements remontés par l’IDS.

Le projet SELKS a été initié pour fournir un moyen de tester rapidement les capacités de l’IDS Suricata dans le domaine de la détection d’intrusion réseau et dans le domaine de la surveillance réseau. En mode live, il est ainsi possible de passer de l’amorçage du système à l’analyse du trafic réseau dans Kibana en 30 secondes.

Le nom SELKS vient de celui des composants majeurs de la distribution :

  • Suricata : sonde de détection d’intrusions et d’analyse réseau ;
  • Elasticsearch : moteur de recherche utilisé pour le stockage des événements ;
  • Logstash : logiciel injectant des fichiers de journaux dans Elasticsearch ;
  • Kibana : interface Web pour la création de tableaux de bord utilisant les données stockées dans Elasticsearch ;
  • Scirius : interface Web de gestion des signatures pour Suricata.

Suricata est une sonde de détection d’intrusion réseau développée par la fondation OISF (Open Information Security Foundation) et disponible sous licence GPLv2. Elle offre des capacités intéressantes tant au niveau de la détection d’intrusions par signatures qu’au niveau de l’analyse protocolaire, grâce à la journalisation des requêtes pour les protocoles HTTP, DNS, SSH et TLS. Suricata est donc un logiciel offrant des fonctionnalités de type IDS et de type network security monitoring (NSM). SELKS intègre la version 2.1 bêta 1 de Suricata qui présente des avancées significatives au niveau de la partie NSM comparée à la version stable 2.0.

Le trio Elasticsearch, Logstash et Kibana est une solution complète d’analyse et de stockage des journaux. L’ensemble de ces outils est développé par la société Elasticsearch.

Scirius est une interface Web de gestion de signatures Suricata développée par Stamus Networks et disponible sous licence GPLv3. Elle est codée en Django et permet la gestion et la mise à jour régulière des règles.

La distribution SELKS est basée sur Debian live. Les sources pour la construction de l’image ISO sont disponibles sous licence GPLv3 sur la page GitHub du projet.

Télécharger ce contenu au format Epub

Lire les commentaires

67 chaussettes pour OpenSSH

16 octobre, 2014 - 02:39

Le 6/10, OpenSSH est sortie en version 6.7. Faut‐il vraiment dire ici ce que fait OpenSSH ou est‐ce dans l’inconscient collectif des libristes ? En très bref, c’est un serveur et un client du protocole SSH, digne descendant de telnet, qui ajoute pas mal de truc comme la redirection de ports…

Quoi de neuf en octobre ?
  • Les algorithmes de chiffrement par défaut ont été changés et notamment CBC et Arcfour ont été désactivés (pas supprimés, il est toujours possible de les activer).

  • La prise en charge de la bibliothèque tcpwrapper a été supprimé. Cela pose, par exemple, des problèmes pour la future Debian Jessie car c’était une fonctionnalité encore souvent utilisée par de nombreux utilisateurs. Debian a décidé de maintenir via un correctif la fonctionnalité pour le moment (voir les commentaires sur LWN).

  • La factorisation du code source continue afin d’améliorer le cœur en vue de fournir une bibliothèque utilisable de manière indépendante. Cependant, le travail n’est pas encore parfait du coté de l’interface de programmation (API), donc la bibliothèque n’est pas encore mise en avant.

  • ssh et sshd intègrent la prise en charge de la transmission (forward) des sockets UNIX. Un port TCP distant peut être connecté à un socket UNIX local et réciproquement. De même, on peut connecter deux sockets UNIX ! Cette fonctionnalité n’était possible jusqu’à présent que pour X-Window via l’option -X, elle ouvre de grands horizons dans l’usage distant d’un poste de travail.

  • Ajout de la séquence d’échappement %C dans le client ssh pour les commandes LocalCommand et ControlPath. %C représente un condensat (hash) du tuple (hôte local, utilisateur distant, hôte distant, port). L’objectif est de pouvoir avoir un nom de fichier court et unique, car sur certains UNIX, on pouvait dépasser la limite du système pour les noms de fichiers correspondant aux sockets UNIX !

Il y a encore pas mal de petites choses concernant le chiffrement, les procédures de test et de robustesse… Le mieux pour les passionnés est de lire la note de version pour avoir une vision détaillée et complète.

Télécharger ce contenu au format Epub

Lire les commentaires

Install Party au Havre le 18 octobre 2014 avec GoeLUG

16 octobre, 2014 - 02:20

Suite au succès d'une première install party, l'association collégiale GoeLUG vous invite pour une deuxième édition, ce samedi 18 octobre de 14h30 à 18h30 au Sonic (Fort de Tourneville, Le Havre).

Au programme : conseils, aide à l'installation d'un système libre (si demande), et démonstrations.
Le matin, une formation sera assurée au bénéfice des installeurs, toute personne souhaitant apprendre comment installer correctement un système GNU/Linux (avec la gestion du dual boot en particulier) peut demander à y participer. Pour cela, nous vous invitons à nous contacter par courriel (contact chez goelug.org)

Vous pouvez venir avec votre portable, si vous avez une tour il n'est pas nécessaire de s'encombrer avec l'écran et les autres périphériques, nous en aurons à disposition.

Pour toute demande de renseignement, n'hésitez pas à nous joindre à l'adresse suivante : contact chez goelug.org

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de 0 A.D. Alpha 17 Quercus

15 octobre, 2014 - 11:45

0 A.D. : Empires Ascendant est un jeu vidéo de stratégie en temps réel (RTS) historique en 3D développé par Wildfire Games. C'est un projet libre (code source sous GNU GPL v.2, données artistiques sous CC-BY-SA 3.0), au développement ouvert, visant des standards de qualité artistique comparables à ceux de l'industrie, ainsi qu'un grand respect de la réalité historique. Le jeu permet d'incarner 12 factions qui ont marqué leur histoire entre les rives de l'Atlantique et la chaîne de l'Himalaya, au cours de la période allant de -500 à -1.
0 A.D. : Empires Ascendant est actuellement en cours de développement, mais une communauté de joueurs conséquente s'est déjà construite autour de ce jeu. Cette dépêche présente la version alpha 17 du projet.

Sommaire

0 A.D. Alpha 17 est sortie le 12 octobre 2014. Son nom de code est Quercus ("chêne" en latin). Sous la république romaine, la corona quercea (couronne de chêne), aussi appelée corona civica (couronne civique), était une haute décoration militaire accordée au soldat qui avait sauvé la vie d'un citoyen romain au combat. Durant la période de temps couverte par 0 A.D., le chêne était également très important dans les cultures grecque et celte, où il était considéré comme un arbre sacré.

TL;DR : Quercus est une version de maturation. Au cours de son développement, les efforts se sont surtout portés sur la correction de bugs. Le travail artistique s'est également concentré sur l'amélioration de l'existant, avec de nouvelles animations, des remodélisations de vieux bâtiments et un remix de la musique principale. Certaines des grosses améliorations espérées après la sortie de l'alpha 16 (Spidermonkey v.31, faction séleucide…) ont été repoussées, alors que d'autres (triggers) ont fait leur apparition plus tôt que prévu. Mais les changements les plus visibles pour l'utilisateur final seront probablement les nombreux ajustements d'équilibrage faits par la communauté et les progrès époustouflants de l'intelligence artificielle.

Quercus apporte les changements suivants :

Code Interface utilisateur
  • L'interface propose deux nouvelles options dans le menu de vitesse de jeu (0,25 x et 0,1 x) ;
  • Nouvelles options de configuration :
    • infobulles détaillées : cette option ajoute des détails supplémentaires (santé/attaque/portée/armure/vitesse) aux infobulles qui décrivent les unités pouvant être entraînées, dans le GUI des bâtiments.
    • affichage des FPS : cette option autrefois activée sur demande via Alt+F peut maintenant être activée de façon permanente ;
    • affichage de l'heure système et du temps du jeu ;

  • Nouvel écran de sélection de mod, accessible dans les options ;

Salon multijoueurs

Ajout de la fonctionnalité de recherche de profil et d’un encadré qui affiche les performances des utilisateurs.

Gameplay
  • Les auras des héros ptolémaïques et séleucides ont été implémentées (dans la mesure des possibilités actuelles du moteur) :

    • Les unités égyptiennes dans le champ de vision de Cléopâtre se battent 20% plus rapidement.
    • Le coût des mercenaires est réduit de 50% lorsque Ptolémée Ier est en vie. Placez celui-ci près d'un échafaudage et les constructeurs travailleront 10% plus vite.
    • Si vous choisissez d'entraîner Ptolémée IV, vous aurez la possibilité de posséder 5 Juggernauts (Tessarakontères) simultanément, au lieu d'un seul. Placez-le à proximité de vos syntagmes pour booster de 20% les statistiques (attaque/armure/PV) de vos piquiers.
    • Antiochos III augmente l'armure de toute la cavalerie de 2 points tant qu'il est vivant.
    • L'armure des bâtiments et des unités mécaniques (armes de siège, navires) ennemis situés dans le champ de vision d'Antiochos IV est réduite de 20%.
    • Séleucos Ier dispose quant à lui d'une aura qui augmente de 20% la vitesse et la puissance des attaques des éléphants du joueur situés dans son champ de vision.
  • Deux des trois héros romains ont désormais des auras fonctionnelles :

    • Marcellus : les unités romaines dans son champ de vision ont +15% d'attaque.
    • Maximus : les unités et bâtiments romains ont +1 de défense (tous types) lorsque dans son champ de vision.
  • Les ibères, qui étaient fortement désavantagés sur l'eau, n'ayant pas de véritable navire de combat, bénéficient désormais de la barge de guerre celtique.

  • Les carthaginois peuvent construire des birèmes et des trirèmes dans leur port civil.

  • Les changements des bâtiments dans le brouillard de guerre sont désormais cachés (les changements de territoire restent visibles).

  • Nouvelles technologies :

    • Livres Sibyllins : +50% de ligne de mire pour toutes les unités romaines.
    • Les Logistiques romaines n'éliminent plus la dégénérescence des bâtiments concernés mais la divisent de 50%.
  • De très gros changements dans l'équilibrage. Voir la section Équilibrage pour plus de détails.

Moteur
  • Implémentation des triggers (déclencheurs) : le moteur de 0 A.D. Pyrogenesis est désormais capable de gérer le déclenchement d'évènements indépendants des mécanismes "normaux" du jeu, comme l'apparition soudaine d'unités quelque part sur la carte, la destruction d'un bâtiment, le don d'un tribut, le déclenchement d'une attaque de l'IA à un moment précis, etc. Cette nouvelle fonctionnalité est un grand pas en avant pour la réalisation future de scénarios de campagnes et de cinématiques. Trois cartes permettent actuellement de tester les triggers : une nouvelle démo (Treasure Island), une nouvelle carte aléatoire (Survival of the Fittest) et une escarmouche déjà existante (Gallic Fields). Plus d'informations dans la section Art/cartes.
  • Gestion de SDL2.
  • Ajout de la possibilité de spécifier un type de cible pour la commande moveAttack (ordre "déplacement-attaque"). Vous pouvez tester la fonctionnalité dès maintenant en pressant Ctrl + Q + Clic droit pour ne cibler que les unités lors du déplacement.
  • Gestion des tourelles : les tourelles ont été implémentées dans le moteur et feront, peut-être, leur apparition sur les modèles du jeu dans un futur proche.
  • On peut lancer des maps de type "escarmouche" depuis la ligne de commande.
  • Unités sur les murs : on peut désormais placer des archers et des javelinistes sur des pans de murs, en utilisant la fonction "garnison". Ces unités gagnent alors +3 d'armure et +20 de champ de vision tant qu'elles sont sur le mur et bénéficient d'un bonus de portée dû à l'altitude.
Intelligence artificielle (IA)
  • Petra, la nouvelle IA apparue dans 0 A.D. alpha 16, s'améliore et commence à se débrouiller avec les cartes maritimes. Celle-ci est désormais capable d'utiliser des navires de pêche, de développer une flotte militaire pour défendre ses ports et d'envoyer des navires de guerre sur les côtes ennemies pour y débarquer des troupes terrestres. Un début de gestion des héros a également été implémenté dans Petra.
  • Aegis a été supprimée et Petra est désormais l'IA par défaut.
Éditeur
  • Ajout d'un outil "copier-coller" dans Atlas \o/
Équilibrage

0 A.D. alpha 16 a été beaucoup critiquée au sein de la communauté, de nombreux joueurs dénonçant un déséquilibre flagrant entre les unités dans cette version. Une branche git dédiée à l'équilibrage a donc été mise en place par scythetwirler pour être testée. Deux mois plus tard, les modifications ont été intégrées dans la branche principale.

Les changements apportés par cette branche sont :

  • Unités

    • Tous les bonus en dur ont été retirés.
    • De base (sans avancée technologique), les unités peuvent transporter moins de ressources.
    • Les unités se déplacent plus vite.
    • Les citoyennes sont entraînées bien plus rapidement.
    • La fréquence d'attaque des unités a été augmentée.
    • Les épéistes coûtent moins de métal, mais coûtent un peu de bois.
    • Les prêtres ne coûtent plus que de la nourriture.
    • Les projectiles des frondeurs infligent des dégâts perçants et contondants.
    • La cavalerie est plus faible contre le perçage, mais plus résistante contre les armes tranchantes.
    • Les javelinistes ibères d'élite voient leur statistiques renforcées.
    • Les lanciers de cavalerie se comportent plus comme des chevaliers - forte puissance d'attaque, mais fréquence d'attaque réduite.
    • Les éléphants sont bien plus forts, mais aussi plus chers.
    • Les béliers peuvent attaquer toutes les unités. Pour compenser, toutes les unités ont par défaut 3 points d'armure contre les armes contondantes.
    • Les balistes et les onagres ont une portée et une ligne de mire plus grande.
    • Les balistes font plus de dégâts.
    • Les formations basiques, plus gênantes qu'utiles en l'état actuel, ont été désactivées temporairement. Le bénéfice en terme de performances se fait ressentir, notamment lorsqu'on rassemble un grand nombre d'unités éloignées les unes des autres. En revanche les unités regroupées en masse compacte peuvent avoir un peu plus de mal à trouver leur chemin.
  • Structures

    • Toutes les structures sont maintenant plus faibles contre les dégâts contondants et tranchants.
    • Les champs sont plus résistants, notamment contre les attaques tranchantes et perçantes.
    • De base (sans avancée technologique), les tours d'angle ne tirent aucune flèche.
    • Les murs et les tours d'angle sont beaucoup plus longs à construire.
    • Le camp retranché romain a été significativement renforcé.
    • Les ports carthaginois ont maintenant une influence territoriale et peuvent accueillir des unités en garnison.
  • Technologies

    • La plupart des technologies ont été dépariées et certaines ont été remplacées par une branche de technologies successives.
    • Presque toutes les technologies ont vu leur coût augmenter significativement. Les technologies militaires notamment requièrent désormais une quantité considérable de bois, et ont un coût important en métal et en pierre.
    • Les technologies successives sont de plus en plus coûteuses au fur et à mesure qu'on avance dans les phases.
    • Certaines technologies ont été supprimées : par exemple la technologie "Héroïsme" a été supprimée et "Volonté de combattre" affecte désormais tous les soldats. C'est la technologie la plus chère du jeu, demandant 3000 points de chaque ressource. Les technologies de promotion des citoyens-soldats ont été supprimées.
    • De nouvelles technologies ont été ajoutées : les tours disposent désormais d'un ensemble de quatre technologies, permettant d'augmenter le nombre de flèches par défaut, d'augmenter le nombre de flèches par unités en garnison, d'augmenter la portée des tours et d'augmenter leur résistance. Dans le corral, une branche technologique permet d'augmenter la vitesse de la cavalerie. Une technologie a été ajoutée pour permettre aux casernes de soigner leurs garnisons. La merveille permet de développer une technologie augmentant de 50 points la capacité de population du joueur.
    • Passer à la phase supérieure augmente les points de vie des citoyens.

Ces changements importants vont sans conteste modifier profondément l'expérience des joueurs habitués aux versions précédentes de 0 A.D.. Dans Quercus, le rythme du jeu est très différent de celui de Patañjali : l'économie est accélérée du fait de la vitesse d'entraînement des citoyennes, du coût réduit des épéistes, de l'augmentation de la vitesse des unités et de l'étalement des technologies économiques sur les trois phases. Les nouvelles statistiques rendent inefficaces les raids de cavalerie légère sur les fermes et réduisent l'avantage militaire des ibères en début de jeu. L'impact accru des technologies et leur coût élevé incite à se focaliser moins sur l'expansion démographique et davantage sur le progrès technologique : la course aux phases prend le dessus sur la course au nombre. L'abandon des technologies de promotion militaire joue aussi dans cette tendance. Les technologies militaires sont donc cruciales, et une bonne partie du gameplay repose désormais sur le choix de l'ordre dans lequel on les développe. Le premier joueur à rechercher la technologie "Volonté de combattre" (si tant est que la partie aille jusque là) disposera d'un avantage temporaire significatif sur les autres joueurs, qu'il devra convertir au mieux pour s'assurer la victoire.

Art Objets Bâtiments
  • Égyptiens : nouveau corral, nouvelle forge.
  • Ibères : nouveaux modèles de caserne, maisons, tours, et nouvelle merveille (Cancho Roano).

  • Gaulois : nouveau dépôt de nourriture, moulin rotatif gaulois. Il s'agit du premier bâtiment du jeu à disposer d'un modèle animé.
Unités
  • Ptolémée Ier , loup arctique.
Animations
  • Nouvelles animations pour le faucon.
  • Nouvelles animations d'attaque pour les armes de siège (ballistes, scorpions…).

Cartes
  • Nouvelle carte aléatoire : Schwarzwald.
  • Nouvelle escarmouche : Oasis de Siwa.
  • Nouvelle démo (avec triggers) : Treasure Island. Une carte constituée de petites îles sur lesquelles sont éparpillés des trésors. Le joueur qui collecte le plus de trésors a gagné.
  • Nouvelle carte aléatoire (avec triggers) : Survival of The Fittest. Chaque joueur commence sur un petit plateau surélevé, séparé du reste de la carte par des falaises. Seul le côté adjacent au bord de la carte n'est pas fermé par un relief infranchissable. Ces plateaux sont situés en cercle, et dépourvus de ressources naturelles. Au centre, une sorte d'arène remplie d'arbres et de trésors, qui réapparaissent à intervalles réguliers. Chaque joueur commence avec une unité de support dans cette arène. Des troupes d'unités championnes ennemies apparaissent régulièrement sur chaque plateau, du côté adjacent au bord de la carte. Le but du jeu est de collecter les trésors le plus rapidement possible avec son unité de support au moment où ils apparaissent, et de les utiliser pour développer son armée afin de faire face aux vagues d'attaques successives. Le dernier joueur en vie a gagné. Notez que cette carte n'est pas vraiment utilisable avec des joueurs IA : ceux-ci sont incapables de collecter des trésors et se font massacrer dès la première ou la deuxième attaque.
  • Ajout de triggers dans l'escarmouche Gallic Fields : désormais Gaïa fait apparaître des légionnaires romains aux extrémités de la carte à intervalles irréguliers, et les fait se diriger vers les camps des divers joueurs en attaquant tout ennemi sur leur chemin. Le nombre de légionnaires qui apparaît à chaque vague d'attaque augmente au fur et à mesure.
Musiques et sons Autre
  • Nouvelle texture d'eau.

Communauté
  • La version alpha 16 de 0 A.D. ne disposait pas de version MacOS lors de l'annonce officielle, à cause de problèmes de dernière minute et par manque de testeurs. Le package OS X de l'alpha 16 a finalement été publié le 26 juin.

  • Départ de Mythos_Ruler : Mythos_Ruler, un des vétérans de Wildfire Games, a quitté l'équipe de développement, ayant de moins en moins de temps à consacrer au projet. Mythos_Ruler était très impliqué dans l'équilibrage du jeu et apportait des modifications fréquentes dans le gameplay. Il a également dessiné des icônes et une bonne partie du concept art initial. Project Leader à plusieurs reprises, il avait une idée très précise de l'aspect final du jeu et intervenait souvent sur les forums autour des questions de game design, d'art et de fidélité historique. Son départ ne l'empêche pas de continuer à contribuer occasionnellement.

  • Apparition de nouvelles branches consacrées à l'équilibrage : deux mois après son départ, Mythos_Ruler a commité un gros ensemble de changements destiné à corriger les problèmes d'équilibrage (plus quelques petits changements artistiques). Ce commit inattendu a provoqué de vives réactions parmi les utilisateurs de la branche alternative d'équilibrage que scythetwirler avait mise en place peu après le départ de Mythos. L'équipe de développement a donc décidé de révoquer les changements liés à l'équilibrage, et de placer ceux-ci dans une branche git séparée, afin que les propositions de Mythos_Ruler et celles de scythetwirler puissent être testées individuellement, sans entrer en conflit.
    Il existe donc désormais deux branches consacrées à l'équilibrage : la branche personnelle de Mythos_Ruler et la branche de scythetwirler (cette dernière étant plus dynamique, car testée régulièrement par une petite communauté de joueurs et mise à jour en fonction des retours des joueurs sur le forum).
    Le 7 septembre, les changements de la branche de scythetwirler ont été intégrés dans 0 A.D.

  • Omri Lahav célèbre la nouvelle version de Honor Bound avec une piste bonus destinée à l'album de 0 A.D. Les aficionados peuvent alors apprécier, dès maintenant, un audacieux remix 8-bit du thème principal.

Performance

Comme ses versions précédentes depuis l'alpha 14, cette version alpha 17 s'est vue gratifiée d'un nombre significatif de correctifs liés à l'amélioration des performances. Parmi ceux-ci, un nouveau moteur de rendu des unités, la souscription de messages dynamiques dans le moteur et une petite amélioration dans le rendu des silhouettes.

Conclusion…

Cette version alpha 17 n'est pas la plus impressionnante en terme de changements. Les améliorations escomptées, notamment le passage à SpiderMonkey 31 et les bâtiments séleucides, n'auront pas vu le jour au cours de cette version.
On pourrait être tenté d'expliquer cela par le retard pris sur la version OS X de l'alpha 16 (les contributeurs sous Mac OS étant peu nombreux), le départ de Mythos_Ruler, la période de vacances d'été et de rentrée scolaire (beaucoup de contributeurs sont étudiants ou lycéens), autant d'évènements ayant pu engendrer un éventuel ralentissement de l'activité autour de cette alpha 17.
Mais cela serait oublier qu'une grande partie du travail de l'alpha 17 s'est faite plus ou moins dans l'ombre : en effet cette alpha a connu en réalité une activité aussi importante que la précédente en nombre de commits, simplement la plupart concernait des résolutions d'erreurs, du nettoyage de code et de petites améliorations de l'IA, pas toujours directement visibles par le joueur. Sur le plan artistique aussi, il y aurait eu beaucoup de travail en coulisses en préparation des futures alphas, mais les infographistes du projet sont avares de détails…

Que peut-on alors espérer de la prochaine version de 0 A.D. ?

  • de nouvelles améliorations de l'IA, notamment en ce qui concerne la gestion de l'économie, le combat naval, l'utilisation des merveilles et la gestion des triggers.
  • de nouvelles expérimentations avec les triggers
  • la gestion des tourelles au niveau des objets (chariots, éléphants…)
  • de nouveaux animaux sauvages et leurs animations
  • l'apparition des premiers modèles de bâtiments séleucides
  • des améliorations esthétiques sur certains bâtiments (notamment romains et perses)

…et, peut-être, le passage à la version 31 de SpiderMonkey. Les développeurs espèrent sortir la version alpha 18 à Noël, mais pour cela, il faut de la main d'œuvre, donc…

…Contribuez !
  • Vous rencontrez un bogue ou souhaitez proposer une amélioration ?
  • Vous connaissez le C++ ou le Javascript ? Vous avez des compétences en programmation dans le domaine des jeux 3D ? Aidez à améliorer le code !
  • Vous maîtrisez Blender ? Vous pouvez dessiner des textures, concevoir des modèles et les animer ? Proposez vos embellissements ou vos icônes, animez la faune et les soldats, ou participez à la modélisation de la faction séleucide !
  • Vous jouez d'un instrument acoustique ? Vous composez de la musique traditionnelle ou symphonique ? Contactez Omri Lahav et contribuez à la bande originale de 0 A.D. !
  • Vous êtes plus branchés MAO ? Vous pouvez créer, enregistrer et mixer des sons ? Aidez à donner vie aux cités antiques et aux terres vierges de 0 A.D. !
  • Vous étudiez les langues anciennes ? Vous connaissez la prononciation de mots latins, grecs, hébreu, sanskrits ou gaéliques ? Aidez à donner de la voix aux unités du jeu !
  • Vous êtes passionnés d'histoire antique ? Venez discuter sur les forums et proposer vos améliorations en matière de gameplay ou de graphisme !
  • Vous êtes plutôt calés géo ? Familiarisez-vous avec l'éditeur et concevez des cartes réalistes et fun à jouer !
  • Vous parlez plusieurs langues dont l'anglais ? Participez à la traduction et à la documentation !
  • Vous savez compiler un logiciel ? Téléchargez la version SVN et profitez des nouvelles améliorations et des nouveaux bogues avant tout le monde !
  • Vous voulez aider à faire connaître 0 A.D. ? Vous aimez faire de jolies copies d'écran ? Participez à l'élaboration de dépêches de qualitaÿ sur LinuxFr.org ! \o/
  • Aidez les autres joueurs à ouvrir les ports de leurs box pour héberger des parties multijoueurs.
  • Passez le mot : parlez de jeux libres, de 0 A.D. à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
Télécharger ce contenu au format Epub

Lire les commentaires

Bref, j'ai créé une bibliothèque Rust et un moteur iBus (et je cherche comment les empaqueter)

14 octobre, 2014 - 18:18

Tiré du journal d'Allan Simon qui donne un exemple de bibliothèque en langage Rust et comment créer des bibliothèques Rust appelables :

Pour le décideur pressé, j'ai écrit:

  • une bibliothèque en Rust, compatible ABI C (c-à-d un joli .so et .h) pour manipuler du pinyin : librustpiniyn ;
  • un moteur iBus pour taper chinois en précisant les tons, utilisant la bibliothèque du dessus : ibus-pinyintone ;
  • un ensemble d'exemples sur comment créer des bibliothèques Rust appelables comme si c'était une lib C : ffi-rust.

Et je me demande comment je pourrais empaqueter les deux premiers dans un joli .deb qui va bien.

Sommaire Contexte

Tu as sûrement entendu parler de Rust, ce nouveau langage de programmation hype, tellement hype qu'il n'est pas encore stable, écrit par Mozilla.

Les promesses de Rust qui m'ont séduit :

  • (quasi) sans-runtime : rien ne se passe dans votre dos, possibilité de distribuer des binaires compilés depuis Rust sans devoir faire installer à l'utilisateur une JVM de plus ;
  • langage compilé : si vous pouvez lancer le binaire il y a peu de chances que ca plante dans les 2 premières secondes parce que vous avez fait une coquille ;
  • langage fortement typé avec déduction automatique des types : le beurre et l'argent du beurre, pas d'arguments qui sont parfois des entiers, parfois des chaines de caractères car votre collègue incompétent a parfois fait le parseint avant, parfois après, parfois pas, tout en n'ayant pas besoin de préciser le type à chaque fois que c'est évident ;
  • possibilité d'être compatible avec l'ABI C ;
  • une librairie standard très complète (des primitives pour faire du code multi-tâches, un décodeur json intégré, que du bonheur)  ;
  • des structures et des traits, pas d'héritage ;
  • possibilité de faire les choses de manière fonctionelle (closure etc.) ;
  • performance qui rivalise avec C++ (tout du moins à terme, mais c'est déjà plus ou moins le cas) ;
  • un compilateur très strict avec des jolis messages d'erreurs très lisibles ;
  • une communauté vibrante (merci #rust sur IRC) ;
  • un système de build et de gestion de dépendances simplissime (cargo build et c'est bon).

Bref, du coup je me suis dit que ce langage serait parfait pour moi qui aime le C++ (surtout depuis C++11) et Python, en gros le meilleur de ces deux mondes réunis.

J'ai donc écrit pendant mes vacances, avec l'aide d'un ami, une bibliothèque Rust pour convertir du pinyin, qui est en gros la transcription phonétique standardisée en alphabet latin du Chinois mandarin, en caractères chinois. par exemple pouvoir convertir ni3hao3 en 你好.

La bibliothèque une fois créée sera utilisée par un moteur iBus (iBus étant le système le plus commun sous Linux pour taper des langues qui se tapent mal avec un clavier standard, ibus offrant les briques communes, capture des entrées clavier etc. , et les moteurs eux offrent la logique spécifique à une langue, par exemple on peut avoir iBus installé avec un moteur pour le chinois, et un moteur pour le japonais).

Les moteurs iBus étant le plus souvent écrits soit en C, soit en Python (iBus n'offrant les bindings que pour ces deux langages à ma connaissance, et quand bien, le peu de code d'exemple est écrit dans l'un de ces deux langages), et ayant trouvé un exemple de template de moteur ibus-tmpl en C, il était plus simple d'avoir toute la logique en Rust (isolé dans la bibliotheque) et la glue du moteur en C pour réutiliser le code d'exemple.

Comment écrire une bibliothèque Rust, compatible ABI C, sans runtime (i.e avec un joli .so et .h a la fin)

Les exemples (ainsi que d'autres plus complexes) peuvent être retrouvés sur le projet github https://github.com/allan-simon/ffi-rust.

Générer un .so avec Rust

Il y a deux manières de procéder, soit directement dans le fichier Rust .rs ou en le précisant dans le fichier Cargo.toml (le "MakeFile" de rust).

Pour les petits projets, il suffit simplement de mettre #![crate_type = "dylib"] au début du fichier :

#![crate_type = "dylib"] pub extern fn hello_world() { println!("hello world"); }

pub extern est là pour dire que la fonction doit être exportée, ainsi que pour dire au compilateur de ne pas s'inquiéter s'il ne voit pas la fonction hello_world utilisée, que ce n'est pas du code mort.

Pour le fichier cargo, cela donne :

[package] name = "votre_lib_qui_va_bin" version = "0.0.1" authors = [ "Votre Nom <votre@email.com>" ] [lib] name = "nomdelalib" path = "src/lib.rs" crate-type = ["dylib"]

et cela génère dans les deux les deux un cas un fichier .so qui va bien, mais appelable seulement depuis un autre projet Rust.

Rendre les noms de fonctions compatibles avec l'ABI C

Pour pouvoir appeler la fonction Rust depuis du C, du Python etc., il faut que son nom soit prédictible, pour cela, hyper simple, il suffit de rajouter la directive #[no_mangle] au-dessus de la fonction, ce qui nous donne :

#![crate_type = "dylib"] #[no_mangle] pub extern fn hello_world() { println!("hello world"); }

et voila, rien de plus rien de moins, et vous avez à présent un .so compatible ABI C, ce qui vous permet par exemple de l'appeler depuis Python en faisant :

import ctypes votrelib = ctypes.CDLL("libvotrelib.so") votrelib.hello_world()

magique, non ?

Faire des choses plus compliquées

Je ne rentrerai pas dans de longs détails ici, juste qu'il est assez simple de créer une bibliothèque, même très complexe depuis C en suivant les conseils ci-dessous :

  • il est assez simple d'échanger des int / string dans les deux sens entre Rust et C (avec une légère conversion à faire pour les string, comme elles finissent par \0 en C et pas en Rust) ;
  • pour les types plus complexes (du style HashMap etc.), essayer au maximum de tout faire en Rust, et de n'utiliser C que pour transporter le pointeur sur la structure d'un appel Rust à un autre.

Si des personnes sont intéressées je verrai peut-être pour écrire un guide plus détaillé sur des exemples plus poussés (passage de callback, comment gérer la mémoire etc., comment se passer du runtime etc.).

ibus-pinyintones : pour les personnes qui apprennent le Chinois et oublient toujours les tons pourquoi un moteur alternatif pour écrire le chinois

Cette partie est un peu moins technique : je pense que beaucoup moins de personnes sont intéressées par "comment écrire votre propre moteur iBus". Le but était pour moi qui apprend le Chinois d'avoir un moyen de me forcer à me souvenir des "tons" des mots Chinois.

Pour ceux qui ne connaissent pas le Chinois, les tons sont une composante super importante du Chinois oral. Pour donner une similarité avec le Francais, lisez a voix haute "Tu viens manger." et "Tu viens manger ?" : vous remarquez que pour la question on monte le ton en fin de phrase, ce qui permet a l'oral de distinguer la question de l'affirmation. Maintenant, imaginez en Chinois le même concept mais syllabe par syllabe et non plus pour savoir savoir si une question est affirmative ou interrogative mais tout simplement pour savoir quel caractère Chinois c'est.

Le ton est super important en Chinois, car le nombre de sons en chinois est très limité. Cependant à la saisie sur ordinateur ou téléphone, souvent on entre la phonétique sans le ton (et le moteur de saisie se charge des ambigüités, en classant les propositions par fréquence, et en s'aidant des mots tapés avant). Cela a donc le fort désavantage de ne pas demander la connaissance du ton, ce qui fait que l'on peut parler sur Skype/mails de manière quasi parfaite, tout en étant incompréhensible a l'oral.

Caractéristique de ibus-pinyintone, différence avec les moteurs habituels

Ici il faut donc taper obligatoirement le ton.

On peut taper "n3h3" ou "ni3hao3" pour avoir 你好, mais le nombre (c.a.d le ton) doit être présent. Cela demande donc un poil plus de frappes, mais cela est compensé par le fait qu'ainsi le nombre d'homonynes est très très fortement réduit et réduit le nombre de sélections manuelles que l'on a à faire avec les touches multidirectionnelles

Le prochain objectif est d'ajouter la prédiction du mot suivant, par exemple si je tape "je mange une" , que le moteur propose directement "pomme" "poire" "pizza" (ce que ne propose pas ibus-pinyin par exemple, et encore une fois, ce qui avec l'aide des tons, permettrait de rendre la prédiction plus efficace)

Demande d'aide : comment créer un paquet Debian de tout cela

Voilà, j'arrive à la toute fin et le principal but de mon journal (je vous ai bien eu, en fait je voulais juste de l'aide, mais je ne voulais pas poster dans la catégorie forum) : j'aimerais avoir un peu d'aide pour empaqueter mon moteur et ma bibliothèque.

J'ai commencé à lire le guide pour empaqueter sous Debian mais voir que faire un paquet pour une bibliothèque est mis dans la catégorie "tâches difficiles", et que j'avoue être un peu flemmard, si une bonne âme se sent de m'aider, j'en serais très reconnaissant.

Vers l'infini et l'au-delà

À l'avenir je vais essayer de rapidement porter de nouveau les moteurs iBus que j'avais écrits il y a très longtemps pour l'anglais et le français (base sur une intégration d'aspell dans ibus), de manière à pouvoir taper les accents sur mon qwerty sans encombre et éviter les fautes de dyslexie du clavier que je fais souvent.

Télécharger ce contenu au format Epub

Lire les commentaires

Gajim 0.16 sort de terre

14 octobre, 2014 - 14:06

Deux ans et demi après la dernière mise à jour majeure et près de 6 mois depuis la dernière mineure ; une nouvelle version de Gajim est sortie le 4 octobre 2014 !

Gajim, ce client XMPP basé sur Python et Gtk semblait ne plus donner signes de vie mais NON ! Il n'est pas mort !

Au niveau des nouveautés majeures, voici :

  • l'amélioration du transfert de fichier en utilisant Jingle ;
  • l'amélioration de la sécurité ;
  • l'amélioration des appels audio / vidéo et du partage d'écran ;
  • la correction du dernier message ;
  • la prise en charge de systemd-logind.

Sur le fond, Gajim utilise maintenant python-nbxmpp, un fork de xmpppy, pour le remplacer dans Gajim afin de gérer le protocole XMPP. Ceci permet notamment des connexions non bloquantes.

Télécharger ce contenu au format Epub

Lire les commentaires

GNU Emacs : quelques extensions (première partie)

14 octobre, 2014 - 13:44

Pour son premier journal, ptitjano a décidé de nous parler de GNU Emacs, et nous on a décidé d'en faire une dépêche : au menu de cette première liste d'extensions, un gestionnaire de paquets, une meilleure navigation parmi les buffers, un M-x amélioré, la liste des derniers fichiers ouverts, l'insertion simple de templates, la complétion visuelle, le classement des buffers en catégories et la recherche dans les buffers ouverts.

Sommaire

GNU Emacs 24.4 devrait sortir le 20 octobre 2014 mais j'ai l'impression qu'on en parle trop peu sur ces pages (on peut tout de même trouver quelques journaux récents, notamment « des prompteurs pour Emacs », « peigner la girafe, BPM » ou « Emacs 24 toute résistance est inutile). J'ai donc décidé d'apporter ma pierre à l'édifice. (Certains éléments reprennent d'ailleurs des astuces ou des commentaires des journaux précédemment cités).

Conventions

On utilisera dans ce journal la même convention que celle de xaccrocheur :

  • C : (Control) la touche Ctrl ;
  • M : (Meta) la touche ALT ;
  • S : (Shift) la touche Maj ;
  • s : (Super) la touche WIN ;
  • SPC : (Space) la touche Espace ;
  • buffer : Un… heu… buffer.
Package.el : un gestionnaire de packages

Emacs 24 a introduit un gestionnaire de packages. On peut maintenant installer des packages automatiquement pour ajouter de nouvelles fonctionnalités sans quitter son Emacs chéri.

Ajout de dépôts et initialisation

Il suffit de rajouter ces quelques lignes à son .emacs :

(require 'package) (package-initialize) ;; initialisation de package (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) ;; ajout du dépôt "melpa" (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t) ;; ajout du dépôt "marmalade" Installer des packages
  • lister tous les packages : M-x list-packages ;
  • installer un package : M-x package-install Entrée <package> Entrée.

Un article très complet sur le sujet est disponible chez Xah Lee.

Ido : une meilleure navigation parmi les buffers

Ido pour "Interactively DO things" est un mode qui permet de naviguer entre les fichiers et les buffers d'Emacs de manière beaucoup plus rapide en surchargeant ces différentes opérations. Il est disponible par défaut depuis Emacs 22 (soit juin 2007).

Activer ido

À ajouter dans son .emacs :

(require 'ido) (setq ido-enable-flex-matching t) ;; activer le fuzzy matching pour trier les résultats (setq ido-everywhere t) ;; activer ido pour find-files et les buffers (ido-mode 1) ;; activer ido Ido en pratique
  • changer de buffer : C-x b <premières lettre> puis Entrée pour sélectionner le candidat courant ;
    • on peut naviguer entre les différents candidats avec C-s (suivant) et C-r (précédent) ;
    • Tab affiche la liste des candidats dans un nouveau buffer ;
  • ouvrir un nouveau fichier : C-x C-f ;
    • Retour arrière pour aller au répertoire parent ;
    • afficher un buffer dired dans le répertoire courant : C-d ;
    • créer un nouveau sous-répertoire : M-m ;
    • forcer la création d'un nouveau fichier avec le nom entré : C-j.

Il suffit de l'essayer pour comprendre immédiatement son utilité.
Un article complet de présentation et quelques astuces sont disponibles chez masteringemacs.

Ido-ubiquitous : obtenir ido partout

Le mécanisme d'ido n'est disponible que pour find-files et la navigation entre les buffers. On aimerait pourtant l'utiliser partout. Heureusement, ido-ubiquitous ajoute cette possibilité. Il va remplacer le système de complétion natif d'Emacs dès que possible. Il sera donc disponible pour tous les packages utilisant ce mécanisme.
Pour l'installer, on passe par package.el :
M-x package-install Entrée ido-ubiquitous Entrée

On rajoute ensuite dans son .emacs :

(require 'ido-ubiquitous) (ido-ubiquitous-mode t)

D'après certains gourous d'Emacs il est nécessaire de rajouter quelques lignes pour assurer le bon fonctionnement d'ido-ubiquitous avec les versions les plus récentes de certains packages. Faisons leur confiance :

;; Fix ido-ubiquitous for newer packages (defmacro ido-ubiquitous-use-new-completing-read (cmd package) `(eval-after-load ,package '(defadvice ,cmd (around ido-ubiquitous-new activate) (let ((ido-ubiquitous-enable-compatibility nil)) ad-do-it)))) (ido-ubiquitous-use-new-completing-read webjump 'webjump) (ido-ubiquitous-use-new-completing-read yas/expand 'yasnippet) (ido-ubiquitous-use-new-completing-read yas/visit-snippet-file 'yasnippet) Smex ou M-x amélioré à la sauce ido

Smex est une extension fort utile d'ido. En effet, ce dernier est très pratique mais on aimerait bien pouvoir l'utiliser lors de l'appel de fonctions (M-x). C'est ici que smex entre en jeu : il surcharge la commande M-x
N'étant pas disponible par défaut, il est nécessaire de l'installer. Heureusement, on dispose d'un gestionnaire de packages pour automatiser la tâche :
M-x package-install Entrée smex Entrée
Les sources de smex sont disponibles chez Github.

Installation et activation

Rajouter dans son .emacs :

(require 'smex) ; Not needed if you use package.el (smex-initialize) (global-set-key "\M-x" 'smex) (global-set-key (kbd "M-X") 'smex-major-mode-commands) Smex en pratique

Recentf : obtenir la liste des derniers fichiers ouverts Principe et utilisation

Il est possible de demander à Emacs de garder la trace des derniers fichiers ouverts en utilisant recentf (intégré depuis Emacs 21). Il suffit de quelques lignes dans son .emacs :

(require 'recentf) (setq recentf-max-saved-items 50) ;; fixer le nombre d'enregistrements à 50 (recentf-mode 1) ;; l'activer

la fonction ido-recentf-open permet d'obtenir une liste de ces fichiers : M-x ido-recentf-open. On peut bien entendu lui assigner un raccourci clavier :

(global-set-key (kbd "C-x C-r") 'ido-recentf-open) Combiner recentf et ido :

masteringemacs.org propose une intégration élégante de recentf et ido :

(require 'recentf) ;; get rid of `find-file-read-only' and replace it with something ;; more useful. (global-set-key (kbd "C-x C-r") 'ido-recentf-open) ;; enable recent files mode. (recentf-mode t) ; 50 files ought to be enough. (setq recentf-max-saved-items 50) (defun ido-recentf-open () "Use `ido-completing-read' to \[find-file] a recent file" (interactive) (if (find-file (ido-completing-read "Find recent file: " recentf-list)) (message "Opening file...") (message "Aborting"))) Yasnippet : insérer des templates simplement

Yasnippet est un système de gestion de templates. Il permet d'insérer un morceau de texte en tapant une abréviation. Ces abréviations dépendent du mode du buffer actif.

Installation et activation

Pour l'installation, il suffit de faire confiance à package.el :
M-x package-install Entrée yasnippet Entrée
Pour l'activer, comme toujours, quelques lignes sont nécessaires dans son .emacs :

(require 'yasnippet) ;; not needed if you use package.el (yas-global-mode 1) Utilisation et personnalisation

Pour insérer un template : Tab (pour yas/expand)
De nombreux templates sont définis par défaut pour la plupart des modes (C/C++, HTML, Perl, Python, latex, Markdown, Ruby, SQL, CSS, etc.)
Bien entendu, il est possible d'ajouter ses propres templates (des explications complètes ici).
On peut également trouver un nombre incalculable de templates sur le web. Il peut être utile de les rajouter dans un sous-répertoire de son emacs.d . On les chargera ensuite depuis son .emacs :

(add-to-list 'load-path "~/.emacs.d/mes-supers-snippets") Auto-complete : une complétion visuelle

Auto-complete est un mode qui permet d'afficher et de trier des candidats à la complétion de la saisie courante. L'un de ces points forts est qu'il est possible de fournir et trier les candidats à la sélection.

Installation et activation

Rien de bien extraordinaire avec package.el : M-x package-install Entrée auto-complete Entrée
Pour l'activer, il suffit d'ajouter deux lignes à son .emacs :

(require 'auto-complete-config) (ac-config-default)

Pour naviguer plus facilement entre les candidats :

(define-key ac-completing-map (kbd "C-n") 'ac-next) (define-key ac-completing-map (kbd "C-p") 'ac-previous)

Il est par ailleurs possible d'étendre la liste des candidats pour un mode donné avec d'autres packages (par exemple auto-complete-octave pour le mode octave).

Utiliser ido et auto-complete ensemble

Il est nécessaire d'activer ido avant auto-complete dans son .emacs . Pour que les deux cohabitent harmonieusement, on ajoutera ces quelques lignes à la configuration d'auto-complete :

(add-to-list 'ac-sources 'ac-source-yasnippet) ;; Let's have snippets in the auto-complete dropdown ;;; set the trigger key so that it can work together with yasnippet on tab key, ;;; if the word exists in yasnippet, pressing tab will cause yasnippet to ;;; activate, otherwise, auto-complete will (ac-set-trigger-key "TAB") (ac-set-trigger-key "<tab>") Ibuffer : gérer ses buffers intelligemment

Ibuffer permet d'afficher et manipuler la liste de tous les buffers ouverts de la même manière que dired pour les répertoires. Il est partie intégrante d'Emacs depuis la version 22. Il n'y a donc rien à installer. La configuration est fort simple. Comme toujours, cela se passe dans son .emacs :

(require 'ibuffer) (global-set-key (kbd "C-x C-b") 'ibuffer) ;; remplace buffermenu Classer ses buffers en catégories

L'une des fonctionnalités les plus intéressantes de ibuffer est la possibilité de trier les buffers ouverts suivant différentes catégories que l'on peut personnaliser. Par exemple, (code tiré de emacs-fu) :

(setq ibuffer-saved-filter-groups (quote (("default" ("Org" ;; all org-related buffers (mode . org-mode)) ("Mail" (or ;; mail-related buffers (mode . message-mode) (mode . mail-mode) ;; etc.; all your mail related modes )) ("MyProject1" (filename . "src/myproject1/")) ("MyProject2" (filename . "src/myproject2/")) ("Programming" ;; prog stuff not already in MyProjectX (or (mode . c-mode) (mode . perl-mode) (mode . python-mode) (mode . emacs-lisp-mode) ;; etc )) ("ERC" (mode . erc-mode)))))) (add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default"))) Occur : faire un grep sur les buffers ouverts Introduction

Le mode occur permet d'obtenir la liste de toutes les lignes contenant une expression régulière. Cette liste s'affiche dans un nouveau buffer (*Occur*) et la recherche se limite au buffer actif. Pour l'appeler, rien de plus simple :
M-x occur Entrée expression-a-chercher Entrée
Pour chercher une occurrence dans plusieurs buffers, on peut utiliser la commande M-x mutli-occur.

Multi-occur sur un mode donné

masteringemacs propose une personnalisation permettant de rechercher l'expression régulière parmi tous les buffers ouverts du même mode que le buffer actif. Son code est le suivant :

(eval-when-compile (require 'cl)) (defun get-buffers-matching-mode (mode) "Returns a list of buffers where their major-mode is equal to MODE" (let ((buffer-mode-matches '())) (dolist (buf (buffer-list)) (with-current-buffer buf (if (eq mode major-mode) (add-to-list 'buffer-mode-matches buf)))) buffer-mode-matches)) (defun multi-occur-in-this-mode () "Show all lines matching REGEXP in buffers with this major mode." (interactive) (multi-occur (get-buffers-matching-mode major-mode) (car (occur-read-primary-args)))) ;; global key for `multi-occur-in-this-mode' - you should change this. (global-set-key (kbd "C-<f2>") 'multi-occur-in-this-mode) La suite

Il est temps de s'arrêter pour cette première partie. Au prochain épisode, on présentera notamment uniquify, iedit, flycheck, jedi (pas le chevalier), org-mode et ace-window.

Télécharger ce contenu au format Epub

Lire les commentaires