Linux France

S'abonner à flux Linux France
Mis à jour : il y a 37 min 12 sec

Atelier Linux embarqué à Villefontaine du 23 au 25 juin 2015

Vendredi 12 Juin

Si Linux s'impose largement dans le développement d'applications embarquées, son adoption par les PME peut nécessiter une phase d'apprentissage, car il diffère largement des systèmes d'exploitation (Operating Systems) traditionnels du monde de l'embarqué (RTOS propriétaires).

Le programme Captronic, dont la mission est de faciliter l'adoption de l'électronique et du logiciel embarqué dans les PME, propose donc un atelier consacré à Linux embarqué.

La prochaine édition, animée par CIO Systèmes Embarqués, aura lieu à Villefontaine (CCI Nord Isère, 5 rue Condorcet) du 23 au 25 Juin 2015.

Le programme détaillé est fourni en deuxième partie de dépêche.

Articulé autour de présentations de slides et de travaux pratiques à parts sensiblement égales, l'atelier vise à donner aux auditeurs une première approche du développement de solutions embarquées à base de Linux, et donc à faciliter son adoption par les sociétés concernées.

La participation nécessite une inscription préalable auprès de Captronic.

Programme :

Jour 1

L’univers Linux :
✔ quelques définitions ;
✔ les composants Linux ;
✔ la licence GPL et les licences connexes ;
✔ gestion des paquetages.

Le kernel Linux :
✔ obtenir les sources ;
✔ configurer et compiler le kernel ;
✔ les modules kernel ;
✔ compiler les modules ;
✔ installer et tester le kernel.

Travaux Pratiques 1
Configuration, compilation et test kernel

Jours 2 & 3

Introduction à la problématique temps réel sous Linux :
✔ les caractéristiques attendues d’un OS temps réel ;
✔ les caractéristiques de Linux ;
✔ pourquoi Linux n’est pas temps réel ;
✔ solutions vers le temps réel : patches kernel ou extensions temps réel.

Développement croisé :
✔ définition ;
✔ outils croisés ;
✔ utiliser les outils croisés ;
✔ librairies et exécutable final ;
✔ vérifier l’exécutable généré.

Linux embarqué :
✔ les besoins spécifiques à l’embarqué ;
✔ processus de démarrage de Linux sur x86 ;
✔ autres boot loaders pour x86 ;
✔ démarrage sur d’autres architectures ;
✔ boot loaders pour autres architectures ;
✔ boot devices ;
✔ systèmes de fichiers ;
✔ réduction de l’empreinte ;
✔ BusyBox, le couteau suisse de l’embarqué ;
✔ alternatives légères à la glibc ;
✔ kits de développement : Buildroot, Open Embedded.

Travaux Pratiques 2 :
création pas à pas du File System embarqué.

Télécharger ce contenu au format Epub

Lire les commentaires

SuperBoucle: Logiciel de boucle pour la composition ou le live

Jeudi 11 Juin

SuperBoucle est un logiciel de création musicale à base de boucles, synchronisé avec jack transport et complètement contrôlable en MIDI. Idéal pour la composition ou le live.

SuperBoucle permet aussi d'enregistrer des nouvelles boucles, d'inverser ou de normaliser un sample.

SuperBoucle est composé d'une grille de samples contrôlables avec n'importe quel appareil MIDI comme un pad ou un clavier MIDi. SuperBoucle renvoie aussi des informations à l'appareil MIDI afin d'allumer les LED du pad.

Un sample démarre toujours au début, c'est la principale originalité de SuperBoucle. Il ne faut pas appuyer sur les touches à un moment précis mais juste "avant la prochaine boucle". Vous pouvez ajuster la durée de lecture d'un sample mais aussi le décaler soit en 'beat' soit en 'frame'. Ce décalage peut être négatif, ce qui veut dire que le sample va démarrer avant le début de mesure. Cette fonctionnalité peut être intéressante pour les sons mis à l'envers.

Quelques usages possibles
  • Vous voulez seulement contrôler le transport jack (play, pause, rewind) avec un appareil MIDI et vous voulez aussi pouvoir sauter à un endroit précis dans la chanson avec une touche de l'appareil MIDI.
  • Vous avez quelques idée de parties mais pas de structure pour l'instant, vous voulez faire tourner un riff …
  • Vous faites du live avec des sample pré-enregistrés mais vous voulez garder le contrôle de la structure en live : lancer quand vous voulez la partie suivante.
Fonctionnalités
  • Transport Jack
  • Enregistrement
  • Ajustement automatique de la latence d'enregistrement
  • Entrée / Sortie audio
  • Entrée / Sortie MIDI
  • Normalise, inverse des samples
  • Décalage négatif des samples, décalage en 'beat' ou en trame
  • Format Audio: WAV, FLAC, AIFF, … (pas de MP3 pour le moment)
  • Interface intuitive pour la configuration des appareils MIDI
  • Prise en charge de n'importe quel appareil MIDI : clavier classique, pad, BCF, Akai APC, …
  • Contrôle complet avec soit l'appareil MIDI ou le clavier et la souris
  • Fonction 'Goto' pour sauter à un endroit précis dans la chanson
Télécharger ce contenu au format Epub

Lire les commentaires

Permanence Emmabuntüs et Logiciels Libres à Emmaüs Saint-Aunès - Juin 2015

Jeudi 11 Juin

Samedi 13 juin 2015 de 14h00 à 18h00
Communauté Emmaüs Montpellier-Saint-Aunès
La Vieille Cadoule 34130 Saint-Aunès

GPS Latitude : 43.649363 | Longitude : 3.991591

Rendez-vous mensuel, le deuxième samedi.
Pour les animateurs, réservez les repas et le covoiturage le jeudi au plus tard.

Dans le cadre de notre partenariat avec la communauté Emmaüs, l’équipe de Montpel’libre vous donne rendez-vous chez Emmaüs pour une journée d’information et de sensibilisation à l’utilisation des Logiciels Libres. Nous vous présenterons Ubuntu et bien sûr l’une de ses dérivées Emmabuntüs.

Assistance à la vente sur les aspects techniques

  • Vous désirez un ordinateur à votre service ?
  • Vous désirez un ordinateur qui va vite ?
  • Vous désirez un ordinateur qui ne communique aucune données à des inconnus ?
  • Vous désirez un ordinateur qui n’a pas besoin d’antivirus ?

Il vous suffit pour cela de venir nous rencontrer à la boutique informatique.

  • Vous rencontrerez des personnes qui sont là pour vous parler de Logiciels Libres.
  • Vous rencontrerez un équipe de passionnés prête à répondre à vos questions et vos attentes.
  • Vous pourrez acheter un ordinateur déjà installé et configuré, prêt à être utilisé.
  • Vous pourrez acquérir un ordinateur reconditionné avec la distribution Emmabuntüs.

Pour cela il vous suffit de venir nous voir sur les stands informatique. Les prix sont très attractifs. Toutes les sommes sont intégralement encaissées par la communauté Emmaüs. Nous vous apporterons notre expertise technique.

Présentation Emmabuntüs, historique et la vidéo : Emmabuntüs, des ordinateurs pour tous.

Télécharger ce contenu au format Epub

Lire les commentaires

Rendez-vous du Libre 18 juin : "Migration de la messagerie" & "Partagez avec OwnCloud"

Jeudi 11 Juin

Retrouvez-nous le jeudi 18 juin à partir de 18h45 à la Loco Numérique de La Roche sur Yon pour découvrir deux thématiques :
- Migration de la messagerie pour l'agglomération de La Roche sur Yon
- Partagez vos fichiers, contacts et calendriers avec OwnCloud

Vous vous intéressez au logiciels libres ou plus généralement au monde du Libre ?

Alliance Libre vous propose maintenant les Rendez-vous Libres de 18h30 à 20h30 à la Loco Numérique de La Roche sur Yon (123 Boulevard Louis Blanc, 85000 La Roche-sur-Yon) pour découvrir deux thématiques différentes.

Entrée libre et gratuite - Le nombre de places est limité, si vous voulez être sûr d'avoir une place, inscrivez vous à info AT alliance-libre DOT org.

Migration de la messagerie pour La Roche-sur-Yon Agglomération

Intervenant : Gilles Nicolazic, DSI de la ville de La Roche sur Yon

La DSI mutualisée Ville/CCAS/Agglomération met à disposition des agents depuis 2007 une messagerie basée sur Exchange de Microsoft. Cependant, face aux coûts des licences et à l'inquiétude quant à la localisation des données, la DSI a souhaité évaluer les alternatives libres.

Depuis avril, 30 utilisateurs pilotes testent Bluemind dans le but d'évaluer l'impact du changement sur les 1400 utilisateurs.

M. Nicolazic présentera le retour d’utilisation suite à 1 mois ½ de manipulation quotidienne par les utilisateurs pilotes.

Partagez vos fichiers, contacts et calendriers avec OwnCloud

Intervenant : Guillaume Cheramy (Hisyl)

Owncloud est un logiciel libre permettant entre autre, le stockage et la synchronisation de fichiers, la gestion des contacts et la gestion de calendrier en ligne. Les protocoles utilisés sont standards ce qui permet de synchroniser les données vers les différentes plateformes existantes : Pc (Windows, MAC, Linux), tablettes et téléphones (Android, IOS). Installable sur un serveur, aussi bien que sur un raspberry pi.

Télécharger ce contenu au format Epub

Lire les commentaires

Il reste 41 heures pour ZeMarmot

Mardi 9 Juin

Le financement du projet de film d'animation ZeMarmot touche à sa fin. Il reste un peu moins de 2 jours, 41 heures pour être plus exact. Nous ne sommes pas loin du palier objectif initial, 98% du financement de départ avec 226 contributeurs.

Je ne vais pas tout réexpliquer du projet car la news est en haut de première page, le logo linuxfr actuel, c'est aussi nous (enfin Aryeom, l'artiste animatrice en tête du projet), et on a fait quelques journaux précédents.

Je vous invite donc à les relire.

Mais pour résumer, ZeMarmot est donc un film d'animation en 2D, réalisé entièrement avec des Logiciels Libres (GIMP pour le dessin, Blender pour édition vidéo et compositing, Ardour pour le son), même la musique (grâce à la coopérative de musiciens AMMD), et distribué sous licence Art Libre/Creative Commons BY-SA (même les ressources, pas seulement la vidéo finale!).
L'histoire parle d'une marmotte qui découvre que le monde ne se limite pas à ses Alpes natales et décide de partir à l'aventure autour du monde, à la recherche du meilleur spot pour faire la sieste.

Dans ces 2 derniers jours restants, nous en appelons à vous une ultime fois, pour atteindre le financement initial déjà, mais même si possible aller bien au delà des 100%. Je rappelle que plus le film sera financé, plus nous pourrons aller loin dans cette première phase de production. Cela ne permettra pas des miracles, mais sera un début, une étape pour aller plus loin.
Chacun ses raisons pour contribuer: promouvoir et améliorer les Logiciels Libres, l'Art ou la Culture Libre, aider un film cool (nous c'est un peu toutes ces raisons en même temps), qu'importe! Si ça vous plaît pour une raison ou une autre, alors vous savez ce qu'il reste à faire. :-)

Télécharger ce contenu au format Epub

Lire les commentaires

Défense des libertés numériques le 27 juin 2015 à Pessac

Mardi 9 Juin

Le 27 juin de 14h à 20h, à Pessac auront lieu des débats, ateliers, conférences et projections consacrés à la défense des libertés numériques. Le lieu est le cinéma Jean Eustache situé au centre de Pessac, desservi par le train, le tramway, les bus et situé près de la rocade de Bordeaux.

Ce sont plusieurs associations gravitant autour du Libre qui se sont groupées pour soutenir cette journée dont le détail est donné dans la deuxième partie de cet article.

Pessac, c'est tout près du lieu de naissance des RMLL, c'est aussi le siège de l'ABUL, celui d'Aquinetic et d'AbulÉdu, un vrai bastion du logiciel libre parfaitement adapté à cette manifestation.

Journée « Défense des libertés numériques » Le lieu et la date

Samedi 27 juin 2015
à 14h et 18h30
au cinéma Jean-Eustache
1 rue des Poilus 33600 Pessac

Première partie

De 14h à 18h dans le hall du cinéma : ateliers, discussions, partages… Accès libre :

  • ateliers « Protéger ses données, signer ses messages, chiffrer… » ;
  • rencontre avec Okhin, cyberactiviste Telecomix : « Pour un Internet libre et ouvert » ;
  • découverte de la webradio Giroll : « Comment fonctionne une webradio DIY » ;
  • café numérique avec Médias-cité.
Deuxième partie : le film

De 18h30 à 20h en salle : projection-débat du film « Les Gardiens du nouveau monde », film documentaire de Flo Laval. Projection suivie suivi d’une rencontre avec le réalisateur Flo Laval et Okhin, membre de Telecomix, groupe de hackers européens. Tarif 4 €.

« Vous qui surfez sur Internet et utilisez les réseaux sociaux, vous pensiez le faire en toute liberté ? Mais connaissez-vous le fonctionnement du web, les enjeux politiques et économiques cachés derrière nos écrans ? Ce film raconte l’émergence d’une nouvelle génération de militants « hacktivistes » engagés politiquement aux côtés des ONG et des cyberdissidents. »

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 23 de l'année 2015

Mardi 9 Juin

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

[Slate.fr] Voici à quoi ressemble l'Internet d'un hyper prudent

Par Juliette Harau, le jeudi 4 juin 2015. Extrait:

La loi sur le renseignement fait craindre pour la protection de la vie privée. Mais les risques existent déjà, et certains s'en protègent mieux que vous.

Lien vers l'article original: http://www.slate.fr/story/101631/internet-hyper-prudent

Et aussi:

[Ars Technica] WikiLeaks releases secret TISA docs: The more evil sibling of TTIP and TPP

Par Glyn Moody, le mercredi 3 juin 2015. Extrait:

(le nouvel accord qui paralyse encore plus les gouvernements et citoyens) The new agreement that would hamstring governments and citizens even further.

Lien vers l'article original: http://arstechnica.co.uk/tech-policy/2015/06/wikileaks-releases-secret-tisa-docs-the-more-evil-sibling-of-ttip-and-tpp

Et aussi:

Voir aussi:

[Archimag] Wikibuilding: et si Paris se réinventait en mode wiki et open source?

Par Clémence Jost, le mercredi 3 juin 2015. Extrait:

Imaginez qu'un immeuble soit construit en mode "wiki", à l'image de l'encyclopédie numérique universelle Wikipédia. C'est le pari fou de Wikibuilding, le projet porté par l'agence d'architecture HOST, le promoteur Rei France et la startup Ufo dans le cadre de l'appel à projets urbains innovants "Réinventer Paris", lancé par la Ville de Paris le 3 novembre 2014.

Lien vers l'article original: http://www.archimag.com/vie-numerique/2015/06/03/wikibuilding-paris-wiki-open-source

[Next INpact] Loi Renseignement: la lutte contre la contrefaçon pourrait justifier la surveillance

Par Marc Rees, le mercredi 3 juin 2015. Extrait:

Lors des débats autour du projet de loi sur le renseignement, le sénateur Jean-Pierre Sueur a expliqué en creux que la lutte contre la contrefaçon pourrait autoriser le déploiement des outils de surveillance programmé par ce texte. Les débats se poursuivent actuellement jusqu'au 9 juin (on pourra suivre ici notre live tweet).

Lien vers l'article original: http://www.nextinpact.com/news/95309-loi-renseignement-lutte-contre-contrefacon-pourrait-justifier-surveillance.htm

Et aussi:

Voir aussi:

[ZDNet] La Disic veut améliorer la politique publique du logiciel libre, les éditeurs propriétaires grincent

Par Thierry Noisette, le dimanche 31 mai 2015. Extrait:

La Direction interministérielle des SI de l’État souhaite avancer dans la voie tracée depuis 2012, entre autres en permettant à des agents de contribuer à du logiciel libre sur leur temps de travail. Chez les éditeurs de logiciels propriétaires, on "s'insurge".

Lien vers l'article original: http://www.zdnet.fr/actualites/la-disic-veut-ameliorer-la-politique-publique-du-logiciel-libre-les-editeurs-proprietaires-grincent-39820036.htm

Et aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

TupperVim le 24 juin 2015 à Lyon

Mardi 9 Juin

Suite aux succès des deux précédentes sessions de cette année, l'ALDIL organise une troisième soirée TupperVim le mercredi 24 juin prochain.

Pour rappel, les TupperVim sont des réunions d'utilisateurs de l’éditeur de texte Vim (débutants ou avancés) durant lesquelles chacun des participants échange des trucs et astuces.

Vim étant un éditeur très riche et hautement paramétrable, ces sessions sont l’occasion de s’initier à son utilisation, d’approfondir ses connaissances, d’échanger ses vimrc ou encore de découvrir des greffons pour aller plus loin. Toute personne, quel que soit son niveau, est la bienvenue.

Tous les détails sont en seconde partie…

Pour profiter au mieux de l’atelier, il est vivement conseillé aux débutants complets de faire le tutoriel Vim avant de venir (vimtutor) ; on encourage les utilisateurs avancés qui le souhaitent à proposer une petite présentation rapide (~ 10 min) d’une fonctionnalité ou d’un plugin — un support n’est pas obligatoire, une présentation en direct depuis Vim est tout aussi efficace. Vous pouvez annoncer une présentation sur l'Étherpad.

Traditionnellement, ces ateliers sont aussi l’occasion de découvrir des outils qui ne sont pas directement liés à Vim mais qui s’inscrivent dans la même philosophie : ergonomie, minimalisme, efficacité.

Donc rendez-vous ce mercredi 24 juin 2015, à partir de 19h30, à l'Épitech de Lyon, au:
156 rue Paul Bert
69003 Lyon

Important :

  • merci de vous inscrire sur l'Étherpad ;
  • prévoyez également de quoi boire et manger si vous souhaitez rester pour l'apéro (dès 21h30, après l'atelier).

Venez nombreux !

Télécharger ce contenu au format Epub

Lire les commentaires

Drupagora - le salon dédié à Drupal - 19 juin 2015 à Paris

Mardi 9 Juin

Une journée de conférences et de retours d’expériences avec deux tracks en parallèle pour cet événement dédié à Drupal et à sa communauté : voilà ce qui vous attend le 19 juin 2015, à l'UPMC dans le 5ème arrondissement de Paris.

Parmi les sujets abordés :

  • une conférence plénière sur Drupal 8 dont la sortie est imminente ;
  • un cycle dédié aux chefs de projets ;
  • un cycle dédié aux retours d’expériences avec la participation de Bouygues Immobilier, Seloger.com, Orange, Yves Rocher, la CCI d'Alsace et l'INSEEC ;
  • des conférences dédiées aux bonnes pratiques, au e-commerce et à l'utilisation intensive de Drupal.
Rendez-vous à Paris le 19 juin 2015 pour la 5e édition.

NdM : l'inscription est désormais à 100€.

Retrouvez l'intégralité du programme et toutes les informations pratiques sur le site de Drupagora.

Télécharger ce contenu au format Epub

Lire les commentaires

Whiteout, chiffrement de bout en bout des courriels, convivial et OpenSource

Lundi 8 Juin

Suite aux différentes révélations récentes, en particulier celles d'Edward Snowden, la confidentialité des communications électroniques gagne en importance, et ce n'est pas trop tôt. Mais si la prise de conscience se fait doucement, il manque encore cruellement de solutions techniques, en particulier pour les courriels. Il existe certes PGP, GPG et d'autres, mais malgré leur présence depuis de nombreuses années, leur utilisation reste très confidentielle (c'est le cas de le dire).

Le plus gros problème est que ces outils sont peu conviviaux et peu pratiques. D'autres le sont plus, mais c'est typiquement la sécurité qui en pâtit, avec par exemple le stockage des clefs privées sur le serveur, ou des applications closed-source et/ou exécutées côté serveur.

Whiteout est une solution innovante en réponse à ce problème.

Voilà les principales caractéristiques du design de Whiteout :

  • les clés privées sont stockées côté client (web, Android, iOS…) ;
  • le chiffrement est fait côté client (les clés privées ne quittent donc pas l'environnement de l'utilisateur ; NdM: le chiffrement se fait via les bibliothèques OpenPGP.js et Email.js) ;
  • les courriels chiffrés, qu'ils soient reçus ou envoyés, sont stockés dans une boite standard (par IMAP) ;
  • OpenSource.

La sécurité est donc assurée, mais aussi la compatibilité, grãce à l'utilisation du standard IMAP.

Whiteout est déjà utilisable en tant qu'outil, l'équipe derrière le projet propose aussi le service "Whiteout Mailbox", qui fournit l'outil clefs en main, et chiffre les courriels reçus automatiquement avec la clef publique de l'utilisateur.

Le projet est actuellement en recherche de financement sur Indiegogo (voir les liens de l'article).

Télécharger ce contenu au format Epub

Lire les commentaires

Rencontre Gard-Linux - mardi 9 juin 2015 Vergèze

Lundi 8 Juin

La prochaine rencontre de l'association Gard-Linux aura lieu le mardi 9 juin 2015 de 19h à 22h au Centre socioculturel Marcel Pagnol, 99 rue Marcel Pagnol, 30310 Vergèze.

Le programme comprend des discussions et débats autour de Linux et des logiciels libres, et de l'entraide entre utilisateurs.

Vous voulez vous lancer et essayer Linux ? N'hésitez plus, nous pourrons vous accompagner sur ce chemin.

Soirée ouverte à tous - Repas tiré du sac.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de radare2 0.9.9 - Almost there

Lundi 8 Juin

Vous l'attendiez, elle est enfin arrivée, la nouvelle version de radare2, la 0.9.9, nom de code "Almost there"!
Radare est un framework complet d'analyse et de désassemblage de binaires. Plutôt que de vous inviter à lire chaque commit, voici un résumé des nouveautés dans la seconde partie.

Sommaire Quelques nombres

Grâce à plus de 50 contributeurs sur environ 1700 commits, voici ce qui a changé :

$ git checkout 0.9.9 && git diff 0.9.8 --shortstat 839 files changed, 156490 insertions(+), 18885 deletions(-) Console

La meilleure manière d'utiliser radare2, c'est à travers son shell. C'est pourquoi l'équipe a passé beaucoup de temps à la polir. Les utilisateurs sous Windows seront ravis d'apprendre que radare2 fonctionne maintenant sans soucis sur leur plateforme, et atteint presque la parité en matière de fonctionnalités par rapport aux vrais systèmes d'exploitation, avec d'incroyables nouveautés comme le support des touches fléchées, ou encore du ^c!

Grâce à un contributeur fan de couleurs, radare2 supporte maintenant la norme Truecolor, vous permettant de définir un thème visuel en choisissant parmi 16,777,216 couleurs!

Parmi la pile d'améliorations, on peut également trouver deux nouvelles variables, scr.wheelspeed et scr.responsive qui améliorent la navigation.

Il est de notoriété publique que la courbe d'apprentissage de radare2 est affreuse un peu raide. La bonne nouvelle, c'est que l'équipe a vérifié que chaque commande avait sa documentation (il suffit d'ajouter ? à la fin d'une commande pour avoir des informations à son sujet). Fini les commandes énigmatiques !

Nouvelles architectures i4004

Revenons, si vous le voulez bien, en 1971. À cette époque, Intel sortait le premier microprocesseur programmable, sous le nom de i4004.

Processeur ultra-rapide, du haut de ses 740kHz, capable d'adresser directement 640 bytes de RAM, c'était une technologie de pointe à son époque, et maintenant, 34 ans plus tard, radare2 le supporte enfin.

LH5801

Maintenant que nous avons remonté le temps, connaissez-vous le LH5801 ?

C'est un processeur 8bit qui fut utilisé dans le premier ordinateur de poche !

z80

Le précédent désassembleur z80 était sous licence GPL, avait des commentaires en allemand (comme LibreOffice et systemd !). Le nouveau est plus propre, plus correct, 75% plus petit, et sous licence LGPL ! Que demander de plus.

Pebble

Si vous avez une montre Pebble, il est maintenant possible de déboguer ses applications avec radare2.

Amélioration du moteur d'analyse

Les méthodes d'analyse de type nop-skip, de détection de variables locales, d'utilisation du PLT ELF et du mode Thumb sont maintenant supportées sur les architectures ARM et ARM64. Les drapeaux locaux et les labels de fonctions sont également activés par défaut pour l’intégralité des architectures.

Les informations de relocation de type PE sont maintenant affichées de manière plus claire :

Un exemple de support (basique) de l'architecture  :

En parlant d'analyse, saurez-vous trouver les améliorations sur l'architecture Dalvik ?

Changements au niveau des commandes

Quelques commandes ont changé, non pas pour le plaisir d’embêter les utilisateurs, mais au contraire pour les rendre plus faciles à appréhender. Si vous remarquez un changement désagréable dans vos habitudes, n'hésitez pas à ouvrir un rapport de bug à ce sujet.

Il y a également eu quelques ajouts, surtout au niveau des sous-commandes de type p, saurez-vous les trouver ? ;)

Corrections de bugs

La suite de tests du projet devient de plus en plus importante, mais ça ne l’empêche pas de se lancer avec diligence sur chaque nouveau commit, évitant les régressions, auparavant si nombreuses. Le nombre de défauts remontés par coverity a été réduit de plus de 75%, abaissant leur nombre à moins de 150.

On peut également noter que des bugs remontés par shellcheck, cppcheck, valgrind et compagnie ont également été exterminés !

ESIL

Comment oublier ESIL, le langage de représentation intermédiaire du projet.

Un contributeur féru de gameboy s'est acharné à en développer les spécifications, et à vouloir émuler complètement sa plateforme préférée avec; pendant que d'autres ont préféré se concentrer sur l'architecture x86, MIPS ou encore ARM. L'émulation et l'analyse avancée se rapprochent de plus en plus !

Deux nouveau contributeurs (qui sont maintenant des étudiants GSoC sous l'ombrelle du projet) ont repectivement ajouté, pour leur première contribution, un transpileur ESIL vers REIL, ainsi qu'une implémentation d'ESIL pour l'architecture 8051. Par mal pour une première contribution.

Recherche

Le moteur de recherche de gadgets ROP supporte maintenant les expressions régulières ! Il convient de noter que le caractère de séparation n'est plus , mais ;, ce qui force l'utilisation de guillemets doubles autour de la commande, ; étant normalement utilisé pour séparer les commandes dans radare2.

Certaines personnes utilisent radare2 au lieu de binwalk pour lancer libmagic sur des fichiers de format inconnu. C'est pourquoi la commande /m a été optimisée en vitesse et efficacité.

Graphes ASCII

Radare2 supporte depuis quelques temps les graphes ASCII dans la console; avec cette nouvelle mouture, les couleurs font leur apparition :

Elles sont bien évidement supportées dans les minigraphs :

Un nouveau rendu des arêtes de graphes a fait son apparition, et comme l'équipe aimait les deux, plutôt que de trancher, elles ont été intégrées ensemble, et il est possible de passer de l'une à l'autre avec la touche e.

Enseignement

Radare2 n'est pas uniquement utilisé pour faire de la retro-ingénierie sur des architectures étranges, ou écrire des exploits tordus, il sert également à enseigner l'informatique !

Radare2 vient avec une base de plus de 250 fortunes, et bien que les développeurs soient convaincus que toutes sont drôles, certaines sont de mauvais goût, voire franchement inappropriées. C'est pourquoi l'option cfg.fortunetype a été introduit. Il permet de filtrer les fortunes selon trois critères (qui peuvent se combiner) : tips, nsfw et fun. Elle devrait mettre fin aux moments de gêne et d’embarras durant les présentations ;)

Tout le monde ne peut pas se targuer d'être un expert dans d'obscures architectures exotiques, c'est pourquoi radare2 a une option asm.pseudo, permettant d'afficher les instructions dans une représentation plus évidente.

Il est également possible d'essayer le proto-pre-alpha décompilateur à l'aide de la commande pdc

Débogueur WinDBG

Un contributeur patient a ajouté le support de WinDBG, le débogueur ring-0 de Windows. Ce qui signifie qu'il est maintenant non seulement possible de tritouiller des drivers avec radare2, mais également des machines virtuelles ! Imaginez, arrêter l’exécution d'une machine Windows, modifier des instructions, et reprendre l'execution pas-à-pas, depuis radare2…

Tracing

Il est maintenant possible d'effectuer du tracing dans radare2, les instructions se décalant davantage à chaque utilisation :

Web interface

L'interface web de radare2 supporte maintenant:

  • une minimap, à la IDA
  • des graphes interactifs
  • encore plus de menus contextuels
  • un support des projets
  • une vue hexadécimale
  • une édition de types primitifs
  • un renommage des variables
  • un support des debuggers
  • du tracing

Le tout, à une vitesse folle !

r2pipe

Comme le développement de radare2 avance à bon train, au lieu d'utiliser des bindings traditionnels, la méthode recommandée pour appeler radare2 depuis un autre langage que le C est d'utiliser r2pipe, qui est grosso-modo un wrapper autour du shell.

En parlant de bindings, saviez-vous qu'en ajoutant j à chaque commande, radare2 retournera les informations sous forme de JSON ? Si vous vous amusez à parser les sorties de radare2 à la main au lieu d'utiliser le JSON, vous risquez de passer un mauvais quart d'heure.

Actuellement, nous supportons Python (2 et 3), Go et NodeJS; mais aussi D, C#, Java, Ruby, Perl, vala, NewList, Shellscript, Rust, …

Les packages pour r2pipe sont disponibles via pip pour Python, gem pour Ruby et npm pour Node.js.

Il s'agit d'une simple interface permettant d'envoyer des commandes r2 à travers un pipe, une connection tcp ou http, et de recevoir le résultat sous forme de string, ou comme évoqué précédemment, de JSON. Il est intéressant de noter qu'il est également possible d’appeler des scripts r2pipe directement depuis de shell de radare2, grâce à la commande ., un peu comme dans bash.

Misc

La plupart des développeurs de radare2 utilisent vim, mais certains utilisent emacs, c'est pourquoi il est maintenant possible d'utiliser les raccourcis vim et emacs dans radare2!

Le projet possède (encore) un nouvel assembleur x86, plus efficace, plus court, et plus joli !

Build

Le temps de build a été significativement réduit (près de 30% sur Windows !); c'est pourquoi il ne faut maintenant plus que 3m37s pour compiler la version git de radare2 sur un UbuntuPhone.

TV

Saviez-vous que radare2 a été aperçu sur une chaîne de télévision nationale (espagnole) grâce à Gabriel Gonzalez d'IOActive.

À propos, si vous utilisez radare2, n'hésitez pas à vous signaler ;)

Captures d'écran bonus


Comparaison des deux styles de graphes


Le logo de radare2, dans radare2, sous forme de stéréogramme


Évidement que radare2 tourne sur les Mazda. Oui, Mazda, les voitures.

Télécharger ce contenu au format Epub

Lire les commentaires

Thème Sécurité RMLL 2015 : don't TRUST your USB KEY? don't be FIR, take a new one in the CONTAINER

Lundi 8 Juin

Cette année encore, le thème Sécurité des RMLL revient vous proposer une variété de conférences autour de la Sécurité et des Logiciels Libres. Le thème commencera le lundi 6 Juillet 2015 à 14h et se terminera mercredi 8 Juillet 2015 après-midi. Les RMLL se déroulent cette année à Beauvais du samedi 4 Juillet 2015 au vendredi 10 Juillet 2015.

Comme c'est désormais une habitude, les conférences du thème Sécurité sont toutes données en anglais afin d'accueillir le mieux possible aux RMLL les spectateurs mais aussi les conférenciers non francophones.

Alors, qu'a-t-on au menu cette année ? Vous le saurez en lisant la suite de l'article.

La première demi-journée dédiée à la confiance :

La seconde journée abordera :

Enfin, le mercredi parlera des serveurs :

L'après midi, vous pourrez participer à un atelier sur IRMA et peut être un atelier surprise…

Want more?

4 interviews : Fred Raynal dit pappy, Thomas Chopitea dit tomchop, Xavier Mertens dit xme et François Marier de Mozilla.

Venez, c'est Libre, c'est Gratuit et c'est… Sécurisé :-)

Télécharger ce contenu au format Epub

Lire les commentaires

ApéroLibre de Nantes le 9 juin 2015 : "Pomm, Postgresql depuis PHP" & "TisHelp, helpdesk"

Lundi 8 Juin

Retrouvez-nous autour d'un apéro le mardi 9 juin à partir de 18h45 à la Cantine Numérique de Nantes pour découvrir deux thématiques :

  • Pomm, utiliser Postgresql depuis PHP ;
  • prise en main à distance avec TisHelp.

Vous vous intéressez aux logiciels libres ou plus généralement au monde du Libre ?

Alliance Libre vous propose un nouveau format de séminaire : les ApéroLibres, généralement le 2e mardi tous les deux mois pairs, de 19h à 21h (accueil des participants à 18h45) à la Cantine Numérique de Nantes (Chaussée de la Madeleine - 11 Impasse Juton - 44000 Nantes) pour découvrir deux thématiques différentes.

Entrée libre et gratuite - Le nombre de places est limité, si vous voulez être sûr d'avoir une place, inscrivez vous à info AT alliance-libre DOT org.

Prochaines dates : le 6 octobre et le 1er décembre

Pomm, utiliser Postgresql depuis PHP

Intervenant : Grégoire Hubert (PragmaFabrik)

À l'heure où les applications web ne concernent plus uniquement des prestations en marge d'une activité principale mais souvent composent l'activité principale, les bases de données relationnelles n'ont jamais été aussi utiles. Fortes de 40 ans d'expérience dans l'industrie, que peuvent-elles apporter aux développements web face aux cas métiers complexes présents dans ce type d'application ? Nous verrons lors de cette présentation pourquoi la base de données relationnelle libre Postgresql offre un arsenal de solutions efficaces aux développeurs et via le gestionnaire de modèle de Pomm, comment les exploiter au mieux.

Prise en main à distance avec TisHelp

Intervenant : (Tranquil IT Systems)

TISHelp permet à un utilisateur de partager son écran à son initiative avec un technicien de support en deux secondes en utilisant les protocoles standards du web (https). L'agent côté utilisateur est un simple exécutable autocontenu, signé, et téléchargeable en deux secondes à partir d'une URL facile à taper ; alternativement, il peut s'installer de manière permanente grâce à WAPT ou tout autre méthode manuelle ou automatisée de déploiement de paquets logiciels. TISHelp reproduit les fonctionnalités les plus intéressantes de TeamViewer et fonctionne sur un serveur Debian sous votre contrôle.

L'histoire de TISHelp est revisitée. Initialement développé pour couvrir un besoin interne, des clients nous ont demandé de progiciéliser le dispositif pour couvrir leurs propres besoins de support à leurs utilisateurs. Tranquil IT Systems utilise massivement ce mécanisme pour collaborer avec tous ses clients (infogérance et support Niveau 3) ; des DSI très prestigieuses lui montrent un intérêt croissant. TISHelp est simple et son utilité évidente ; nous déborderons donc du sujet TISHelp pour partager avec vous quelques expériences récentes sur WAPT et SaMBa4, deux sujets abordés récemment en "ApéroLibre".

Télécharger ce contenu au format Epub

Lire les commentaires

Libertempo Fork de PHP_conges

Dimanche 7 Juin

Libertempo (fork de PHP_conges) est un outil en ligne (PHP/MySql) de gestion des congés sous licence GNU GPL. Cette version apporte d'une part une nouvelle interface beaucoup plus esthétique, mais aussi une révision partielle du code.

Les versions précédentes de PHP_conges peuvent être facilement mises à jour vers Libertempo. Néanmoins, il subsiste certainement quelques bugs (non bloquants) à corriger. Prenez donc le temps d'essayer Libertempo avant de le mettre en production. À ce sujet, les contributions diverses (test, remontées de bugs, correction et amélioration du code source…) sont les bienvenues…

Libertempo est (tout comme PHP_conges) hautement paramétrable, les fonctionnalités sont très nombreuses :

  • gestion des congés soit par le responsable seul , soit par système de demande par l'utilisateur / validation par le responsable.
  • gestion des absences pour mission, formation, etc …(absences sans perte de congés) par l'utilisateur ou par le responsable.
  • gestion des congés et absences par demi-journées.
  • calcul automatique du nombre de jours pris (lors d'une demande de congés)
  • possibilité de validation des demandes de congés par "double validation" (par le responsable direct + un responsable supérieur).
  • possibilité de fonctionnement par groupes d'utilisateurs.
  • possibilité pour le responsable de refuser et d'annuler les absences d'un utilisateur.
  • possibilité, pour le responsable, d'ajouter des congés par utilisateur, par groupe, ou pour tous (une seule saisie) .
  • possibilité d'authentifier les utilisateurs sur un annuaire de type LDAP, Active-Directory ou CAS.
  • module de saisie des jours chômés/jours fériés (nécessaire pour la fonction de calcul automatique)
Télécharger ce contenu au format Epub

Lire les commentaires

Modernisez votre code Java en un clic avec AutoRefactor v1.0.0 !

Vendredi 5 Juin

Le 22 mars 2015 est sortie la version 1.0.0 du projet AutoRefactor. Ce logiciel est publié sous Eclipse Public License v1.0 et GNU General Public License v3+.

AutoRefactor restructure automatiquement le code source d'un programme Java afin de :

  • Faciliter la maintenance en améliorant la lisibilité
    • exemple : lorsque toutes les branches d'un if ont les mêmes instructions à la fin des blocs, celles-ci sont déplacées après le if, …
  • Moderniser le code
    • exemple : passer des APIs de java.util.Vector vers celle de java.util.List, …
  • Appliquer les bonnes pratiques
    • exemple : utilisation d’accolades après un if, javadoc bien formés, bonne utilisation des APIs de BigDecimal, TestNG, …
  • Réduire la taille du code
    • exemple : un if imbriqué dans un autre if devient un if unique, suppression des variables locales déclarées juste avant un return, …
  • Améliorer les performances
    • exemple : utiliser Integer.valueOf(int) au lieu de new Integer(int), …
Sommaire Historique

J'ai commencé ce projet car j'en avais assez de faire les mêmes changements manuellement (ou semi-manuellement avec les refactorings proposés par Eclipse) dans tous les fichiers sur lesquels je travaille. J'ai commencé par utiliser des expressions rationnelles pour retravailler toute la base de code, mais les faux positifs étaient bien trop nombreux, et puisque les expressions rationnelles ne travaillent que sur du texte, toute analyse s'appuyant sur la sémantique du langage (types, variables, etc.) est impossible.
J'ai donc fait diverses expérimentations pour pouvoir faire des analyses « comprenant » le langage. Hélas toutes ces expérimentations ont raté.
Toutes, jusqu’à ce que je crée un greffon Eclipse s'appuyant sur l'API des Java Development Tools (Eclipse JDT). Cette dernière fournit un parser, mais surtout une API pour faire des refactorings. En fait, c'est l'API que l'IDE Eclipse utilise pour ses propres refactorings.

Utilisation

Depuis l'interface d'Eclipse, le développeur sélectionne les fichiers, packages ou projets Java à restructurer, et lance la réorganisation automatique du code. Pour cela, il choisit l’entrée AutoRefactor dans le menu contextuel accessible par un clic doit, ou bien il tape le raccourci clavier Alt+Shift+Y.
Le greffon AutoRefactor restructure alors le code en appliquant automatiquement les refactorings choisis par le développeur.

Principe de fonctionnement

Les restructurations de code sont implémentées par des refactorings successifs, c'est-à-dire des petits changements incrémentaux qui modifient le code sans changer son comportement à l'exécution. Ceci est vrai pour la plupart des refactorings, ceci dit, certains peuvent avoir des effets de bord (voir ci-après), mais un programme sensible à ces changements s'expose à des comportements indéfinis lors de l’exécution.

Système de passes successives

Le greffon travaille avec un système de passes successives. Lorsque le développeur a choisi les règles de refactoring à appliquer, le greffon prend la liste des refactorings et (algorithme simplifié) :

  1. le fichier Java à analyser est parsé et produit un arbre syntaxique abstrait (AST en anglais)
  2. pour chaque refactoring :
    1. cherche des opportunités de refactoring en visitant l'arbre syntaxique abstrait
    2. génère les réécritures de code lorsqu'une opportunité de refactoring a été identifiée
  3. lorsque tout l'arbre syntaxique abstrait a été visité, si des réécritures de code ont été générées :
    1. alors, toutes les réécritures de code générées sont appliquées sur le fichier
    2. le fichier est sauvegardé
    3. boucle vers 1.
    4. sinon, fin : il n'y a plus de refactorings possibles sur ce fichier Java

Actuellement, tous les refactorings implémentés font du filtrage par motif (pattern matching) et travaillent fichiers par fichiers.

Du coup, il est extrêmement facile de paralléliser le code : le greffon lance autant de fils d’exécution en arrière-plan qu'il y a de processeurs disponibles et utilise une simple liste de tâches pour leur fournir du travail. Chaque tâche consiste à analyser et restructurer un fichier Java.

Bien sûr, le greffon dispose d'une suite de tests composée de paires de fichiers exemples Java : un fichier avant restructuration, un autre fichier contenant le résultat que l'on souhaite obtenir après restructuration. La suite de tests unitaires exécute chaque règle de refactoring indépendamment sur sa paire de fichiers et compare la sortie attendue avec la sortie obtenue. Les deux doivent correspondre. La compilation et les tests unitaires sont exécutés sur un serveur d’intégration continue.
Je vous encourage très vivement à regarder les exemples tirés de la suite de tests.

Par ailleurs, je teste plus avant les refactorings sur la base de code mature d'OpenDJ. Cela me permet de trouver pas mal de bugs avant qu'ils n'atteignent une version stable et donc de rajouter des cas de tests. Le code mature est bien plus sournois que les cas de tests auxquels on peut penser ! :)

Attention ! Il faut toujours relire le code modifié automatiquement avant de committer les changements !

En effet, voici un exemple de code pour lequel les changements ont modifié le comportement :

Integer i1 = 0; Integer i2 = new Integer(0); if (i1 == i2) { // compare des références d'objets ! System.out.println("OK"); }

Ici, "OK" n'est pas affiché sur le terminal car i1 et i2 sont deux objets différents en mémoire.
Maintenant si AutoRefactor modifie le code comme ceci :

Integer i1 = 0; Integer i2 = Integer.valueOf(0); if (i1 == i2) { // compare des références d'objets ! System.out.println("OK"); }

"OK" sera affiché sur le terminal car i1 et i2 référencent le même objet en mémoire.
Comment est-ce possible ? Et bien la ligne Integer i1 = 0; est en fait générée comme ceci par le compilateur java : Integer i1 = Integer.valueOf(0);. De plus il existe un cache pour les objets Integer entre -128 et 127 (inclus), ce qui fait que i1 et i2 référencent le même objet en mémoire.
Ce code aurait probablement du être écrit comme ceci :

int i1 = 0; int i2 = 0; if (i1 == i2) { // compare la valeur des entiers ! System.out.println("OK"); }

Et le code aurait correctement affiché "OK" sur le terminal.
AutoRefactor ne sait pas encore le faire, mais j’espère y arriver un jour.

Cet exemple démontre que certains refactorings ne préservent pas totalement le comportement lorsque le code s'appuie sur des comportements « limites » de Java.
Cependant il est possible que ce soit bien le comportement désiré par le programmeur.

C'est pourquoi il est recommandé de toujours relire les refactorings automatiques avant des les committer dans le gestionnaire de sources. Vous utilisez bien un gestionnaire de source, n'est-ce pas ?

De la difficulté d’écrire des outils automatiques dans un monde subjectif

Après avoir mis ce gros bémol, je tiens à signaler que j'essaie d’avoir un résultat final propre et logique. Je suis pragmatique : soit j'essaie absolument de préserver le comportement du programme, et dans ce cas, je ne fais presque rien ; soit je prends des risques « mesurés » en ignorant les cas « bêtes » comme celui-ci dessus, et alors j'autorise beaucoup plus de possibilités de refactorings.
C'est un équilibre dur à trouver dans certains cas tel qu'illustré par la méthode isHardToRead(). Bien sûr, c'est éminemment subjectif, mais puisque c'est moi qui code, j'impose mes idées. :) Plus sérieusement, si vous pensez que j'ai tort, je suis ouvert à discussion.

J'avais d'ailleurs pensé rajouter une préférence pour forcer à préserver le comportement, mais j'ai renoncé lorsque je me suis rendu compte du nombre de refactorings que cela interdirait. Par exemple, un code aussi simple que celui-ci :

System.out.println("this is " + obj.toString());

ne pourrait plus être réécrit comme ceci :

System.out.println("this is " + obj);

En effet, on perdrait la vérification sur référence nulle. Si obj est null, la première écriture lève une NullPointerException, alors que la deuxième écriture imprime "this is null". Bien sur, il serait peut-être possible de détecter qu'obj n'est pas null en faisant une analyse du flot de contrôle (j'ai bien dit peut-être), mais cela nécessite des outils dont je ne dispose pas encore. Par pragmatisme, j'ai simplement considéré que s’appuyer sur un appel à toString() pour détecter une référence nulle était une mauvaise pratique dans ce cas, et j'ai quand même écrit la règle qui fait cette réécriture :)

Futur

Même si tous les refactorings actuellement implémentés font du filtrage par motif, j’espère bien parvenir un jour à faire de l'analyse de flot de contrôle en construisant un graphe de flot de contrôle (CFG an anglais). Ceci permettrait d’écrire des refactorings comprenant les chemins d’exécution du code, comme le ferait un développeur qui lirait du code. En particulier, il deviendrait possible de réduire la portée des variables, comprendre quels chemins d’exécution du code sont morts (impossibles à atteindre)

 

J'aimerai aussi développer une autre fonctionnalité : l'extraction (semi-?)automatique de méthodes.
Voici un exemple de code que je vois trop souvent :

// ... quelques dizaines / centaines de lignes de code boolean found = false; for (String s : strings) { if (toFind.equalsIgnoreCase(s2)) { found = true; break; } } if (found) { // faire quelque chose } // ... quelques dizaines / centaines de lignes de code

Comment simplifier cette longue méthode ?
En extrayant une nouvelle méthode, comme ceci :

// ... quelques dizaines / centaines de lignes de code if (containsIgnoreCase(strings, toFind)) { // faire quelque chose } // ... quelques dizaines / centaines de lignes de code } private boolean containsIgnoreCase(Collection<String> strings, String toFind) { for (String s : strings) { if (toFind.equalsIgnoreCase(s2)) { return true; } } return false; }

La plus grosse difficulté, c'est de savoir comment nommer la nouvelle méthode, et un humain doit intervenir, d’où le coté semi-automatique.

 

Le support de Java 7 arrive doucement avec le support de refactorings générant l'opérateur diamant '<>' (pas de besoin de répéter les types génériques), et le multi-catch (pas besoin de copier-coller le même bout de code dans deux blocs catch différents).
Par exemple, le code suivant :

List<String> strings = new ArrayList<String>(); try { // plus de code } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); }

Peut être réécrit comme ceci en Java 7 :

List<String> strings = new ArrayList<>(); try { // plus de code } catch (IllegalArgumentException | NullPointerException e) { e.printStackTrace(); }

La version 1.1.0 à venir a beaucoup de bonnes et nouvelles choses disponibles. Je vous conseille de l'installer depuis les nightlies.

Appel à contributions

J’espère que la présentation de ce greffon vous aura intéressé.

Si vous êtes un développeur Java, je vous encourage à l'installer :

Si vous êtes vraiment enthousiasmés et que vous voudriez l’améliorer ou l'adapter à vos besoins, n’hésitez surtout pas ! Envoyez des rapports de bugs, des pull-requests, interagissez sur gitter, etc.

Si vous voulez aider, mais que vous êtes à court d’idées, voici une petite liste :

Je m'amuse bien à réécrire le code automatiquement. Franchement, ce n'est pas trop difficile ou trop long d'ajouter de nouvelles règles, alors n’hésitez pas à vous lancer ! Je vous aiderai.

Télécharger ce contenu au format Epub

Lire les commentaires

Quelques brèves sur OpenPGP

Vendredi 5 Juin

NdM : gouttegd livre régulièrement des journaux traitant d'OpenPGP. Il vient de réaliser une petit tour d'horizon de quelques brèves à ce propos.

Au sommaire :

  • La reprise d'activité sur OpenPGP ;
  • Une nouvelle version de la carte OpenPGP ;
  • Facebook se met à OpenPGP.

Bonne lecture !

Sommaire

Un petit journal bookmark pour annoncer quelques nouvelles intéressantes dans le monde OpenPGP.

La reformation du groupe de travail OpenPGP

Le groupe de travail OpenPGP à l’IETF s’était dissous en 2008 peu après la publication du RFC 4880, la version actuelle du standard OpenPGP. Depuis, il n’y avait pas eu grand’chose de nouveau dans OpenPGP, le plus gros changement étant l’introduction des algorithmes Camellia (RFC 5581) et ECDSA/ECDH (RFC 6637).

Maintenant, suite à un regain d’activité ces derniers mois sur sa liste de discussion, le groupe de travail est en train de se reformer. Les participants se sont accordés pour dire que le standard avait besoin d’être un peu rafraîchi.

Pêle-mêle, les points qui devraient/pourraient être abordés par ce « nouveau » groupe de travail incluent, entre autres :

  • La mise-à-jour des différents algorithmes qui DOIVENT être implémentés. Aujourd’hui, il s’agit de DSA et ElGamal pour les algorithmes asymétriques, 3DES pour le chiffrement symétrique, et SHA-1 pour la condensation. Il serait question d’ajouter ECDSA et ECDH en complément de DSA et ElGamal, de passer de 3DES à AES (qui aujourd’hui DEVRAIT être implémenté mais n’est pas obligatoire), et de passer de SHA-1 à SHA-2 voire à SHA-3).
  • Le remplacement de SHA-1 utilisé pour calculer les empreintes de clefs. Même si la probable vulnérabilité de SHA-1 aux attaques par collision ne remet pas en cause cette utilisation particulière — ce dont on a besoin ici est la résistance aux attaques sur la seconde préimage, et SHA-1 ne montre pas de signes de faiblesse de ce côté —, les participants estiment globalement qu’il serait plus simple de se débarasser purement et simplement de SHA-1 plutôt que de faire le tri des usages pour lesquels cet algorithme est encore sûr. Ne serait-ce que parce que ça éviterait aux développeurs d’avoir à expliquer à longueur de journée la différence entre collision et préimage, et partant d’avoir à justifier pourquoi ils utilisent encore SHA-1 alors que le monde autour d’eux répète à l’envie que SHA-1 est « complètement cassé ».
  • Le remplacement du mode d’opération pour le chiffrement symétrique. OpenPGP utilise, historiquement, sa propre variante du mode « Cipher Feedback ». Aujourd’hui, plusieurs développeurs préféreraient utiliser tel quel un mode bien défini et bien étudié par ailleurs plutôt qu’un mode créé sur mesure pour OpenPGP et utilisé seulement par lui (et qui vient avec ses propres attaques). Par ailleurs, dans la version actuelle la vérification de l’intégrité des données se fait en mode « MAC-then-encrypt » (un MAC est calculé sur le texte clair, puis chiffré avec le reste des données — le receveur est obligé de déchiffrer avant de pouvoir vérifier l’intégrité des données), ce qui n’est généralement plus recommandé aujourd’hui. Pour corriger d’un coup les deux problèmes (l’utilisation d’un mode spécifique à OpenPGP et la question de la vérification d’intégrité), les regards se tournent vers les nouveaux modes d’opération permettant le « chiffrement authentifié » (AEAD).
  • La mise à jour des algorithmes permettant de dériver une clef symétrique à partir d’une phrase de passe (String-to-Key specifiers ou S2K, selon le terme du RFC 4880). C’est un peu le même problème que le point précédent : les concepteurs de PGP et par suite d’OpenPGP avaient élaboré leur propre mécanisme de dérivation de clefs, et il serait question aujourd’hui de le remplacer par un mécanisme plus standard — les regards se tournent principalement soit vers PBKDF2 (RFC 2898), soit vers le (futur) vainqueur de la compétition PHC qui se tient actuellement sur le modèle des compétitions qui ont choisi AES et SHA-3.

L’objectif annoncé du groupe de travail est de publier d’ici fin 2016 un nouveau RFC qui remplacera le RFC 4880 actuel.

Une nouvelle version de la carte OpenPGP

La spécification de la carte OpenPGP, une application pour carte à puce, vient d’être mise à jour en version 3.0.

Au menu principalement :

  • la possibilité de générer et stocker sur la carte des clefs ECDSA et ECDH, et non plus seulement des clefs RSA ;
  • la taille minimale prise en charge pour une clef RSA est désormais de 2048 bits au lieu de 1024 ;
  • passage de SHA-1 aux algorithmes de la famille SHA-2 pour les opérations de signature.

Côté implémentations, Kernel Concepts, distributeur de l’implémentation de référence, n’a pas encore annoncé de carte au standard 3.0. En revanche, Gnuk, l’implémentation pour processeur STM32F103, est a priori déjà à jour.

Facebook se met à OpenPGP

Depuis quelques jours, Facebook permet à ses utilisateurs d’ajouter leur clef publique à leur profil. Dès lors et si l’utilisateur le souhaite, Facebook chiffrera les e-mails de notification avec sa clé afin que lui seul puisse les lire, tout en les signant pour assurer leur authenticité a l'utilisateur.

Quoique je puisse penser de Facebook, c’est à ma connaissance le premier « gros » site web (à fortiori dans la catégorie « grand public ») à proposer une telle fonctionnalité, et j’apprécie cela. J’apprécie encore plus quand cela s’accompagne d’un soutien financier pour le développeur principal de GnuPG.

Télécharger ce contenu au format Epub

Lire les commentaires

Quoi de neuf côté LinuxFr.org

Jeudi 4 Juin

La dernière dépêche de cette catégorie LinuxFr.org qui ne soit pas une dépêche récurrente type « Les meilleurs journaux du mois » ou « Les prix du mois » ou « Les statistiques de l'année » remonte à mai 2014 pour une mise à jour du serveur. Voici donc, à l'aube de l'été, quelques actualités de type « en coulisses ».

    Sommaire Suppression du spam dans les contenus et commentaires

    Il est possible que beaucoup d'entre vous ne le remarque jamais ou rarement, mais l'équipe de modération supprime très régulièrement du spam dans les contenus et commentaires. Certains se donnent du mal pour ennuyer les autres, que cela passe par des bots créant des comptes et postant des contenus générés automatiquement, des humains payés pour faire la chose manuellement et des pénibles en SEO venant établir des liens vers leurs sites.

    Mises à jour de sécurité suite aux différentes failles

    Une autre partie de l'activité récurrente concerne les mises à jour de serveur, et en particulier celles suite aux diverses failles touchant la cryptographie (Heartbleed, POODLE, BEAST, etc.) ou même le reste (Shellshock). Bref, il y a régulièrement de l'apt dans l'air pour les mises à jour, et aussi des configurations à revoir pour supprimer des protocoles ou des algorithmes de crypto obsolètes par exemple.

    Dans la catégorie mise à jour, on peut aussi citer le passage en Jessie du serveur zobe (non critique) courant mai, qui s'est bien déroulée jusqu'au redémarrage. Il est pour l'instant indisponible jusqu'à une prochaine intervention au datacenter.

    Faille ElasticSearch sur juin/juillet 2014

    Le texte qui suit a été écrit en août 2014, mais n'avait pas été publié jusqu'ici.

    Début juin 2014 (*), les deux serveurs web de test et de production du site LinuxFr.org ont été victime d'une attaque, ayant permis l'exécution de processus arbitraires par un compte non privilégié. Plusieurs tentatives d'élévation de privilèges ont eu lieu, sans succès, et le compte concerné n'a pas eu accès aux données utilisateur du site. Seuls deux containeurs LXC sont concernés et l'attaque n'a touché ni les autres conteneurs, ni les deux serveurs physiques. Les conteneurs attaqués ont malheureusement été utilisés pour un déni de service. Le service concerné (elasticsearch, utilisé pour le moteur de recherche interne du site, dans une configuration non sécurisée) a été arrêté dès l'identification du problème de sécurité.

    (*) pour autant que l'on puisse être sûr dans ce genre de circonstances.

    L'erreur de configuration vient de la fonction de scripts dynamiques, ouverte par défaut (voir Scripting and Security le 9 juillet 2014, précédemment sur Scripting).

    Cette intrusion est arrivée au pire moment possible (loi de Murphy) : un admin dans les cartons d'un déménagement et sans accès internet correct, un autre en vacances hors ligne, un autre en surchauffe, etc. le tout autour du pont du 14 juillet (ce qui a laissé perduré le premier diagnostic d'un simple problème réseau), dans la torpeur estivale post-RMLL.

    Une analyse post-mortem a été faite par précaution, avec une comparaison de deux fois 75 Go de sauvegardes et une comparaison avec une réinstallation. La fonctionnalité de recherche interne n'a cependant pas été remise en service.

    Liens :

    Chronologie reconstituée :

    Quelques traces laissées :

    /tmp/linux64 (binaire 64 bits statique, DDOS/amplification trojan) MD5SUM a4eecf76f4c90fb8065800d4cad391df SHA1SUMee6e21332b77fd5ff45e6dd84c0ab670b09c47d7 Modify (alpha): 2014-06-16 18:50:24.000000000 +0200 Change (alpha): 2014-07-01 00:04:19.212510027 +0200 Modify (prod): 2014-06-16 18:50:24.000000000 +0200 Change (prod): 2014-07-01 02:31:31.368760889 +0200 Changt (prod, version précédente) : 2014-06-28 15:53:43.477456943 +0200 Changt (alpha, version précédente): 2014-06-28 15:53:07.431067208 +0200 /tmp/linux64.1 (le même sans les droits d'exécution) Modify (alpha,prod): 2014-06-16 18:50:24.000000000 +0200 Change (alpha): 2014-07-01 00:04:13.784431599 +0200 Change (prod): 2014-07-01 02:31:26.332687560 +0200 /tmp/2618.c (code d'exploit) SHA1SUM3b9ebf99ec0c331a4f98f46f7724d42b287ee0c9 MD5SUM aa0a0fea5d681acca154a37125252db9 Modify (alpha,prod): 2014-07-08 18:20:21.000000000 +0200 Change (alpha): 2014-07-09 03:54:48.727879711 +0200 Change (prod): 2014-07-09 03:54:52.427932224 +0200 /tmp/zero.pl (script perl pour avoir un shell via le réseau) SHA1SUM 7d77d06d1e3d9ce7aed43e6d5a7a75f9af310daa MD5SUM c3fd28831d9fc683000273643b5bef12 Modify: 2014-07-05 23:41:31.000000000 +0200 Change (alpha): 2014-07-09 03:54:46.831852803 +0200 Change (prod): 2014-07-09 03:54:54.695964414 +0200 /tmp/32.out (exploit 64 bits statique, connu comme Unix.Exploit.Fsheep) SHA1SUM 0e76f4c72295fe851b775dac8c49ec53108f1df6 MD5SUM ff1e9d1fc459dd83333fd94dbe36229a Modify (alpha,prod): 2014-07-08 15:04:42.000000000 +0200 Change (alpha): 2014-07-09 03:55:51.760774344 +0200 Change (prod): 2014-07-09 03:55:22.968365680 +0200 /tmp/12.txt (contient "1233", présent depuis le 23 mai dans des exploits sur des sites asiatiques) SHA1SUM 416f8f6e105370e7b9d0fd983141f00b613477f8 MD5SUM e034fb6b66aacc1d48f445ddfb08da98 Modify (alpha): 2014-07-12 02:30:42.084255080 +0200 Chang (alpha): 2014-07-12 02:30:42.084255080 +0200 Modify (prod): 2014-07-12 00:55:14.060062158 +0200 Change (prod): 2014-07-12 00:55:14.060062158 +0200 Modif. (prod, version précédente): 2014-06-07 10:34:30.280153412 +0200 Changt (prod, version précédente): 2014-06-09 20:03:34.372893780 +0200 Modif. (alpha, version précédente) : 2014-06-07 20:15:05.675547255 +0200 Changt (alpha, version précédente) : 2014-06-09 20:00:16.113258887 +0200 /tmp/bins (identique à zero.pl) Modify (alpha,prod): 2014-07-05 23:41:31.000000000 +0200 Change (alpha): 2014-07-11 13:47:50.492585215 +0200 Change (prod): 2014-07-12 05:53:16.175681015 +0200 /tmp/mempodipper.c (fichier vide) SHA1SUM 271a0a0e06d67f285fdc4d5c7e535255ead28880 MD5SUM 4206e8b780cf3758baa76b1002e61792 Modify (alpha): 2014-07-11 13:47:59.220714584 +0200 Change (alpha): 2014-07-11 13:47:59.220714584 +0200 Modify (prod): 2014-07-12 05:53:19.935737099 +0200 Change (prod): 2014-07-12 05:53:19.935737099 +0200 /tmp/2618 (prod seulement; exploit 32 bits, a priori non issu du .c à côté) MD5SUM 17b2ee66918319a3ac9435aef7c5e2dc SHA1SUM 3942d8cf47800e3595194cdaf6b645fc6c8c8e71 Modify (prod): 2013-03-31 21:25:08.000000000 +0200 Change (prod): 2014-07-12 05:53:24.559806071 +0200 /tmp/269 (prod seulement, exploit 32 bits) MD5SUM a3e718751e600c4e8503ac6836b84aba SHA1SUM ec22fac0510d0dc2c29d56c55ff7135239b0aeee Modify (prod): 2014-07-11 16:50:42.000000000 +0200 Change (prod): 2014-07-12 05:53:25.067813648 +0200 /tmp/2632 (prod seulement; exploit 32 bits) MD5SUM 29f8b6e0ed968e0bf32a24835a7b386f SHA1SUM 5faf7d6c41e79c20e1551588c74df9bf72293c12 Modify (prod): 2014-07-11 16:50:22.000000000 +0200 Change (prod): 2014-07-12 05:53:25.715823314 +0200 /tmp/.Linux_time_y_2015 (exploit 32 bits) Modify (alpha): 2014-07-11 13:48:14.292937981 +0200 Change (alpha): 2014-07-11 13:48:14.292937981 +0200 Modify (prod): 2014-07-12 05:53:38.992021336 +0200 Change (prod): 2014-07-12 05:53:38.992021336 +0200 Gestion d'une plainte pour harcèlement et usurpation d'identité

    Le site LinuxFr.org a été utilisé (parmi d'autres, dont tous les sites de réseaux sociaux, de diffusion de vidéos, Wikipédia ainsi que plusieurs hébergeurs web gratuits) par une personne menant visiblement une campagne de harcèlement en ligne tendance « revenge porn ». Une plainte ayant été déposée pour harcèlement et usurpation d'identité, nous avons échangé par téléphone et courriel avec les autorités compétentes et avons fourni les informations en notre possession.

    C'est le premier cas dans l'histoire du site (et de l'association LinuxFr) où nous sommes concernés par une plainte formelle (même si ici nous ne sommes pas directement concernés mais simplement un « service de communication au public en ligne édité à titre non professionnel au sens de l'article 6, III, 2° de la loi 2004-575 du 21 juin 2004. »). Jusqu'ici, le seul cas nous concernant directement et présentant un aspect formel est la mise en demeure de mai 2013.

    Stand LinuxFr.org aux RMLL 2015 Beauvais

    LinuxFr.org aura un stand aux RMLL 2015 à Beauvais. Cela sera l'occasion de venir discuter avec des membres de l'équipe, voire de signer des clés GPG ou d'obtenir des accréditations CAcert.

    Changement de certificat X.509 et d'autorité de certification

    Le certificat utilisé par LinuxFr.org arrive à échéance dans le 5 juin 2015. Nous utilisions jusqu'ici l'autorité de certification communautaire CAcert. Suite aux retraits des certificats racine des distributions libres, l'assemblée générale de l'association LinuxFr du 6 mai 2015 a décidé d'opter pour une autre autorité de certification (la société Gandi). Les différentes pages d'aide sur X.509/SSL/TLS ont été mises à jour (1, 2 et 3).

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Apodio 10, liveCD multimédia

    Jeudi 4 Juin

    Apodio est une distribution pour tout type de créateur, artiste, étudiant, passionné en général. La version 10 d’Apodio, basée sur Xubuntu, est sortie fin mai 2015.

    Que ce soit pour l’audio, la vidéo, le graphisme ou la 3D, Apodio est prête à être utilisée pour un concert live, une exposition, une performance, en studio, …

    Le premier objectif est d'offrir un liveCD pour PC, une station audio-vidéo complète sous GNU/Linux qui puisse s'installer rapidement sur le disque dur ou fonctionner directement sur le CD, avec des outils d'administration le plus simple possible.

    Apodio est conçu par l'association nantaise Apo33 dont les activités tournent autour de la musique, le son, la vidéo, … numériques ou pas. L'association propose des ateliers réguliers autour de l’Apodio à travers le monde, de Nantes à Toronto, et de Londres à Mumbai.

    L'association propose ainsi divers ateliers autour de la création numérique. On peut mentionner par exemple « Construire un synthétiseur à base d’un ordinateur embarqué basé sur Puredata, Arduino et Raspberry Pi» qui a eu lieu du 7 au 9 mai 2015.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Sortie de Perl 5.22.0

    Jeudi 4 Juin

    Le langage Perl, initialement conçu pour la manipulation de texte, puis utilisé aujourd’hui pour tout un vaste pan d’applications, allant des frameworks web aux applications en biologie, continue à mûrir dans sa troisième décennie.

    Cette dépêche fait suite à la précédente concernant la sortie de la version 5.16.0, et résume les évolutions majeures depuis cette dernière (version 5.18.0 en mai 2013, 5.20.0 en mai 2014 et 5.22.0), qui sont le fruit du travail de plus d’une centaine de personnes.

    Un aperçu des évolutions de l’écosystème Perl 5 ces dernières années et de celui de sa petite sœur (ou petit frère) Perl 6 complète le tableau.

    Sommaire La version 5.18.0 Langage

    Des opérations ensemblistes sur les classes de caractères sont possibles dans les regexps avec une nouvelle construction (?[...]). Par exemple :

    use v5.18; use utf8; no warnings "experimental::regex_sets"; print "λ est une lettre grecque minuscule\n" if "λ" =~ /(?[\p{Greek} & \p{Lower}])/; print "Λ est une lettre grecque non minuscule\n" if "Λ" =~ /(?[\p{Greek} - \p{Lower}])/;

    On peut maintenant déclarer avec my des fonctions lexicales, locales à un block (très expérimental). À ne pas confondre avec des références.

    Les mots-clés next, last et redo peuvent prendre en argument une expression quelconque calculant un label.

    D’autres changements significatifs comme :

    • Les motifs étendus expérimentaux (?{}) et (??{}), qui permettent d’exécuter du code Perl dans une regexp, ont été améliorés (surtout des corrections de bogues et une sémantique plus claire) ;
    • Des fonctionnalités introduites dans la version 5.10 sont devenues expérimentales. En particulier ~~, given et when sont expérimentaux maintenant, car leur implémentation s’est révélée problématique.
    Optmisations

    Quelques optimisations, comme :

    • my ($x, $y) est optimisé comme une seule opération ;
    • les regexps utilisant des propriétés Unicode sont plus rapides.
    Sécurité

    La fonction de hachage utilisée pour les tables de hachage fait l’usage d'une graine aléatoire, pour éviter des attaques de complexité algorithmique.

    La version 5.20.0 Langage

    On peut activer la possibilité d’utiliser des signatures lors de la déclaration des fonctions. Les fonctions peuvent prendre maintenant un attribut prototype, afin de pouvoir utiliser les signatures et les prototypes en même temps. Par exemple, on pourra écrire :

    no warnings 'experimental::signatures'; use feature 'signatures'; sub ouah ($chien) { # faire quelque chose avec le $chien }

    Nouvelles syntaxes %hash{...} et %array[...] pour récupérer des listes paire/valeur ou index/valeur. Par exemple :

    my %fruits = (pommes => 3, bananes => 5, oranges => 4); my %sous_ensemble = %fruits{'pommes', 'bananes'}; # %sous_ensemble est maintenant (pommes => 3, bananes => 5) my @alphabet = "a" .. "z"; my @tableau = %alphabet[1,3,5]; # @tableau est maintenant (1, "a", 3, "c", 5, "e");

    Une nouvelle syntaxe de déréférencement postfixée fait aussi son apparition. Ainsi, par exemple, on pourra écrire :

    my $scalar = $scalar_ref->$*; # même chose que ${ $scalar_ref }, ou $$scalar_ref mais marche # pour une expression quelconque renvoyant une référence et peut # s’enchaîner facilement.

    et c’est analogue pour les tableaux, les tables de hachage, les fonctions et les globs.

    Optimisations

    Un nouveau mécanisme de copy-on-write (COW) permet d’éviter d'avoir à passer des chaînes de caractères par référence pour des raisons de performances. En particulier :

    my $copy = $str;

    n’induit plus de vraie copie de la chaîne $str. La copie sera effective seulement si $copy ou $str est modifiée.

    Plusieurs déclarations à la suite :

    my $x; my $y;

    sont maintenant optimisées en :

    my ($x, $y);

    Les return en dernière instruction d’une fonction sont optimisés, c'est-à-dire qu'il n'y a plus de différence de performance entre sub miaou {...; return $chat; } et sub miaou { ...; $chat; }.

    D’autres optimisations ont été faites, par exemple dans les regexps, la gestion de l’Unicode, mais aussi autour des tableaux et des tables de hachage.

    Documentation

    Des nouveautés dans la documentation :

    • Le tutoriel perlopentut, pour ouvrir des fichiers et autres, a été réécrit. Il est maintenant plus court et utilise un style plus moderne ;
    • Un nouveau tutoriel sur l’Unicode a vu le jour, le perlunicook, qui explique les recettes importantes à connaître sur l’Unicode en Perl (il n’était pas dans la 5.20.0 mais a été backporté dans la 5.20.2).
    La version 5.22.0 Langage

    Perl prend maintenant en charge Unicode 7.0.

    Un nouvel opérateur <<...>> apparaît, qui est comme <...>, mais agit comme un open à trois arguments pour les éléments de @ARGV, ce qui évite à un nom comme "|foo" d'être considéré comme une pipe et non comme un nom de fichier.

    On peut maintenant créer des alias en affectant à une référence :

    \$alias = \$ref; # un cas peut-être plus parlant : foreach \%hash (@array_of_hash_refs) { ... }

    Avec use re 'strict'; des règles plus strictes peuvent êtres appliquées à l’écriture des regexps, de sorte à détecter d’éventuelles erreurs.

    Un nouvel attribut const permet de forcer la compilation immédiate d’une fonction anonyme vers une constante, même si les variables qui apparaissent dans sa déclaration sont modifiées ensuite. Avant, un simple *CONST = sub () { $var } était parfois compilé immédiatement, mais parfois non, par exemple si une autre variable faisait référence au même $var. Cette forme donne maintenant un warning si $var et utilisé après.

    Un nouveau modifieur n permet de désactiver les captures dans une regexp, de sorte que (...) devienne un raccourci commode pour (?:...).

    Afin d’éviter les confusions entre les opérations bit-à-bit pour les nombres et les chaînes de caractères, avec use experimental "bitwise"; de nouveaux opérateurs bit à bit &. |. ^. ~., qui traitent leurs opérandes comme des chaînes de caractères (faisant une conversion si nécessaire), peuvent être utilisés. Les opérateurs & | ^ ~ traitent alors toujours leurs arguments comme des nombres.

    On peut maintenant utiliser l'opérateur de répétition x pour une affectation. Ainsi, (undef, undef, $var) = fun() peut s'écrire ((undef) x 2, $var) = fun().

    Optimisations

    Les accès aux tableaux et tables de hachage sont plus rapides, en particulier s’ils sont imbriqués ou utilisent des clés constantes ou de simples variables.

    Dans une affectation my @array = split, la fonction split écrit maintenant, la plupart du temps, directement sur @array. D'autres fonctions ont connu des optimisations variées.

    Modules

    Le projet continue à réduire le cœur et certains modules, dont CGI et Module::Build, ainsi que des utilitaires comme s2p et a2p, sont maintenant à installer depuis CPAN (l'annonce de leur retrait futur du cœur avait été fait pour la 5.20).

    Évolutions de l’écosystème

    Si le langage Perl en soi et sa partie centrale ont connu assez de nouveautés ces dernières années, le CPAN et l’écosystème Perl en général continuent à bouger aussi.

    Outre le connu CPAN Search pour chercher des modules de CPAN, il existe maintenant une plateforme alternative au look un peu plus "jeune", metacpan, dont les sources sont sous licence libre et disponibles.

    L’ensemble des modules du CPAN peut être installé avec le client en ligne de commande cpan. Depuis quelques années, une alternative plus légère et ne demandant aucune configuration existe : cpanm. Notons aussi l’apparition de perlbrew, un outil permettant de gérer son environnement Perl et, en particulier, de pouvoir passer rapidement d’une version de Perl à une autre et de tester ainsi le code avec plusieurs versions.

    Ces outils sont bien sûr surtout utiles pour le développeur : vu que beaucoup de modules CPAN existent sous forme de paquets dans la plupart des distributions, l’utilisateur n’en aura pas besoin a priori.

    Une autre nouveauté ces dernières années est l’amplification du code utilisant de nouveaux systèmes objets autre que celui inclus dans Perl. Le plus connu est Moose, qui fournit un système très riche, bien documenté et avec plein de fonctionnalités. Lorsque moins de fonctionnalités sont nécessaires, ou qu’un temps de démarrage plus rapide est important, on peut préférer utiliser par exemple Moo, mais c’est loin d’être la seule alternative. Et rien n’interdit non plus d'en revenir aux origines.

    On note aussi dans la communauté une volonté de mettre en avant les évolutions du langage, comme en témoignent des initiatives récentes, telle celle du livre Modern Perl, qui explique la philosophie de la communauté et comment profiter du CPAN, mais aussi la philosophie du langage (expressions idiomatiques, contexte…), et comment en tirer parti.

    Et Perl 6 ?

    De son côté, Perl 6 avance aussi, et Larry Wall, le père fondateur, a annoncé qu’une première release aurait probablement lieu pour ce Noël (voire cette interview par exemple), fondée sur son implémentation Rakudo et la machine virtuelle MoarVM.

    Il s’agira d’une première release, donc en particulier il faut s’attendre à ce que les performances ne soient pas au rendez-vous partout, le langage n’a pas vingt ans d’optimisations accumulées, et ça se sent encore, mais la situation s’est quand même nettement améliorée et certains aspects sont prometteurs. En particulier le JIT de MoarVM et le typage graduel permettent d’optimiser des choses qu’il n'est pas possible d’optimiser en Perl 5. De plus, la Fondation Perl a lancé une levée de fonds pour permettre au développeur principal de Rakudo de consacrer plus de temps à Perl 6 d’ici la première release.

    La documentation est un travail en cours, mais commence déjà à ressembler à quelque chose. On est loin d'avoir un vrai CPAN pour le moment, mais un certain nombre de modules ont déjà vu le jour, et la liste s'étend régulièrement.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Pages