Linux France

S'abonner à flux Linux France
Mis à jour : il y a 17 min 47 sec

Signing party au salon Solutions Linux le 20 mai 2014

Jeudi 17 Avril

En ces temps troublés, il est important de sécuriser nos échanges d'information — en chiffrant — ainsi que la distribution de logiciels — en signant les publications.

À cette fin, le salon Solutions Linux, Libres et Open Source sera l'occasion d'une signing party PGP, le 20 mai 2014 à 18h près du stand Debian France. Cette signing party est ouverte à tous les visiteurs et exposants du salon.

Pour faciliter les échanges d'empreintes de clefs en cas d'affluence, il est possible que nous utilisions une liste officielle de participants selon le protocole de Zimmermann-Sassaman. Pour préparer cela, il est demandé aux participants de [me contacter en m'envoyant][envoi-clef] leur clef publique. Selon la méthode de signing party retenue, je publierai ultérieurement des instructions plus précises.

Télécharger ce contenu au format Epub

Lire les commentaires

GNOME 3.12 : sans domicile

Jeudi 17 Avril

La fondation GNOME a publié sa nouvelle mouture. Au menu, autant de remaniements que de stabilisations. Le projet n’a jamais fait preuve d’autant de vitalité et pourtant a rarement été aussi inaccessible.

Totem et GEdit ont fait leur révolution. La recherche et le menu système du shell s’étoffent, la prise en charge de Wayland continue, GNOME 3 progresse significativement avec cette version, encore faut-il réussir à l’installer !

Sommaire

Note d’Étienne BERSAC : à cause de soucis de santé, cette dépêche arrive très tard. Merci à Thomas DEBESSE d’avoir rédigé sous ma dictée la majeure partie de la dépêche !

Nouveaux widgets pour nouvelle ergonomie

Un nouveau widget est disponible dans GTK+ : le menu « Popover » (ou fenêtre en surimpression). Il s’agit d’une boîte de dialogue avec le comportement d’un menu et la généricité d’une boîte de dialogue. Ce widget est issu du monde mobile.

Une des grandes forces des popovers, c’est d’être plus facile à utiliser que des composants de liste, d’être un conteneur permettant d’embarquer tout type de widget, de montrer à quel composant graphique le popover fait référence (puisqu'il pointe vers lui), de moins casser la concentration d’une boîte de dialogue… Il ne remplacera pas tout, mais une bonne partie des interactions pourrait se faire via des popovers dans le futur.

À l'avenir (GNOME 3.14, selon Allan Day), GTK+ pourra convertir automatiquement les boutons-menu de manière à utiliser les popovers.

Menu global allégé

Le menu global d’application (dit AppMenu ou GMenu), celui qui apparaît en haut à gauche sur le tableau de bord, juste à côté du bouton "Activités", a été allégé dans beaucoup d’applications. Suite à des retours nombreux et des débats interminables, le Guide d’interface homme-machine (HIG) GNOME 3 a tranché pour une normalisation du menu application. Désormais, il sera réduit au minimum : aide, à propos, quitter, nouvelle fenêtre, préférences, etc. Quelques applications avaient abusé de ce menu, notamment Empathy, montrant une ambiguïté sur le but de ce menu.

Les options de type « vue en liste / grille », « import / export », etc. seront contextualisées (elles seront affichées dans le menu de la fenêtre). Beaucoup d’applications du cœur de GNOME ont remanié leur menu d’application pour refléter ces changements de politique.

Boutons de barre d’en-tête

Depuis le début de GNOME 3, il y a une recherche d’économie de place en haut de fenêtre. Cela a commencé par la disparition de la barre de titre (et donc du bouton de fermeture de fenêtre) lorsque la fenêtre est maximisée. Puis, pour que le bouton de fermeture de fenêtre reste apparent, la barre d’en-tête (ou Header Bar pour les anglophones) a été introduite, fusionnant la barre d’outils et la barre de titre (via la technique des client-side decorations, ou CSD).

Mais elle manquait de possibilités de paramétrage et surtout ne résolvait pas un triple conflit d’intérêts : le développeur de l’application veut choisir l’agencement des boutons pour la cohérence de son application (ex : GEdit et son panneau latéral), le développeur de thème veut changer l’ordre et la position des boutons par défaut, enfin l’utilisateur veut personnaliser ce paramètre également. Matthias Clasen a remanié ce composant pour satisfaire tout le monde.

En bonus, la barre d'en-tête intègre le menu application s’il n’est pas déporté sur le tableau de bord ! Cela évite une barre de menu vide. Le logo de l’application est utilisé plutôt que son nom. L’utilisateur gagne de l’espace à tous les coups !

La barre d’en-tête a donné des idées. Désormais, les boîtes de dialogue peuvent fusionner leur barre d’actions en bas avec la barre d'en-tête. Les boutons Ouvrir, Sélectionner, etc. sont déplacés en haut. Outre le gain de place, cela évite d’avoir deux manières d’annuler une boîte de dialogue, sans vraiment savoir si l’une est différente de l’autre. Ce comportement se déclenche avec une option GTK.

Cette version 3.12 améliore aussi la gestion du glissé-déposé sur écrans tactiles grâce à la barre d’en-tête.

Des actions plus claires pour Fichiers (Nautilus)

GNOME 3.6 avait apporté différents raffinements à Fichiers dont la possibilité de copier ou déplacer des fichiers facilement via une entrée du menu contextuel. L’action « Copy to… » avait été traduite par « Envoyer vers… » ce qui n’était pas très heureux et était source de confusion. Dorénavant Fichiers proposera le plus correct « Copier vers… ».

Client IRC dans les cartons

GNOME prépare un nouveau client IRC : Polari, encore à un stade expérimental.

Polari est une nouvelle application Gnome 3 concurrente d’Xchat. Cette version 3.12 apporte les fonctionnalités de base qu’on attend d’un client IRC de bureau : rejoindre un salon, ouvrir un chat privé, basculer d’un salon à l’autre avec un raccourci clavier, gestion des commandes et intégration expérimentale de pastebin. Cette application est intéressante parce que c’est typiquement une application développée par et pour les développeurs car IRC est le moyen principal de communication dans la communauté GNOME.

Intégration de Pocket et Google Print

Gnome Online Accounts étend la liste des services web pris en charge avec Pocket. Pocket permet de sauvegarder des articles pour consultation différée. On attend avec impatience la gestion de l’alternative libre Wallabag dont a souvent parlé dans ces colonnes ; selon Bastien Nocera, qui est à l’origine de la prise en charge de Pocket, ajouter des services similaires devrait s’en trouver facilité.

Plus originale, l’arrivée de l’intégration du service Google Print. Google Print permet de partager son imprimante via son compte Google. En fait, cela permet surtout d’imprimer depuis un téléphone ou une tablette avec une imprimante connectée à son ordinateur. En bonus, GNOME permet d’imprimer dans un fichier directement sur le Google Drive.

GNOME Photos, quant à lui, permet de partager ses photos sur Facebook à coté de Flickr et Picasa.

Vidéo et GEdit passent à l’ergonomie GNOME 3

C’est toute une flopée d’applications qui se met à la page de GNOME 3 pour cette version ; les deux mutations les plus spectaculaires étant les vénérables Totem et GEdit, qui adoptent enfin le look que la Design Team avait imaginé pour eux depuis déjà quelques temps.

GNOME Vidéos a intégré la branche principale de Totem. GNOME Vidéos est un énorme remaniement. Au menu, une page d’accueil avec les aperçus des vidéos récentes. Le mode lecture reçoit de nouveaux contrôles en surimpression, très pratiques en visualisation plein-écran. L’usage évolue vers une consommation de services en ligne (Youtube, Vimeo, et Pocket précédemment cité, FreeboxTV via un plugin) avec recherche et navigation par catégories dans les vidéos du site. Pour plus d’information, voir la page du développeur Bastien Nocera.

GEdit a fait sa mutation… et garde son nom ! Tadaaa ! Aucune fonctionnalité n’a été perdue… La nouvelle interface rappelle les efforts d’éditeurs minimalistes comme scribes. Parmi les petites nouveautés, le très populaire thème Solarized est désormais fourni par défaut.

Web (Epiphany) passe au multi-processus

Sous le capot, GNOME Web (anciennement Epiphany) continue d’intégrer les technologies Webkit avec l’isolation des onglets dans des processus séparés. Un onglet qui plante ne gèle ni l’application ni les autres onglets, et Epiphany a été expurgé de toute dépendance à Webkit 1 : la transition vers Webkit 2 est terminée. Le fournisseur de recherche web pour GNOME Shell est devenu un binaire indépendant ce qui évite au navigateur de rester actif pour permettre ce service alors même que toutes ses fenêtres sont fermées.

Côté interface, la barre de titre et d’adresse, la barre des onglets, et le style incognito ont été affinés. Après le changement de moteur de recherche par défaut en faveur de DuckDuckGo, une nouvelle option pour choisir son moteur de recherche a été ajoutée.

GNOME Logiciels

GNOME Logiciels inclut un fournisseur de recherche pour GNOME Shell : lorsqu’on cherche une application non installée, elle apparaît dans une section et cliquer sur l’icône affiche la page de présentation de l’application.

Autres nouveautés : GNOME Logiciels intègre un système de notation basique des applications et permet d’afficher de multiples captures d’écran. Il permet désormais de créer des dossiers d’applications personnalisés dans GNOME Shell (en attendant qu’un système de création par glissé-déposé d'un lanceur sur un autre, à la iOS, soit directement intégré dans le Shell).

L’extension du support pour la distribution Ubuntu devrait arriver pour Gnome 3.14.

Encore des changements dans le lancement d’applications

Trois nouveautés autour du lancement d’applications : l’ouverture d’une nouvelle fenêtre et les jumplists. Désormais un clic milieu sur un lanceur d’applications ouvre une nouvelle fenêtre. Le cas à l’origine de cette modification est le terminal car on n'utilise le lanceur quasiment que pour ouvrir une nouvelle fenêtre.

Les dossiers d’applications sont éditables via GNOME Logiciels ou gsettings.

Fonctionnalité annoncée depuis longtemps et déjà présente dans Unity, la jumplist est un ensemble d’actions différentes appartenant à la même application et disponible directement via le lanceur (exemple : pour lancer Firefox en mode navigation privée ou ouvrir une nouvelle fenêtre). Il n’a pas d’outil graphique de paramétrage pour le moment, il faut donc éditer le fichier .desktop correspondant.

Démarrage du Shell optimisé

Pour optimiser le démarrage du shell, les fichiers en JavaScript ont été compilés en un seul fichier. C’est une fonctionnalité de Gjs qui permet d’embarquer tous les fichiers en JavaScript dans des GRessources. Ainsi, le binaire appelle l’interpréteur JavaScript directement sur ses ressources. GNOME Shell est désormais un binaire lié avec Mutter plutôt qu’un plugin de celui-ci.

Mathias Clasen a préservé la possibilité de hacker GNOME Shell directement en extrayant les fichiers depuis les GRessources pour pouvoir éditer le JavaSCript embarqué dans le binaire. GNOME Shell utilise alors le script modifié externe plutôt que celui embarqué, sans recompiler. Un simple [Alt+F2 r] (recharger GNOME Shell) permet de tester son code.

Nouveaux indicateurs dans le menu système

De nouveaux indicateurs ont été introduits dans le menu système (en haut à droite de l'écran) : l’activité du service de géolocalisation, l’état de la connexion du réseau filaire et aussi le mode avion. Le retour de l’indicateur de réseau filaire a été acquis de haute lutte par les utilisateurs face aux réticences d’Allan Day.

Le mode classique retrouve les boutons de fenêtre « minimiser » et « agrandir », même pour les applications avec barre d’en-tête.

Nouveaux domaines de recherche

La recherche dans GNOME Shell s'étend désormais aux photos, logiciels, et aux commandes en cours dans le Terminal (top, ssh…).

Intégration Bluetooth semi-automatique

L’interface de configuration des équipements Bluetooth a été simplifiée par Bastien Nocera. L’interface a été réduite à une liste des appareils connectés, cette liste est mise à jour en temps réel avec les périphériques proches, il n’a donc plus d’assistant de recherche de périphériques.

Toujours à propos du Bluetooth, GNOME Contacts affiche désormais le carnet d’adresse des périphériques Bluetooth compatibles.

Plateforme

Après CSS et JavaScript, une nouvelle techno issue du web arrive dans GNOME : l’inspecteur. Parasite expose l’arborescence des widgets GTK, les règles CSS qui s’appliquent aux widgets et permet même de les éditer à la volée. "Si vous avez déjà utilisé Firebug, c'est un peu la même chose, mais pour les applis GTK+", explique le site officiel de Parasite.

Un nouveau widget permet de présenter des actions contextuelles dans le même style que la barre d’en-tête. Il s’agit de GtkActionBar, un conteneur de boutons qui permet de ne pas détourner la barre d’en-tête dans la fenêtre.

Geoclue 2.1.1 apporte la géolocalisation par le modem et par le WiFi. Une API permet de savoir si le service est en utilisation, ce qui permet à GNOME Shell d’indiquer l’utilisation du service.

Session Wayland en démonstration

Wayland est toujours en aperçu technologique. Ce qui fonctionne dans cette version :

  • Lancer GNOME avec Wayland depuis GDM ;
  • Les raccourcis claviers ;
  • Les applications Clutter.

En revanche, ne fonctionnent toujours pas : la configuration du clavier, les tablettes Wacom, le glisser-déposer, et les notifications au démarrage de session. Il reste au moins un an de travail, en étant optimiste.

Une version difficile à trouver

Comme l’a fait remarquer The Register dans son test de Gnome 3.12, jamais GNOME n’a été aussi difficile d’accès. Par un concours de circonstance, même Fedora devrait repousser l’inclusion du nouveau GNOME.

Fedora attendra peut-être GNOME 3.14

Comme à l’accoutumée les utilisateurs de Fedora pourront bénéficier rapidement de cette version 3.12 et ce, via le dépôt « f20-gnome-3-12 » maintenu par Richard Hughes. Un débat sur l’inclusion ou non de GNOME 3.12 dans les dépôts officiels est toujours en cours.

Fedora 21 devrait quant à elle intégrer la version 3.14 du bureau GNOME.

Debian basera sa prochaine stable sur 3.12

Utilisateurs aficionados de Debian, sachez qu’il existe la distribution Parsix GNU/Linux, basée sur Debian Wheezy, elle permet de profiter de la stabilité de cette dernière tout en proposant des versions récentes du bureau GNOME. La version 3.12 devrait donc arriver dans ses dépôts dans les prochains mois.

Par ailleurs, cette version de GNOME devrait être celle qui prendra place dans Debian Jessie, la prochaine version stable de Debian.

Ubuntu GNOME toujours en retard et incomplet

Ubuntu GNOME 14.04 embarquera GNOME 3.10, comme pour les utilisateurs de Fedora, il faudra donc passer par un dépôt alternatif pour profiter de la dernière version.

Gentoo, Sabayon et Arch

Du côté des « rolling releases », la version 3.10 a été stabilisée dans les dépôts officiels des trois distributions. Arch et Sabayon ne devraient pas déroger à la règle et proposer rapidement la version 3.12. Pour les utilisateurs de Gentoo, il faut en général attendre la troisième version corrective (GNOME 3.12.3) avant qu’elle soit stabilisée dans portage.

Autour de GNOME : Geary, California, Firefox, LibreOffice et Pitivi

On attend depuis plusieurs versions que GNOME se dote d’une suite PIM dans sa nouvelle ergonomie. Contacts est un peu seul !

Evolution, le client mail officiel, passe à un cycle annuel. Une manière de le mettre en pause ou de s’attaquer à des changements profonds ? Geary peut en tout cas représenter une alternative à suivre.

Geary, le client mail de la fondation Yorba s’est rapproché de GNOME, partageant à présent infrastructure et feuille de route. Pour la version 0.5, Geary a un menu d’application sur le tableau de bord. La branche gtk-3.10 intègre la barre d’en-tête. Progressivement, Geary devient une application GNOME native.

Yorba récidive avec California, prototype d’une application calendrier au dessus d’evolution-data-server. Comme le précise Jim Nelson sur son blog, California n’a pas pour vocation de remplacer le Calendrier officiel de GNOME, bien que le développement de ce dernier semble stagner depuis plusieurs mois.

Par ailleurs, deux projets à succès extérieurs à GNOME ont reçu, au cours de ce cycle de développement, une mise à jour offrant une meilleure adaptation à notre environnement préféré :

  • Firefox, dont l’interaction avec Fichiers a été améliorée : sous GNOME, lorsque vous téléchargiez un fichier avec Firefox et lui demandiez d’ouvrir le dossier contenant le fichier, il fallait alors chercher ledit fichier dans tout le répertoire car Firefox se contentait d’afficher le répertoire de téléchargement dans une fenêtre Nautilus. À partir de Firefox 28, vous constaterez que – ô joie et bonheur – dorénavant le fichier téléchargé est pré-sélectionné et mis en surbrillance dans Fichiers.
  • LibreOffice, qui, à partir de la version 4.2, se voit doté d’un menu global.

Notons enfin que, pour les distributions qui ne bénéficieraient pas des dernières versions du logiciel de montage vidéo Pitivi (1.0 bêta, alias 0.93, à ce jour), ses développeurs proposent depuis peu un exécutable autonome, comprenant toutes les dépendances, généré et mis en ligne quotidiennement, intégrant les derniers développements (et il est encore temps de participer à la campagne de financement).

Avenir

Une nouvelle étape de conception de Nautilus est sur les rails intégrant l’aperçu, le mode de sélection tactile, une barre latérale allégée, et une présentation des fichiers en grille façon GNOME Documents.

Un remplaçant d’ Empathy a été ébauché, les discussions vont bon train pour savoir si Empathy va être migré comme Totem vers le design GNOME 3 ou si le nouveau projet GNOME Chat va remplacer Empathy in fine.

Les ténors de la communauté GNOME se sont réunis en Californie pour discuter de sujets récurrents : Isolation d’application (sandboxing), logind et systemd pour la session utilisateur, Wayland, vulgarisation du développement GNOME, etc. À noter quand même, l’éventuelle intégration de Parasite dans Glade.

Prochain rendez-vous, du 26 juillet au premier août 2014 à Strasbourg pour le Guadec !

Télécharger ce contenu au format Epub

Lire les commentaires

Shinken version 2.0

Mercredi 16 Avril

Le projet de logiciel libre de supervision Shinken vient d'annoncer sa nouvelle version majeure, la 2.0. Elle apporte principalement une orientation du projet vers le cœur de supervision, la mise en place de HTTPS entre les démons et une forte améliorations des règles métiers. Le projet gagne au passage un nouveau logo.

Un recentrage comme framework de supervision

Le changement important de cette version est un découpage bien plus clair qu'avant entre ce qui concerne le cœur du projet, le framework de supervision avec ses démons, et les divers modules et packs de supervision. L'objectif est de donner aux utilisateurs les connaissances et les choix pour bâtir leur propre solution de supervision.

Ils sont aidés dans cette tâche par un nouveau site d'échange de packs et de modules, shinken.io et la nouvelle commande cli shinken permettant d'aller récupérer et installer automatiquement les packages :

$ shinken install linux-ssh Installation via pip

La partie installation a également fortement évolué. Précédemment basée sur un script d'installation, elle suit désormais les standards du monde python avec un package disponible sur Pypi. L'installation du framework devient donc tout simplement :

$ pip install shinken

Cette nouvelle méthode est bien plus adaptée pour les packageurs et des paquets pour les distributions principales sont en cours de finalisation.

Il est à noter que les mises à jour futures de Shinken se feront simplement en relançant cette même commande :)

Amélioration des règles métiers

Grâce au (gros) travail du contributeur Christophe Simon, les règles métiers (aka bp_rules) ont fortement évolué dans cette version. Il est désormais possible de créer un indicateur agrégé pour un ensemble d'éléments en se basant sur des expressions régulières, ou des groupes dans lesquels ils se situent.

Par exemple, pour créer un indicateur unique qui agrège les états de tous les disques de ses serveurs Linux, il suffit de déclarer :

check_command bp_rule!g:linux,Disks Un passage au HTTPS entre les daemons

Dernier changement et non des moindres : les daemons communiquent désormais en HTTP(S). Ceci permet de mettre en place facilement un chiffrement efficace (modulo les failles dans OpenSSL évidemment) de manière simple par rapport aux versions précédentes qui utilisaient la librairie python Pyro peu compatible avec le SSL.

Il est désormais possible d’interroger directement et facilement les daemons shinken (et leurs indicateurs internes). Par exemple pour vérifier qu'un daemon est en vie il suffit de lancer :

$ curl http://localhost:7770/ping "pong"

Ou par exemple pour dumper tous les hôtes chargés par shinken :

$ curl "http://localhost:7770/get_objects_properties?table=hosts" | json_pp

Une liste complète des appels api sont disponibles via :

$ curl http://localhost:7770/api_full | json_pp

Les prochaines versions amélioreront fortement cette API, et les modules pourront également proposer leurs propres appels spécifiques.

Feuille de route et cycle de versions

Cette version a eu une gestation bien longue, notamment expliquée par le fait que le développeur principal de shinken a lancé sa société d'édition pendant cette période et que les objectifs de refactoring du framework étaient assez élevés (tout en assurant une compatibilité ascendante).

Avec désormais un cycle de version propre au framework, dé-corrélé de celui des modules qui peuvent être plus long (par exemple celui de l'interface graphique WebUI), et un objectif d'avoir moins de nouvelles features par release, le cycle de sortie devrait fortement réduire :)

Concernant les améliorations des futures versions, on notera tout particulièrement :

  • un backport de certaines vues de la version Enterprise de shinken dans la version communautaire ;
  • l'ajout d'une fonctionnalité tout particulièrement chère au cœur de l'auteur de shinken : les arbiters relays, permettant de laisser la gestion complète d'un royaume (aka datacenter) à un daemon sur place ;
  • l'ajout très prochainement des commandes de snapshots permettant d'avoir une « vue » de l'état d'une machine (ex : par le lancement d'un ps) lors d'un souci de charge la nuit par exemple ;
  • accès à toutes les informations internes des daemons depuis l'API HTTP.
Mise à jour et cours

Concernant la documentation elle est désormais disponible en ligne mais est également embarquée avec l'installation de shinken et disponible sur le port 8080 en lançant :

$ shinken doc-serve

Des cours en vidéos sont disponibles concernant la mise en place de cette nouvelle version et la mise à jour depuis la version 1.4 sur le blog du projet.

Télécharger ce contenu au format Epub

Lire les commentaires

Atelier d'initiation à Vim à Rennes le 22 avril

Mercredi 16 Avril

L'association Actux organise deux événements autour de Vim. [Vim] est un éditeur de texte libre, très puissant mais assez difficile d'accès aux débutants.

Le premier événement est un atelier d'initiation à Vim. Il aura lieu le mardi 22 avril, de 19h à 21h, au 4Bis à Rennes. Pour cet atelier, aucun pré-requis n'est nécessaire, il suffit simplement de venir avec son ordinateur portable.

Le second événement est une soirée d'échanges sur Vim. Cette soirée est destinée aux personnes ayant un peu ou beaucoup d'expérience avec Vim. Ce sera l'occasion d'échanger ses trucs et astuces, de présenter son plugin préféré ou de montrer comment son vimrc est mieux que celui du voisin. Cette soirée est prévue pour le mardi 20 mai, de 19h à 21h au 4Bis.

L'entrée est libre, gratuite et ouverte à tout le monde. Il n'est pas nécessaire d'être adhérent de l'association pour venir.

Télécharger ce contenu au format Epub

Lire les commentaires

Vosges Opération Libre, le 17 et 18 mai à Gérardmer

Mercredi 16 Avril

À l'initiative de Framasoft, se déroulera, le samedi 17 mai et le dimanche 18 mai à Gérardmer, un événement inédit dans la région Grand Est : Vosges Opération Libre.

Cette manifestation vise à promouvoir la culture libre et l’ouverture des données.

Il s’agit de la seconde « Opération Libre » se déroulant sur le territoire français. La première ayant eu lieu à Brocas (Aquitaine) en 2013.

Les Opérations Libres ont pour objectif de rassembler, le temps d’un week-end, des acteurs du Libre en vue d’initier la démarche open data dans les petites villes et villages en présentant les outils disponibles, notamment des logiciels libres. Elles invitent les habitants à participer à l’ouverture et à la diffusion des données de leur territoire. Elles proposent aussi d’engager les citoyens dans un rapport différent avec leur territoire en montrant que le partage des connaissances leur permet d’être collectivement valorisées.

Une vingtaine de partenaires et associations sont impliqués dans l'opération tels que le GOALL (Groupe d'Organismes Acteurs du Libre en Lorraine), Lorraine Data Network, Wikimédia France, Libertic, Open Knowledge Foundation France, April, Veni Vidi Libri, OpenStreetMap France, Tela Botanica, etc.

Au programme : 8 ateliers, 9 conférences (dont 1 conférence-débat le samedi soir avec Benjamin Jean et Benjamin Sonntag), 17 stands et une projection permanente de films libres.

Télécharger ce contenu au format Epub

Lire les commentaires

Conférences autour du Libre à Metz

Mercredi 16 Avril

Le Graoulug - Groupe d'utilisateurs de GNU/Linux et de logiciels libres à Metz et ses environs - présente une journée de conférences autour du Libre le samedi 24 mai 2014.

Voici le programme:

  • 09:30-10:30 : Leed: immersion dans un développement coopératif par Christophe HENRY, contributeur Leed.
  • 10:30-12:30 : 15 ans de direction d’entreprise dans le logiciel libre – anecdotes et réflexions par Arnaud LAPRÉVOTE, ex Directeur Général Mandriva.

  • 13:30-15:00 : Présentation FirefoxOS par Alexandre LISSY, FirefoxOS Software Engineer, Mozilla corp.

  • 15:00-16:15 : Le projet Debian par Lucas NUSSBAUM, Debian Project Leader.

  • 16:15-17:30 : Libérer Internet : Sexe, alcool et vie privée par Julien VAUBOURG et Sébastien JEAN, association LDN (Lorraine Data Network).

L’accès est libre et gratuit, sous réserve de places disponibles.

Télécharger ce contenu au format Epub

Lire les commentaires

Soirée avec S. Brocca, "l'Utopie du Logiciel Libre" au Lay t'Motiv à Lay (42) le 17 avril 2014

Mardi 15 Avril

Ce jeudi 17 avril 2014 à 18h30 le bar associatif Lay t’motiv’ accueillera en partenariat avec Chantier Libre le sociologue Sébastien Broca pour son livre « Utopie du logiciel libre, du bricolage informatique à la réinvention sociale ».

Cet événement sera couvert par RVR RADIO pour son émission « à ciel ouvert »

Ce n'est peut-être pas la peine de présenter Sebastien Brocca et son livre ici, mais un copier-coller n'étant pas très long à faire, vous trouverez ci-après une présentation de son livre (NdM: et dans la dépêche précédente sur le sujet). Pour ce qui sera plus spécifique à cette soirée, outre votre présence éventuelle et souhaitée :

  • Lay t'Motiv est un bar associatif, ce sera donc une soirée conviviale avec des boissons de producteurs locaux,
  • la soirée est organisée avec Chantier Libre, fablab et GUL embryonnaire du Roannais, nous espérons donc être nombreux à parler de logiciel libre ce soir là.

Lay se trouve à une petite heure de Lyon et 20 minutes de Roanne

Né dans les années 1980 de la révolte de hackers contre la privatisation du code informatique, le mouvement du logiciel libre ne semblait pas destiné à renouveler nos imaginaires politiques. Les valeurs et les pratiques du Libre ont pourtant gagné d’autres domaines, dessinant peu à peu une véritable « utopie concrète ». Celle-ci a fait sienne plusieurs exigences : bricoler nos technologies au lieu d’en être les consommateurs sidérés, défendre la circulation de l’information contre l’extension des droits de propriété intellectuelle, lier travail et réalisation de soi en minimisant les hiérarchies. De GNU/Linux à Wikipédia, de la licence GPL aux Creative Commons, des ordinateurs aux imprimantes 3D, ces aspirations se sont concrétisées dans des objets techniques, des outils juridiques et des formes originales de collaboration qui nourrissent aujourd’hui une sphère des communs propre à encourager l’inventivité collective. On peut être tenté de voir là un projet de substitution au modèle néolibéral. Pourtant, dans sa relation à l’économie d’Internet, ses enthousiasmes technophiles ou ses ambiguïtés politiques, le Libre soulève aussi nombre de questions. Sébastien Broca fait ressortir celles-ci, en racontant une histoire dans laquelle les hackers inspirent la pensée critique (d’André Gorz aux animateurs de la revue Multitudes) et les entrepreneurs open source côtoient les défenseurs des biens communs. À travers ce bouillonnement de pratiques, de luttes et de théories, l’esprit du Libre émerge néanmoins comme un déjà là où s’ébauchent les contours d’une réinvention sociale.

Sébastien Broca est sociologue au Centre d’études des techniques, des connaissances et des pratiques (Cetcopra) de la Sorbonne. Ses travaux portent sur les projets de transformation sociale en lien avec les mouvements du numérique. Il est membre des réseaux de recherche Anthropological Materialism et Numer-Univ.

Télécharger ce contenu au format Epub

Lire les commentaires

Coder efficacement, bonnes pratiques et erreurs à éviter

Lundi 14 Avril

Développer une application peut rapidement devenir un enfer si vous n'avez pas anticipé certaines difficultés et fait les bons choix au moment de sa conception. Ce livre vous aidera à vous poser les bonnes questions et à tirer le meilleur parti de la programmation objet, en particulier en C++, sans tomber dans les pièges les plus fréquents. Il clarifie certains concepts délicats et passe en revue un ensemble de bonnes pratiques, qui rendront vos projets plus évolutifs et plus faciles à maintenir.

Organisé en quatre parties, ce livre traite successivement des principes de base, des fondements de la programmation orientée objet et des spécificités du C++ pour finir sur une étude de cas complète (création d'un jeu d'échecs en 3000 lignes) qui montre comment les mettre en œuvre dans la pratique.

L'auteur insiste sur la nécessité d'anticiper les évolutions sans tomber dans l'écueil de l'over-engineering, il met en relief des erreurs courantes comme le fait de tester, d'une manière ou d'une autre, le type dynamique (réel) d'un des objets qu'on ne connaît que sous la forme de leur type de base pour décider de l'utilisation qu'on en fera. Il fournit ensuite un exemple illustrant le risque encouru. Plus spécifiquement sur le C++, il invite à renoncer définitivement à certaines habitudes du C totalement injustifiées en C++, il clarifie l'emploi des pointeurs et des références, il encourage à recourir à la constance, il montre comment tirer parti de la forme canonique de Coplien (constructeur par défaut, constructeur par copie, operateur d'affectation et destructeur virtuel ou non), etc. L'étude de cas vise avant tout à illustrer plus concrètement comment mettre en pratique, avec pragmatisme, ses recommandations.

Ce livre n'est pas un manuel d'apprentissage du C++. Un autre ouvrage du même auteur dédié au C++14 est en cours de rédaction.

Tous les exemples sont en C++11. En présentation, la situation où l'on souhaite une valeur numérique constante. Il y a plusieurs manières de les déclarer.

  • À l'aide du préprocesseur. Mais il n'y a aucun contrôle sur le type de données.
#define FIRST 1 #define SECOND 2 #define LAST 0xFF
  • À l'aide de constantes statiques. Cette méthode corrige le problème du type de données. Néanmoins, le fait d'énumérer correctement tous les cas dans un test reste le problème du programmeur.
static const unsigned int first = 1; static const unsigned int second = 2; static const unsigned int last = 0xFF;
  • Le cas d'une énumération, en bonne et due forme, règle pas mal de ces problèmes.
enum MyEnum{ first = 1; second = 2; last = 0xFF }

Il s'en suit alors quelques pages présentant les nouveautés et les bons usages du C++11 sur les énumérations.

L'auteur Philippe Dunski est expert en C++/Qt/boost et il intervient régulièrement sur developpez.com pour aider les autres membres. Il écrit de manière très personnelle et vivante, ce qui rend la lecture du livre très agréable, même sur les aspects les plus pointus.

Télécharger ce contenu au format Epub

Lire les commentaires

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

Lundi 14 Avril

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

[ZDNet] Faille HeartBleed, une chance qu'OpenSSL soit un logiciel libre

Par Christophe Auffray, le vendredi 11 avril 2014. Extrait:

Pour l’April, l’affaire HeartBleed ne doit pas déboucher sur une critique acerbe et une remise en cause du libre. Le fait que le code soit ouvert à la vigilance de tous reste une force. Vraiment? Mais à condition que cette vigilance s’exerce réellement et que des moyens soient attribués.

Lien vers l'article original: http://www.zdnet.fr/actualites/faille-heartbleed-une-chance-qu-openssl-soit-un-logiciel-libre-39799835.htm

Et aussi:

Voir aussi:

[Les Echos] La révolution collaborative

Par Benoit Georges, le vendredi 11 avril 2014. Extrait:

Après avoir prédit la fin du travail et la troisième révolution industrielle, le prospectiviste Jeremy Rifkin annonce rien de moins que le déclin du capitalisme, éclipsé par l'Internet des objets et l'économie solidaire.

Lien vers l'article original: http://www.lesechos.fr/opinions/livres/0203435017481-la-revolution-collaborative-663926.php?xtor=RSS-2230

[lesoir.be] Fin de XP: et si on boostait les licences libres?

Par Patrice Leprince, le jeudi 10 avril 2014. Extrait:

Alors que Windows XP tire sa révérence, le député écolo Alain Maron prône l’usage des systèmes d’exploitation et des logiciels libres. A Munich, les solutions open source ont permis d’économiser 10 millions d’euros.

Lien vers l'article original: http://www.lesoir.be/517551/article/actualite/regions/2014-04-10/fin-xp-et-si-on-boostait-licences-libres

Et aussi:

[Big Browser] Les codes de la NASA rendus accessibles

Par la rédaction, le jeudi 10 avril 2014. Extrait:

Aujourd'hui, la NASA rend public un catalogue des codes qui se cachent derrière plus de 1 000 projets développés depuis les années 1960 par l'agence spatiale américaine. Le magazine américain Wired rapporte qu'à partir de jeudi 10 avril les internautes pourront par exemple se procurer les lignes de code du système de guidage du module lunaire Apollo 11, qui ont permis à Buzz Aldrin et Neil Armstrong de marcher sur la Lune le 21 juillet 1969.

Lien vers l'article original: http://bigbrowser.blog.lemonde.fr/2014/04/10/open-source-les-codes-de-la-nasa-rendus-accessibles

[PC INpact] Une députée confronte le libre au contrat open bar entre Microsoft et l'Armée

Par Marc Rees, le mardi 8 avril 2014. Extrait:

Encore et toujours, le contrat open bar liant le ministère de la Défense à Microsoft interroge les députés. Dernier en date, Marie-Françoise Bechtel qui vient de questionner le nouveau ministre sur le renouvellement de cet accord-cadre.

Lien vers l'article original: http://www.pcinpact.com/news/86924-une-deputee-confronte-libre-au-contrat-open-bar-entre-microsoft-et-armee.htm

[Le Point] Steve Jobs voulait vous "enfermer" chez Apple

Par Guerric Poncet, le mardi 8 avril 2014. Extrait:

Dans un courriel envoyé en 2010, le patron d'Apple détaillait la stratégie du groupe. Fascinant… et inquiétant.

Lien vers l'article original: http://www.lepoint.fr/chroniqueurs-du-point/guerric-poncet/steve-jobs-voulait-vous-enfermer-chez-apple-08-04-2014-1811036_506.php

[Developpez.com] Adoption de l'open source: les entreprises plus attirées par la qualité et la sécurité

Par Hinault Romaric, le mardi 8 avril 2014. Extrait:

L’open source occupe désormais une place non négligeable au sein de l’écosystème de l’IT. L’évolution de l’open source a créé une mutation de la vision de cet environnement par les entreprises.

Lien vers l'article original: http://www.developpez.com/actu/69861/Adoption-de-l-open-source-les-entreprises-plus-attirees-par-la-qualite-et-la-securite-que-par-la-gratuite-selon-un-recent-sondage

[Slate.fr] Moi ministre du numérique, par Benjamin Bayart: reprendre tout dans le bon sens

Par Benjamin Bayart, le mardi 8 avril 2014. Extrait:

Quel serait mon programme si on me demandait de devenir ministre du Numérique? Le premier point qu'il faut comprendre, c'est que ça ne serait possible que dans un contexte bien particulier.

Lien vers l'article original: http://www.slate.fr/tribune/85725/benjamin-bayart-moi-ministre-du-numerique-tribune

Et aussi:

[OpenSource.com] Logiciels et matériels libres font le bonheur de l'éducation

Par Jonathan Muckell (traduction framablog), le mardi 1 avril 2014. Extrait:

Le cours de Physical computing associe l’utilisation du matériel et du logiciel pour détecter et contrôler les interactions entre les utilisateurs et l’environnement. Elle peut repérer et répondre à des actions, par exemple en détectant la localisation des véhicules à une intersection et en ajustant le réglage des feux. Le domaine de l’informatique physique est relativement vaste, englobant des spécialités telles que la robotique, les microcontrôleurs, l’impression 3D et les vêtements intelligents.

Lien vers l'article original: http://www.framablog.org/index.php/post/2014/04/01/logiciel-materiel-libre-education

Télécharger ce contenu au format Epub

Lire les commentaires

Meilleurs contributeurs LinuxFr.org : les gagnants de mars 2014

Lundi 14 Avril

On continue sur notre lancée de récompenser ceux qui chaque mois contribuent positivement au site LinuxFr.org (dépêches, commentaires, logo, journaux, patchs, etc.). Vous n'êtes pas sans risquer de gagner un abonnement à GNU/Linux Magazine France ou encore un livre des éditions Eyrolles ou ENI. Voici les gagnants du mois de mars 2014 :

Abonnement d'un an à Linux Magazine France

Livres des éditions Eyrolles et ENI

Les livres qu'ils ont sélectionnés sont en seconde partie de la dépêche.

Certains gagnants n'ont pas pu être joints ou n'ont pas répondu. N'oubliez pas de mettre une adresse de courriel valable dans votre compte ou lors de la proposition d'une dépêche. En effet, c'est notre seul moyen de vous contacter, que ce soit pour les lots ou des questions sur votre dépêche lors de sa modération.

Tous nos remerciements aux contributeurs du site ainsi qu'à GNU/Linux Magazine France, aux éditions Eyrolles et ENI.

N'oubliez pas de contribuer, LinuxFr.org vit pour vous et par vous !

Les livres sélectionnés par les gagnants :

                        Télécharger ce contenu au format Epub

Lire les commentaires

Cerberus 0.9.1 est disponible

Lundi 14 Avril

Après 6 mois de développement intensif depuis la version 0.9.0, une nouvelle version 0.9.1 de Cerberus vient d'être publiée. Cerberus (sous licence GPLv3) est un outil de test pour les applications web, les applications back office et les tests d'infocentres et outils décisionnels. En mode web lié à une base de données, il permet de centraliser la totalité des tests utilisateurs de n'importe quel type d'application.

Grâce à Selenium (autre framework de tests informatiques), Cerberus permet aussi de lancer en mode automatique (par une API REST) les tests d'application web en batch dans le cadre, par exemple, d'un processus d’intégration continue.

Au delà d'un script Selenium, Cerberus rend l’édition des actions utilisateur facile et lisible à travers une interface web. Les utilisateurs peuvent donc spécifier leur exigence dans chaque test et sur le même écran, les actions selenium peuvent être définies pour rendre l’exécution automatisée.

Bon test à tous…

Cette version ajoute de nombreuses améliorations comme :

  • De nombreux nouveau écrans
  • Une gestion des droits utilisateurs plus fine
  • La gestion des exécutions manuelles
  • Des nouvelles actions et fonctions de contrôle
  • Une documentation en ligne plus précise
Télécharger ce contenu au format Epub

Lire les commentaires

Sortie du Glorious Haskell Compiler 7.8

Dimanche 13 Avril

Ghc, le Glorious Haskell Compiler est sorti le 9 avril 2014 en version 7.8.1. Il s'agit du compilateur le plus populaire pour le langage Haskell. Haskell est un langage de programmation purement fonctionnel, avec un système de types sophistiqué. C'est le principal langage généraliste à utiliser une stratégie d'évaluation non-stricte par défaut : la valeur d'une expression n'est calculée que si elle est nécessaire.

Sommaire Haskell en trois mots

Haskell est un langage de programmation purement fonctionnel, avec un typage statique fort, et une stratégie d'évaluation non stricte.

Le Glasgow Haskell Compiler est le principal compilateur Haskell, bien qu'il en existe d'autres.

Quelques exemples

L'inévitable hello world :

main = putStrLn "Saluton Ĉirkaŭaĵojn!"

Suite de Fibonnacci :

fibs :: Int -> Int fibs 0 = 0 fibs 1 = 1 fibs n = fibs (n-1) + fibs (n-2) -- Sous forme de liste infinie fibs':: [Int] fibs' = 0:1:(zipWith (+) fibs' (tail fibs')) Un langage fonctionnel pur

La spécificité la plus marquante de Haskell, c'est qu'il s'agit d'un langage fonctionnel pur : une fonction appelée avec les mêmes arguments renverra toujours le même résultat, contrairement à une fonction comme input(message) en python.

Cela rend possible la transparence référentielle : une expression peut être remplacée par son résultat sans changer le comportement de l'application. Le raisonnement sur les équations est mené par substitution sans inquiétude des effets de bord.

Les entrée-sorties et autres effets de bord sont bien sûr possibles, mais ils sont distingués dans le système de type des calculs sans effets de bord. Cela permet des optimisations assez poussées et garanties correctes sur ces derniers. Cette distinction des effets de bord dans le système de type est déroutante au début, mais avec l'expérience, elle apporte un réel confort.

Avec un typage puissant

Le typage statique permet de vérifier à la compilation la cohérence d'un programme et de détecter de nombreuses classes d'erreurs fréquentes. Un type statique est une approximation réalisée pendant la compilation des valeurs rencontrées au cours de l'exécution. Il est extrêmement difficile de concevoir un système de type à la fois flexible (faiblement verbeux, avec une inférence utile), complet (de grain fin, éliminant plus de bugs) et correct (pas de programmes justes rejetés). Haskell essaye de trouver le juste milieu pour que la programmation généraliste soit efficace.

Les aficionados du typage dynamique et du « duck typing » argumentent que, lors du développement avec les langages statiquement typés (typiquement C/C++), une grande partie des ressources sont gaspillées à combattre le système de type. Le typage statique de Haskell est rendu extrêmement flexible grâce au polymorphisme paramétrique, similaire aux templates en C++, mais avec des possibilités d'inférence bien plus développées.

Un type polymorphique peut être restreint à l'aide de contraintes, c'est-à-dire un ensemble de spécifications (ou typeclasses). Par exemple pour insérer un élément dans un Set, il est nécessaire de pouvoir le comparer aux éléments déjà présents avec la méthode compare de la typeclasse Ord, d'où la contrainte Ord a => dans le type de insert :

insert :: Ord a => a -> Set a -> Set a

En pratique, dans les cas courants, la seule différence induite par le système de types entre un code haskell et le code python correspondant est la présence (facultative mais habituelle) en haskell de la signature de chaque fonction… Signatures qui sont en cours d'adoption par la communauté python.

Les nouveautés de ghc 7.8.1 Changements du langage Typed holes

Grâce au typage fort de haskell, on se trouve souvent à utiliser les types pour guider la conception : on écrit d'abord les types dont on va avoir besoin, puis les signatures des fonctions. Ensuite, de proche en proche, l'implémentation des fonctions est guidée par les signatures. Bien sûr, dans les cas les plus complexes, il faut d'autres ressources que cette méthode, mais on y devient rapidement accro. L'extension typed holes (littéralement « trous typés ») permet d'utiliser cette démarche dans le corps d'une fonction.

Cette extension est souvent utilisée conjointement avec le drapeau -fdefer-type-errors qui transforme les erreurs de typage en warnings. Dans ghci, cela permet charger toutes les définitions et de les manipuler même si leurs types sont incorrects. Une expression mal typée ou contenant des typed holes est équivalant à undefined et déclenchera une erreur uniquement si elle est évaluée.

En pratique, un hole est un _ placé dans le code à la place d'une expression manquante (ici à la dernière ligne):

getSensorReading :: IO Double getSensorReading = return 123.45 -- TODO: utiliser vraiment la sonde thermique main = do tKelvins <- getSensorReading putStrLn ("Aujourd'hui il fait " ++ _ ( tKelvins - 273.15) ++ " degrés")

À la compilation, ghc émet une erreur (ou un warning si -fdefer-type-errors est activé) pour chaque hole, et affiche son type:

Found hole ‘_’ with type: Double -> [Char] Relevant bindings include tKelvins :: Double (bound at toto.hs:6:5) main :: IO () (bound at toto.hs:5:1) In the expression: _ In the first argument of ‘(++)’, namely ‘_ (tKelvins - 273.15)’ In the second argument of ‘(++)’, namely ‘_ (tKelvins - 273.15) ++ " degrés"’

Dans notre exemple, le warning à la compilation nous indique que pour afficher la température dans le putStrLn, il nous faudra une fonction de type Double -> String. Une simple recherche dans hoogle nous indique que la fonction en question n'est autre que show.

OverloadedLists

Haskell repose sur une syntaxe très concise, la majeure partie du langage (Opérateurs, type de base, etc) étant définie dans le Prelude.
En revanche, ce n'est pas le cas expressions littérales comme les nombres, les chaines de caractères et les listes. Par exemple [1, 2, 3] est interprété par le compilateur comme 1:2:3:[], où (:) et [] sont les constructeurs du type liste défini dans le Prelude. OverloadedStrings autorisait déjà les chaînes de caractères littérales avec d'autres types que [Char], notamment le type Text pour l'encodage UTF-8.

Cette extension OverloadedLists est documentée, elle permet d'utiliser la syntaxe des litéraux listes avec d'autres types, comme par exemple les vecteurs, les chaînes du module Text ou encore les ensembles.

Pour utiliser cette extension, il faut disposer d'une instance de la classe IsList. Il faudra donc attendre que ces instances soient intégrées aux bibliothèques haskell pour vraiment en profiter.

PatternSynonyms

Une autre extension, PatternSynonyms permet de donner un nom à un motif pour le filtrage.

La puissance des types de donnée algébrique (ADT) repose sur la possibilité de filtrer les données par motif, comme en Scala :

type Errno = Int data Error = ErrorLibC Errno | ErrorIO IOException errorToStr :: Error -> String errorToStr (ErrorIO ioe) = "Haskell's IOException: " ++ show ioe errorToStr (ErrorLibC errno) = "LibC's errno: " ++ show errno

Chaque constructeurs du type Error défini un motif, utilisé par la fonction errorToStr pour filtrer les erreurs. En revanche il n'était pas possible de définir ses propres motifs en plus des constructeurs. PatternSynonyms permet maintenant cela, par exemple pour avoir plusieurs motifs par constructeurs :

pattern ErrorPERM = ErrorLibC 1 pattern ErrorNOENT = ErrorLibC 2 pattern ErrorSRCH = ErrorLibC 3 errorToStr :: Error -> String errorToStr (ErrorIO ioe) = "Haskell's IOException: " ++ show ioe errorToStr ErrorPERM = "Operation not permitted" errorToStr ErrorNOENT = "No such file or directory" errorToStr ErrorSRCH = "No such process" errorToStr (ErrorLibC errno) = "LibC's unknown errno: " ++ show errno

Les motifs synonymes sont aussi utilisés pour cibler des données profondément imbriquées : pattern Greetings name = 'h':'e':'l':'l':'o':' ':name. Par défaut il sont bidirectionnels : Greetings "world" est une valeur. Il est possible de définir des synonymes unidirectionnels lorsqu'il n'existe pas de bijection.

TypeFamilies fermées

Il est possible de déclarer une famille de type et ses instances dans la même clause, par exemple:

type family TF a where TF ([Bool]) = Int TF ([Bool],[Bool]) = Double

La famille est alors fermée, c'est à dire qu'il n'est pas possible de déclarer de nouvelles instances de TF.

Améliorations du compilateur

De nombreuses améliorations portent sur le compilateur lui-même, sans modifier le langage. Il est toujours plus rapide et économe en mémoire, notamment pour l'inférence de types. La compilation en parallèle de modules est activable avec la nouvelle option -jN.

Sur Linux, FreeBSD et Mac OS X, GHCi utilise maintenant le chargeur de code dynamique du système. Auparavant, un chargeur maison liait dynamiquement du code statique (.a) en mémoire. Pour utiliser cette fonctionnalité, il est nécessaire de compiler avec -dynamic-too pour générer des bibliothèques dynamiques (.dyn.so).

Améliorations de la génération de code

La qualité du code que ghc produit s'améliore aussi :

  • ghc est capable d'utiliser plus de types «nus» (unboxed), avec l'activation de -funbox-small-strict-fields par défaut;
  • le gestionnaire d'entrée sortie se parallélise mieux, «de façon linéaire jusqu'à 32 cœurs»;
  • le nouveau générateur de représentation intermédiaire Cmm a été activé, après une gestation de plusieurs années;
  • de nouvelles primitives (PrimOps) pour les instructions SIMD sont disponibles, pour l'instant uniquement avec le générateur LLVM.
Amélioration du gestionnaire d'entrée-sorties

Le gestionnaire d'entrée-sorties était un des points les plus critiques de la performance du runtime haskell. Dans la version 7.8.1, il a été grandement amélioré, en particulier dans un contexte multi-processeurs. Haskell devient ainsi de plus en plus crédible comme meilleur langage impératif du monde.

Compilation vers iOS

La gestion de la compilation croisée a été améliorée, ce qui permet notamment de compiler vers les systèmes iOS.

Compilation vers javascript avec ghcjs

La sortie de la version 7.8 devrait être accompagnée de la première version publique de ghcjs, un compilateur haskell vers javascript. Ce langage devient de plus en plus l'assembleur du client web et ghc prend ainsi en charge cette plateforme. Par rapport à Fay, qui est plus ancien, ghcjs cherche à compiler tout le langage haskell et pas seulement un sous-ensemble.

L'introduction à ghcjs permet de se faire une bonne idée de la façon de l'utiliser, en particulier pour les parties spécifiques à javascript.

Vers ghc 7.10

La version 7.10.1 sera la prochaine version majeure de ghc. On trouve sur le trac de ghc une liste de choses qui devraient figurer dans cette prochaine version. Certaines nouveautés de cette version sont préparées dès la 7.8.

Monad / Applicative

Ces deux concepts permettent d'associer un effet à une valeur : IO Int peut par exemple représenter l'action de la lecture d'un entier présent dans un fichier. La notion de foncteur applicatif est plus générale : toutes les monades sont des foncteurs applicatifs, tandis que l'inverse n'est pas nécessairement vrai. L'exécution des effets d'une monade peut dépendre des valeurs obtenues des effets précédents, contrairement aux foncteurs applicatifs où les effets sont exécutés dans l'ordre des arguments.

La classe de type Monad fut introduite dans les premières versions du langage pour gérer les entrées/sorties avec la monade IO. Lorsque, plus tard, la classe de type Applicative apparût dans la bibliothèque de base, Monad n'a pas modifiée pour avoir Applicative comme super-classe.

Le but de la proposition Functor < Applicative < Monad est de corriger ce problème pour réduire la redondance (par exemple entre return et pure, liftM et fmap).
Ce changement, susceptible de rendre du code incompatible, est déjà signalé par un warning dans GHC 7.8 et sera officialisé dans la version 7.10.

Autres actualités de haskell

Olivier Charles a publié sur son blog l'édition 2013 de sa chronique 24 Days of Hackage qui offre une série d'introductions (avec des exemples) aux paquets majeurs disponibles sur Hackage. L'édition 2012 vaut également le détour, car elle couvre des paquets encore plus incontournables (base, containers, transformers, etc.).

Hackage 2

Le site hackage qui répertorie les paquets haskell libres, exécutables et bibliothèques est passé en version 2 en septembre 2013. L'aspect visuel a été amélioré, la recherche concerne maintenant aussi la description des paquets. La plupart des informations sont plus accessibles, en consultation mais aussi à la modification: le nouveau hackage est plus permissif, et il a une API rest plus étendue.

D'autres fonctionnalités ont été développées mais pas encore déployées, comme la gestion flexible des tags et le calcul des dépendances inverses.

Haskell platform

Il n'est généralement pas recommandé d'installer ghc seul, mais plutôt de récupérer la plateforme haskell, qui contient ghc ainsi que les bibliothèques les plus essentielles du monde haskell. Comme la version 7.8 de ghc a tardé, la plateforme n'a pas été mise à jour depuis la version 2013.2 de mai 2013. Une nouvelle version, adaptée à ghc 7.8 devrait sortir prochainement.

Télécharger ce contenu au format Epub

Lire les commentaires

ReactOS : officialisation et financement

Dimanche 13 Avril

Il reste presque 3 mois (52 jours) pour financer ReactOS !

ReactOS est un projet de système d'exploitation libre se voulant compatible avec les programmes et pilotes Microsoft Windows. Visant la sortie de leur version 0.4 intitulée Community Edition, le projet met en place une plate-forme de collaboration avec les fabricants de matériel, les développeurs de logiciel, et les utilisateurs. ReactOS lance une campagne de levée de fonds collaborative permettant de voter pour des priorités de développement, en fonction de la somme investie.

Sommaire ReactOS

ReactOS est un projet d’implémentation libre de l’environnement Windows, il s’agit de réimplémenter les API officielles (ainsi que celles non documentées) afin de permettre l’installation d’applications pensées et conçues pour Windows.

Les développeurs justifient leur développement en expliquant que s’il existe d’excellentes alternatives libres (comme GNU/Linux), elles ne pourront jamais se substituer totalement à Windows et à ses technologies, d’une part à cause de son poids historique et du poids des nombreux outils pensés pour Windows, et d’autre part certains apprécient cet écosystème, tout simplement. ReactOS permet donc de conserver une méthodologie Windows, mais librement.

Pour mettre en lumière la compatibilité, on peut remarquer que certains composants officiels de Windows peuvent s’installer sur ReactOS, par exemple la page Wikipédia décrivant le projet rapporte qu’il est possible d’installer l’outil de connexion de bureau à distance de Microsoft directement depuis le CD d’installation d’un système d’exploitation Microsoft. ReactOS lui-même peut être compilé avec la suite de développement Microsoft.

Les développeurs sont invités à tester leur développement sur ReactOS pour garantir la compatibilité binaire de leur application entre Windows et ReactOS, mais le but n’est pas de développer spécifiquement pour ReactOS, le but à terme est une compatibilité entre ces deux systèmes.

La nature même du projet ReactOS fait qu’il constitue une documentation très approfondie des fonctionnalités non documentées de Windows. ReactOS partage du code avec le projet Wine (implémentation des API Windows sur Unix) et les deux projets bénéficient de leurs travaux mutuels.

ReactOS est un gros projet qui compte actuellement 4,96 millions de lignes de code, implémentant à la fois un noyau de type NT et l’environnement utilisateur. C’est un projet de longue haleine (initié dans les années 1990) et multiplateforme (i386, amd64, arm).

Community Edition

La communication est d’ordinaire assez confidentielle, et un éventuel visiteur du site web avait de grandes chances de ne retenir que les avertissements (légitimes) mettant en garde sur l’utilisation du logiciel actuellement non stabilisé. Mais pour sa prochaine version 0.4, ReactOS met en avant son travail et lance une grande campagne de communication.

Zéro point quatre

Il est encore un peu tôt pour énoncer les nouveautés qu’apportera cette version 0.4, puisque c’est justement la levée de fonds qui va les déterminer. Cependant, c’est l’occasion pour le projet de faire une petite rétrospective entre ReactOS 0.3.0 qui était sortie en 2006 et la prochaine 0.4.0. Support du SATA, de l’USB, du son, du WiFi… ce sont beaucoup de fonctionnalités essentielles qui témoignent du chemin parcouru. On s'attend à ce que la série 0.4 soit la dernière série des versions alpha, la 0.5 étant prévue pour être une version bêta.

C’est certainement la plus grosse nouveauté visible attendue : un nouveau shell, explorer_new.exe a été complètement redéveloppé dans le cadre d’un contrat que la Fondation ReactOS a passé avec le développeur Giannis Adamopoulos grâce à de précédentes donations.

La copie d’écran suivante montre le shell explorer_new.exe utilisé comme shell de Windows 8 !

ReactOS peut être facilement testé sur Vmware, VirtualBox ou Qemu, des images sont fournies pour ces trois systèmes de virtualisations, ainsi qu’un live CD.

Financement collaboratif

Le projet ReactOS vient de lancer une campagne de financement sur la plateforme IndieGogo, ils lèvent 50 000$ en financement flexible, c’est-à-dire que tout argent levé est gagné, indépendamment du fait que l’objectif soit atteint ou non. La campagne prendra fin le premier juin.

Chose originale, en fonction du montant donné, on peut décider quel est le matériel ou logiciel prioritaire à supporter, et cela orientera le travail de l’équipe. Évidemment, plus vous financez et plus vous pesez dans les décisions. Pour 20$ vous pouvez voter pour un logiciel, mais à partir de 10 000$, vous passez outre les votes, vous soumettez directement votre demande. De même, avec 40$ vous pouvez voter pour du matériel, mais avec 35 000$, c’est vous qui décidez.

Il y a trois créneaux disponibles pour les applications, c’est à dire que ReactOS travaillera sur le support des trois applications les mieux notées. Mais en fonction du nombre de participants au programme de vote, c’est-à-dire des donateurs qui choisissent comme rétribution un droit de vote, d’autres créneaux peuvent se libérer, 5000 votants font 5 créneaux, et une personne qui paie suffisamment pour décider directement ouvre jusqu’à 10 créneaux.

Un mécanisme similaire est en place pour le support du matériel (jusqu’à 6 pièces), mais si vous avez vraiment de grands moyens vous pourrez voir plus grand…

Évidemment, pour ce type d’opération plusieurs rétributions sont proposées pour motiver le don, avec les traditionnels T-shirt ou CD collectors, mais pour 600$ vous recevrez une petite carte-mère préinstallée avec ReactOS, et si vous êtes un peu mégalo, vous pouvez acheter le droit d’apposer votre nom en dessous du logo de démarrage (mais attention, il n’y en aura qu’un pour les gouverner tous) !

Cette opération de financement permettra entre autres de renouveler le contrat de Giannis Adamopoulos ainsi que de financer de nombreux autres développements, mais si vous êtes compétent(e), les fonds levés par ReactOS peuvent également servir à vous embaucher vous aussi.

À l’écoute des développeurs, des fabricants et des utilisateurs

Le projet ReactOS met en place trois programmes de collaboration avec les développeurs ou fabricants afin de travailler la compatibilité main dans la main.

  • Un programme de collaboration avec les développeurs d’applications libres, afin d’intégrer ces applications au gestionnaire de paquet de ReactOS ou dans le processus d’installation du système (l’application pourra être choisie au moment de l’installation et directement utilisable à la fin de l’installation du système). Pour participer à ce programme de collaboration, une seule exigence : il suffit que votre application soit libre. Autrement, rien d’autre n’est fixé : vous pouvez participer en faisant la promotion de la campagne de financement, ou toute autre action de votre imagination.

  • Un programme de collaboration avec les développeurs d’applications « officielles ». Les développeurs sont invités à passer un contrat avec ReactOS pour piloter les développements nécessaires à la compatibilité. Si la confidentialité est nécessaire, un contrat discret (Ghost mode) est possible. Certains le font déjà et vous ne le saviez pas ? C’est le principe. Ce programme concerne les développeurs d’applications propriétaires, mais aussi les entreprises qui développent des applications libres. Une entreprise qui développe du logiciel libre peut donc contracter avec ReactOS pour travailler sur le support et la compatibilité de leur offre logicielle. Dans tous les cas, ne pas hésiter à contacter ReactOS, c’est l’occasion pour eux de faire un jeu de mot : « please feel free to contact us and suggest any win-win strategy: We're open (source) to new ideas! ».

  • Un programme de collaboration avec les fabricants de matériel est ouvert à toute entreprise qui souhaite voir son matériel officiellement supporté. Cette collaboration permet de piloter le développement dans cet objectif et de voir ses produits référencés dans la liste du matériel officiellement supporté par ReactOS. Un contrat en Ghost mode est évidemment possible et dans tous les cas ReactOS tient secret ses relations commerciales à moins que l’inverse n’ait été explicitement décidé par le constructeur.

Comme rapporté plus haut, les utilisateurs sont invités à voter pour le logiciel ou matériel qui compte pour eux, voir à ce sujet les options de financement « Push your app! » et « Push your piece of hardware! ».

Passer à ReactOS

Comme écrit sur leur nouveau site communautaire, ReactOS permet de rester en sécurité en utilisant un système d’exploitation compatible Windows, mais sans contrat caché avec la NSA ni de de porte dérobée…

ReactOS est aussi une opportunité très intéressante à l’heure où Microsoft abandonne le support de Windows XP. Ceux qui souhaitent maintenir un environnement de travail compatible (pour cause de logiciel ou de matériel spécifique par exemple) et supporté, seront intéressés par le projet ReactOS.

Pour essayer, le mieux est de lancer une image dans une machine virtuelle, ou un live CD, mais attention, ce n’est pas encore la 0.4. Il n’y a pas encore le nouveau shell par exemple, l’actuel est assez instable et n’est pas représentatif. ReactOS n’est pas utilisable en production aujourd’hui, mais c’est justement ce que veut réaliser cette levée de fond, et le nouveau shell montre que les financements sont employés efficacement !

Télécharger ce contenu au format Epub

Lire les commentaires

mcercle version 14.04

Dimanche 13 Avril

mcercle est un logiciel de gestion libre sous licence GPLv3 pour autoentrepreneur, artisans et TPE. Il se veut léger, ergonomique tout en gardant les performances d’un logiciel de gestion professionnel. Il est multiplateforme s’exécutant sous MS Windows, GNU/Linux et Mac OS X.

 Caractéristiques principales :
  • Gestion clients: carnet d’adresse, interventions/services, devis, factures ;
  • Gestion produits: références fournisseurs, gestion du stock avec seuil d’alerte ainsi qu’un classement par catégorie ;
  • Gestion des fournisseurs: nom du contact fournisseur, adresse, téléphone… ;
  • Base de données: sauvegarde dans une base SQLite qui assure rapidité et intégrité des données.

D'autres détails en deuxième partie.

Écrit depuis 2010 par Cyril Frausti qui n'en est pas à son coup d'essai, mcercle a connu beaucoup d'évolutions avec un souci de stabilité et de confort, comme en témoigne le changelog. C'est un logiciel de gestion de plus, oui, mais qui tend à être le plus simple et fonctionnel possible. Et puis quel confort monsieur l'entrepreneur, vous pouvez « gérer votre entreprise avec un outil libre, un outil qui vous appartient totalement ! » (extrait de la plaquette de promotion)

L'auteur a fait l'effort de fournir des paquets Debian / Ubuntu pour les versions précédentes. Mais si vous ne voulez pas compiler cette version, sachez que le binaire Win32 tourne sous Linux sans problème avec Wine (NdM. qui a testé pour vous).

Caractéristiques techniques : Copies de quelques écrans :
  • Tableau de bord

  • Clients

  • Fiches produits

  • Devis

Micro interview de l'auteur Quelle est ton activité?

Électricien actuellement.

La programmation tu es tombé dedans étant petit ?

Petit, pas tant que ça, j'avais 15/16 ans. Avec de l'HTML comme tout le monde, je souhaitais avoir un petit espace internet, puis avec mes études d'électronique j'ai fait du code machine (assembleur) et du langage C. Lors de mon 1er emploi en bureau d'étude je me suis vite confronté à l'informatique comme interface homme/machine pour le pilotage des mes cartes électroniques, j'ai donc naturellement commencé à développer en C++ pour créer mes propres interfaces.

Pourquoi avoir programmé mcercle? Avais-tu essayé d'autres outils?

C'est en essayant plusieurs outils justement que j'ai décidé de développer mcercle, je trouvais les autres logiciels beaucoup trop difficiles pour une utilisation basique (en 2010) et ceux qui était assez simples et complets n'étaient pas opensource.

J'ai cru comprendre que tu n'utilisais plus le logiciel…

Ce n'est plus vrai à présent; je suis artisan maintenant et j'utilise donc mon outil.

Le logiciel actuel est très complet. L'export des données vers la compta serait un gros plus, non ?

Oui, l'export/import est quelque chose d'important surtout pour la migration vers mcercle, mais je voulais avant tout stabiliser mcercle (c'est chose faite) avant de prévoir un import/export. Donc ce sera sur la feuille de route.

Comment vois-tu l'évolution future ? Ça restera un logiciel très simple et léger ?

Oui bien sûr. Je prévois dans la version 14.10 d'intégrer une gestion d'extensions pour enrichir les possibilités du logiciel sans toucher le logiciel lui même.

En plus de Qt4, c'est compilable avec Qt 5.2 je crois ?

Oui

Quels échos as-tu de l'utilisation de mcercle?

Quelques utilisateurs donnent de bons retours généralement et d'autres demandent des ajouts de fonctionnalités mais je ne peux pas répondre oui à tout le monde faute de temps, mcercle reste ouvert et chacun peut le modifier à sa convenance… j'ai d’ailleurs un utilisateur qui l'a compilé pour Android—mais il faut refaire une interface car ce n'est pas adapté.

Est-il empaqueté par des distributions?

Pour debian/ubuntu oui, dans les versions précédentes, malheureusement plus aujourd’hui et j'encourage les empaqueteurs si le logiciel leur paraît utile.

Télécharger ce contenu au format Epub

Lire les commentaires

HandyLinux pour débuter en informatique

Dimanche 13 Avril

HandyLinux est une distribution francophone qui parle aussi anglais, conçue pour faciliter l'accès à l'informatique à ceux qui débutent : les enfants, les seniors et ceux qui recherchent la simplicité.

Cette distribution collégiale, se distingue par son HandyMenu, sa documentation progressive et détaillée, l'accueil et l'écoute des nouveaux utilisateurs. Elle est basée sur Debian Wheezy avec Xfce, un environnement de bureau rapide, léger et stable, HandyLinux est pratique et gratuite.

La version 1.4.2 sortie le 2 avril 2014, fonctionne sur la plupart des PC construits à partir de 2001 et dotés de 512 Mio de RAM. Matériel testé avec HandyLinux.

Tous les détails et les captures d'écran en seconde partie.

L'originalité de cette distribution Debian GNU/Linux, est son HandyMenu prévu pour ne pas effrayer ou perdre le nouvel utilisateur dans un flot d'applications. Afin de lancer les applications usuelles, HandyMenu classe vos programmes en six catégories : Internet, Fichiers, Multimédia, Bureautique, Jeux et Aventuriers.

L'autre point fort est sa documentation détaillée reprenant les catégories du HandyMenu, pour aider l'utilisateur à progresser à son rythme et parvenir à enlever les roulettes et se passer de cette interface simplifiée.

Cette distribution est collégiale, c'est-à-dire que des améliorations sont proposées par les participants du forum et le développeur les intègre aux dépôts. Elles sont ainsi immédiatement disponibles au moyen du gestionnaire de mise à jour.

Les atouts d'une dérivée officielle de Debian :

Pour l'avoir installée sur un pentium 4 à 1,5 GHz, 768 Mio de RAM, de décembre 2001, je réponds que son installation est simple et rapide (elle fonctionne aussi sur des eeepc avec un SSD de 4 Gio !). Ses dépôts sont au format strict Debian. Toutes les améliorations sont installées par le gestionnaire de mise à jour.

Malgré la faiblesse du processeur, cette distribution permet de commencer à surfer sur Internet deux minutes après avoir appuyé sur le bouton ON du PC. Un collégien de douze ans l'a immédiatement prise en main, personnalisé son fond d'écran, ajouté un marque page pour se connecter au site de son collège. Et son père, peu doué en informatique, utilise ce poste pour rechercher de bonnes occasions.

Les grosses icônes du HandyMenu sont explicites :

Elle est toute en français et Minitube facilite l'accès aux vidéos du Youtube, un des usages les plus courants d'Internet :

Le menu Slingscold est intégré :

Installer des logiciels pour les enfants, comme Gcompris et bien d'autres disponibles dans la logithèque Debian, est expliqué dans la section Aventuriers.

LibreOffice est fourni dans sa version stable la plus récente.

La communauté des contributeurs
  • L'équipe est composée de Guantas, Arpinux, Dyp, Fibi, Manon, Wiscot, etc.
  • Plusieurs blogueurs analysent et critiquent les versions : Frédéric Bezies, Cyrille Borne, TechandTux, La vache libre, Sam7.
  • Les utilisateurs novices ou expérimentés participent au forum.
  • Bienvenue sur HandyLinux !
Télécharger ce contenu au format Epub

Lire les commentaires

Un projet de VM Python chez Dropbox et état des lieux des autres VM

Samedi 12 Avril

Dropbox lance PySton, une nouvelle implémentation de Python, basée sur LLVM, avec comme objectif de tirer partie des capacités JIT (Just-In-Time compiling, compilation à la volée) de l'architecture LLVM. Le but étant à terme d'utiliser Python là où du C++ était encore utilisé pour ses performances.

La suite de la dépêche fait un état des lieux des différentes VM Python et des projets d'améliorations de leur performances.

Sommaire

Avant de vous parler du projet initié par Dropbox, faisons un petit tour des VM disponibles pour Python.

CPython

L'implémentation de référence du langage Python, en C. La syntaxe Python est convertie dans un bytecode Python, qui est exécuté par la VM CPython. On critique régulièrement cette VM, à tort. Elle fonctionne très bien, elle est très portable et a subi de nombreuses optimisations au fil du temps qui en font une VM robuste, rapide et fiable.

On lui reproche régulièrement son GIL, le Global Interpreter Lock, ce gros verrou global qui protège les accès multi-threads. Dans les faits, le problème du GIL ne se pose que pour les programme multi-threads, CPU-bound, exécutés sur des multi-coeurs, qui se prêtent mal à d'autres techniques de parallélisme (tel que les services offerts par le module multiprocessing). Autant dire qu'on est dans des développements très spécifiques qui n'affectent pas la majorité des programmes écrits en Python.

Le GIL introduit par ailleurs des simplifications de code massives qui expliquent sa présence et sa longévité.

IronPython

IronPython une implémentation du langage Python, basée sur le CLR du framework .NET de Microsoft. Elle profite de tout l'écosystème autour de .NET et notamment des capacités JIT du CLR. Sur les derniers benchmarks dont je me rappelle, IronPython était soit au niveau de CPython, soit plus rapide (sans pour autant exploser les compteurs, on était dans le 1.5x ou 3x sur des benchmarks très ciblés). Si le langage est bien supporté, on peut regarder au delà de la communauté Python et se mettre à rêver grâce à IronPython de convertir des programmeurs Visual Basic. Ça, c'est pour la pub.

Quand on regarde de près, on découvre qu'en fait, pour les langages dynamiques comme Python, Ruby et Javascript que Microsoft prend en charge, le CLR brut est mal adapté. Microsoft a donc créé un DLR, un Dynamic Langage Runtime, qui s'interface au dessus du CLR et fournit des services particuliers pour gérer le dynamisme des langages précités. Jusque là, très bien…

Pour faire fonctionner un programme IronPython, il faut donc en plus des dernières versions de .NET installer le DLR dernière version. Moyennant tout ça, un programme Python pourra utiliser facilement n'importe quel composant .NET (écrit en C#, J#, Visual Basic…) mais l'inverse n'est pas vrai : un programme Python ne peut pas produire simplement des objets compatibles CLR et reste cantonné au monde du DLR. Pour accéder à ces objets/bibliothèques depuis un programme CLR, il faut passer par une gymnastique un peu complexe. Du coup, les langages DLR ne sont pas du tout au même niveau que les langages CLR et il y a peu de chance de voir Python remplacer un jour le Visual Basic.

Récemment, Microsoft a décidé de se débarrasser de ce truc donné IronPython à la communauté. Le développeur principal du projet chez Microsoft, après avoir vu son équipe se réduire au fil des mois, est finalement parti chez Google. Cf cet article de ZDNET qui résume bien ce qui se passe.

Autant dire que IronPython n'apportera pas la révolution que certains attendaient. Ca reste un projet très respectable, avec des versions compatibles 2.7 complètement fonctionnelles et une intégration dans Visual Studio.

Jython

Jython est une implémentation de Python pour la JVM de Java, qui permet d'écrire du code Java en Python et d'utiliser tous les bibliothèques Java en Python. Il supporte Python 2.5 et 2.7 .

On en entend peu parler dans le monde de l'Open Source mais le projet continue son bonhomme de chemin depuis plus de 10 ans maintenant (la première version est sortie autour des années 2000). Cette longévité est un signe que le projet est utilisé, très probablement dans le milieu de l'industrie.

Les performances sont à peu près au niveau de CPython (dixit la FAQ), le temps de démarrage d'une appli est assez long (à cause de la JVM, c'est donc peu pratique pour des scripts) ; sur des programmes qui s'exécutent longtemps (comme c'est souvent le cas pour des applis java côté serveur), le compilateur JIT JVM se met en route et fournit des gains intéressants.

À noter l'addition récente du module JyNI qui permet d'utiliser les modules d'extension Python de façon transparente en Java.

L'intérêt principal de ce projet, ce ne sont pas les performances mais l'intégration transparente dans l'écosystème Java. Si la JVM gagne encore en performance, le projet en bénéficiera, mais cela fait longtemps qu'on n'entend plus de nouvelles révolutionnaires sur le sujet…

PyPy

On ne présente plus PyPy, l'interpréteur JIT Python qui déménage. Après plus de 12 années et 5 réécritures, le projet envoie du bois : ça exécute du Python plus vite que CPython et pas qu'un peu si on en croit les benchmarks. Note de l'auteur: sur un programme ordinaire, tout le monde ne voit pas de tels gains, voire voient des dégradations catastrophiques donc à prendre avec du recul.

Le projet génère du code x86, x86-64 et récemment Arm (suite à un effort du projet Rapsberry Pi). Il est compatible Python 2.7, avec un effort en cours pour avoir la compatibilité Python 3. Le projet a maintenant atteint un bon niveau de stabilité et de performance, suffisant pour l'utiliser en production. Il est utilisable notamment avec Django, SQLAlchemy ou Twisted.

Maintenant que les gains sont là, les efforts portent sur l'écosystème ou sur d'autres innovations.

Côté écosystème, le gros problème de PyPy est que tous les modules d'extensions compilés pour CPython ne fonctionnent pas sous PyPy. Et il y en a beaucoup : des GUI (PyQt, PyGtk…), des bibliothèques de jeu (PyGame), etc.

PyPy travaille sur le sujet mais sans espoir pour l'instant de résoudre complètement le problème :

  • dans certains cas, une recompilation dudit module pour PyPy avec cpyext permettra de le faire fonctionner.
  • sinon, il faut envisager des méthodes alternatives pour faire le lien C/C++ et PyPy. Il y a des projets vraiment sympa comme Reflex, cffi et autres (cf Writing extensions modules for PyPY) mais au final, on est dans une approche qui demande une réécriture partielle dudit module.

Un certain nombre de projets sont compatibles PyPy . En plus de ceux que j'ai cité, on peut consulter la liste sur la page de compatibilité PyPy.

Dans le cas particulier de NumPy, compte-tenu de son importance pour la communauté PyPy (ou en tout cas d'un de ses auteurs qui travaille dans la recherche scientifique), une réécriture spécifique pour PyPy a été démarrée sous le nom de NumPyPy. Celle-ci ne fait pas l'unanimité, les développeurs autour de NumPy arguant d'une part qu'un clone est moins pratique que l'original, d'autre part qu'il y a d'autres modules d'extensions indispensables pour fonctionner dans l'écosystème (matplotlib, SciPy…).

Côté innovations, PyPy expérimente maintenant les Software Transactional Memory, c'est-à-dire gérer les accès mémoire d'un programme multi-threadé avec des transactions, comme dans une base de données. Une transaction pourrait être commencée, mise en œuvre ou annulée.

L'approche est originale, et a pour but de se débarrasser du GIL. Pour l'instant, c'est très lent, il est prévu un ralentissement de 2 à 5 par rapport à du CPython de base, mais cela offre en théorie la possibilité de tenir une forte montée en charge. Pour l'instant, on est vraiment sur un sujet de recherche donc à voir d'ici quelques années.

Il y a aussi un projet PyPy Sandbox qui permet d'isoler proprement un programme Python de son environnement. Les autres projets de ce type ont toujours échoué, Python offrant de multiples mécanismes de contournement de Sandbox. La force de PyPy est de pouvoir faire la Sandbox à un niveau très bas donc ça peut marcher. Pour l'instant, il y a peu de retour sur ce projet.

PyPy est un beau projet, il a su tenir son cap à travers les années - faisait fi des sceptiques - et nous délivrer ses promesses. Aujourd'hui, c'est à la fois une implémentation de Python rapide et un framework de génération d'interpréteurs Python. Il a même été utilisé très sporadiquement pour d'autres langages. Il a plus été pensé pour un usage scientifique au départ (biais de son auteur) mais les modules qui fonctionnent officiellement bien en PyPy (django, SQLAlchemy, Twisted) font penser que c'est sur les serveurs d'application qu'il va finalement faire une différence…

Le problème des modules d'extension est malheureusement rédhibitoire dans beaucoup de situations. Il est rare qu'un programme Python n'aie aucune dépendance vers une bibliothèque compilée et l'approche qui consiste à réécrire ledit module spécifiquement pour PyPy n'est pas toujours possible.

Numba

Numba est un compilateur JIT/LLVM pour Python, qui transforme des morceaux de Python annotés vers la chaîne de compilation LLVM.

Le code doit être annoté explicitement avec des marqueurs du type @jit pour demander une compilation générale vers LLVM, soit en laissant LLVM générer le code à la volée en fonction des types passés à la fonction, soit en spécifiant dans les annotations les types à utiliser.

Le site ne fournit pas de benchmarks explicites mais explique que les performances sont au niveau du C, le code Python étant effectivement traduit en assembleur. L'approche permet par exemple d'appliquer facilement des calculs sur des tableaux NumPy.

C'est un projet spécialisé dans le calcul hautes performances. On ne parle pas ici d'optimisation générale d'un programme en Python, mais d'optimisation explicite d'une ou plusieurs fonctions avec compilation au démarrage du programme (et non à la volée).

Unladen Swallow

Ce projet lancé en 2009 par trois ingénieurs de Google avait l'ambition d'accélérer la VM Python par un facteur 5, en s'appuyant sur l'architecture de compilation JIT du projet LLVM. Une des contraintes était de garder une compatibilité totale avec CPython et notamment avec les modules d'extension Python écrit en C.

Unladen Swallow est parti de la VM de CPython et a modifié la boucle d'exécution principale pour émettre du bytecode LLVM. Un programme Python était d'abord traduit en bytecode Python classique, puis transformé à la volée et selon les besoins dans la chaîne LLVM pour aboutir à du code assembleur.

On avait donc à toutes les étapes du projet un compatibilité 100% avec les programmes Python existants, validée par une grosse suite de test multi-projets.

Le projet a bien débuté, avec des gains intéressants au départ. Une PEP a aussi été acceptée par Guido van Rossum pour intégrer Unladen Swallow dans CPython (alors même que Unladen Swallow n'avait pas encore livré toutes ses promesses—cette décision a été un peu critiquée).

Au bout d'un an, le projet a été arrêté et la PEP annulée. En cause, d'une part un nombre important de bugs dans la compilation à la volée dans la suite LLVM qui ont fortement ralenti la progression attendue. D'autre part, le manque d'adoption interne chez Google, les développeurs étant finalement assez contents de leur CPython de base.

Un post d'un des développeurs résume la situation finale : Unladen Swallow Retrospective.

Le projet a quand même produit 4 versions, chacune plus rapide, ainsi qu'une suite de benchmarks de référence pour Python, assemblant tout en ensemble de suite de tests et benchmarks existants.

Le dernier né : Pyston

Dropbox (chez qui travaille maintenant Guido Van Rossum) nous annonce donc un nouveau de projet de VM : Pyston.

Quelques liens : l'annonce et le code

Ce sera une implémentation par dessus LLVM et son JIT d'une VM Python complète. Le projet vise au départ une compatibilité Python 2.7, avec un backend x86 uniquement.

Les développeurs sont partis de l'observation que dans le monde Javascript, les plus gros gains de performances ont été faits avec un compilateur JIT par méthode au lieu d'un tracing JIT qui va se concentrer sur des boucles. PyPy ayant déjà montré les gains qu'on peut avoir avec un tracing JIT, ils ont eu envie d'explorer l'autre versant de la compilation à la volée.

Pyston est une implémentation avec LLVM de l'interpréteur Python. Le langage Python est compilé en byte-code LLVM et la chaîne de compilation LLVM prend le relai pour ce qui concerne les optimisations et la compilation JIT.

C'est une grosse différence par rapport à Unladen Swallow qui se penchait sur l'optimisation de la VM CPython : on est là sur une réécriture complète. L'inconvénient est qu'il faut implémenter toute la logique du langage, un travail considérable : impossible de réutiliser l'infrastructure existante de la VM CPython. Les développeurs perdent aussi tout le savoir-faire qu'il y a déjà dans Python pour l'optimisation de la boucle d'évaluation.

L'avantage plus ou moins théorique est que l'optimisation peut être plus transversale puisqu'on évite un étage de traduction.

Le projet a aussi changé le garbage collector, passant du comptage de référence de CPython à un ramasse-miettes Conservateur. Sur les modules d'extension, le changement de Garbage Collector rendra ceux-ci nécessairement incompatibles et il y a un vague plan pour corriger cela.

Les développeurs ont l'air conscients de l'ampleur du travail à effectuer, notamment pour se rapprocher des performances de PyPy. Pour l'instant, le prototype prend en charge un tout petit sous-ensemble du langage Python. Celui-ci aurait montré d'après les développeurs un bon potentiel en terme de gain de performance.

Depuis le projet Unladen Swallow, LLVM a continué à s'améliorer et la partie qui avait posé tant de problème à Unladen Swallow a été réécrite. Les développeurs Dropbox espèrent donc ne pas subir les problèmes qu'a connu Unladen Swallow avec LLVM, ce qui tend à être confirmé par les résultats du projet Numba.

Il faut être bien conscient que même si LLVM fournit une chaîne de compilation JIT de bonne qualité, il y a beaucoup de travail à fournir en amont : l'interprétation du langage Python, le traçage des types, l'activation sélective du JIT, la gestion de la durée de vie des morceaux compilés. Il y aura beaucoup d'ajustements à trouver sur la consommation mémoire globale et sur les conditions d'activations du JIT.

Par la suite, ils envisageront une compatibilité Python 3, d'autres backends de génération de code, un meilleur Garbage Collector, l'intégration plus ou moins transparente des modules externes et même de se pencher sur le GIL.

Commentaire de l'auteur

Je précise que je n'y connais rien en compilation, LLVM ou JIT, j'ai juste plaisir à suivre de près ces projets très pointus.

La rédaction de la dépêche a fait ressortir que les efforts d'accélérations de Python, même s'ils sont réussis, butent presque tous sur la prise en charge transparente des modules d'extension. C'est vraiment un gros point noir, difficile à résoudre, et pourtant majeur. Les programmes Python qui tournent sans dépendances sont à mon avis minoritaires. Même s'il y a un effort un jour pour recompiler facilement vers PyPy ou autres, on tombera toujours sur le module un peu spécifique à un domaine qui ne fonctionnera pas.

Pyston, en ayant notamment changé le Garbage Collector, se range dans la même catégorie.

Seul le projet Unladen Swallow avait une approche globale sur le sujet avec une compatibilité totale. Ça aurait permis à n'importe quel programme Python de bénéficier des optimisations JIT, et ce à un coût de migration négligeable.

L'autre point qui me frappe au sujet de Pyston, c'est une certaine innocence dans l'approche (on pourrait presque dire naïveté). À leur lancement, les projets PyPy et Unladen Swallow avait une idée très précise et documentée de là où ils voulaient aller, articles de recherche à l'appui. On sentait qu'il y avait eu une analyse en profondeur du sujet.

Pour Pyston, ça ressemble plus à « tiens, pour Chrome, le per-method-JIT a bien marché, on a qu'à faire pareil avec Python et LLVM » . Il y a de très beaux projets qui sont issus d'une telle approche, mais aussi énormément qui se sont plantés parce qu'ils ne savaient pas où ils allaient.

Le choix de réimplémenter toute la VM Python est quand même très costaud, et implique qu'on ne verra pas de résultats utilisables avant au moins un an, voire plusieurs. Souhaitons en tout cas longue vie à ce projet et bon courage à leur développeurs !

Post-scriptum

Il y a plein d'autres efforts pour accélérer Python d'un façon d'un autre, autrement qu'en tapant dans la VM. Allez voir sur le site de Haypo la page qui y est consacrée si vous voulez en savoir plus, ou encore ses notes sur la vitesse de Python.

Télécharger ce contenu au format Epub

Lire les commentaires

Le Master Ingénierie du Logiciel Libre (I2L) et l'apprentissage

Samedi 12 Avril

En 2006, l'Université du Littoral, le département informatique et de nombreux acteurs économiques du Logiciel Libre ont fait le pari de la formation et du Logiciel Libre et ont ouvert le premier et le seul Master Professionnel entièrement dédié aux logiciels libres. Après cinq ans de fonctionnement et devant le succès du Master, nous avons décidé de changer d'organisation et nous avons opté pour l'apprentissage en septembre 2012.

La voie de l'apprentissage est aujourd'hui un excellent dispositif pour augmenter l'interaction entre formation et entreprise et pour mieux intégrer l'étudiant à une dynamique professionnelle. De plus, le Master I2L faisait déjà la part belle aux intervenants extérieurs en deuxième année, mais grâce à l'apprentissage nous avons étendu les interventions professionnelles sur les deux années afin de mener des projets d'envergure (et libres, naturellement) en partenariat avec les entreprises accueillants des apprentis.

Le Master I2L est donc resté fidèle à sa démarche initiale : promouvoir le Logiciel Libre et ses technologies phares, faire prendre conscience des problématiques économiques, légales et organisationnelles.

Dans ce cadre, l'objectif est donc la formation d'informaticiens de haut niveau capables de mener à bien la mise en place de solutions informatiques basées sur l'intégration de produits et technologies issus du monde du logiciel libre et d'accompagner les organisations dans des processus de migration vers les logiciels libres ou d'intégration de ces logiciels.

En matière de compétences, les objectifs que nous cherchons à atteindre incluent entre autres :

  • la maîtrise des infrastructures logicielles issues du monde des logiciels libres ;
  • la maîtrise des environnements de développement et de déploiement du logiciel dans le cadre des logiciels libres ;
  • l'évaluation des solutions issues des logiciels libres et l'impact de leur intégration dans une organisation ;
  • la mise en place de processus de migration vers les logiciels libres ;
  • la gestion de projets et les spécificités de l'intégration des logiciels libres en matière de gestion d'un projet informatique (eXtreme Programming, méthodes agiles, …) ;
  • une connaissance des spécificités des logiciels libres en matière de droit, d'économie et de gestion.

La nouvelle campagne de recrutement est ouverte. Attention, le nombre de places est très limitée : 13 apprentis. Mais si vous voulez conjuguer à la fois une formation universitaire et une réelle expérience dans une SSLL, c'est une superbe occasion.

Télécharger ce contenu au format Epub

Lire les commentaires

FusionForge 5.3 disponible

Samedi 12 Avril

La cinquième version de la branche 5.3 a été la bonne. Après 4 release candidates, la communauté FusionForge a publié la version 5.3 de sa forge logicielle. Le terme « forge logicielle » est un chapeau regroupant tous les outils de génie logiciel nécessaires au cycle de vie d'un logiciel. Cela inclut habituellement un gestionnaire de source, un espace de publication de fichiers ainsi qu'un outil de suivi des tâches, des anomalies et des demandes d'évolution.

Sans vouloir revenir sur le long historique de FusionForge, quelques mots de rappel : FusionForge est la reprise du code communautaire GForge, lui-même hérité de Sourceforge. On retrouve parfois dans le code des lignes datant de 1999. Écrit en PHP5, FusionForge met à disposition l'ensemble des fonctions de génie logiciel attendues pour la gestion de projet, le pilotage et les outils techniques modernes. La conception de FusionForge offre une capacité de gérer un très grand nombre de projets. Certaines forges ont plus de 1000 projets et plusieurs milliers d'utilisateurs inscrits.

Quelques exemples d'installation plus ou moins récentes et/ou importantes :

Sommaire Fonctions majeures

On peut citer comme fonctions majeures :

  • gestion multi-projet

Chaque projet dispose de l'ensemble des outils activables en fonction des besoins. Un mécanisme de classement par typologie et de tags permet une recherche au sein des projets existants. Un greffon de hiérarchie permet d'organiser les projets par relation 1-n.

  • système de droits basé sur RBAC (gestion de rôles)

Ce mécanisme permet de gérer finement les droits par projet et par outil permettant de rendre privé le projet en entier ou certaines parties uniquement. Il est possible de créer autant de rôles que souhaité ; les rôles étant cumulatifs, il est conseillé de créer des rôles orientés fonctionnels.

  • gestion de globalement tous les (D)VCS

De CVS à Bazaar en passant par Subversion, Git ou Mercurial, avec un choix entre des accès en mode SSH ou plain HTTP. Une gestion des droits d'accès par utilisateur. Pour Git, la capacité d'avoir son propre clone personnel d'un projet permettant d'implémenter un workflow de type Gatekeeper.

  • gestion simple de documents

Ajout de documents unitairement ou en masse, notification des actions réalisés sur un répertoire ou un fichier, gestion de la hiérarchisation de projets (via le greffon project-hierarchy), gestion d'actions en masse sur les fichiers, notion de corbeille, notion de documents privés et de documents soumis à validation, export au format ZIP, création en ligne de documents texte (intégration CKEditor).

  • suivi des demandes

Permettant la création de multi-bugtrackers avec la gestion de workflow en relation avec les droits utilisateurs, l'ajout de champs personnalisés, intégration possible avec la gestion de code source via le greffon scmhook et les hooks commitTracker, construction de feuille de route transverse aux différents bugtrackers créés.

  • suivi de l'activité

Chaque projet dispose d'une vue immédiate de l'activité par outil : demande, nouveau document, nouveau commit, … Ce tableau de bord d'activité permet en un rapide coup d'oeil de connaitre le dynamisme d'un projet. Un mécanisme de filtre offre la possibilité de s'intéresser à l'activité dans le temps et de limiter la recherche à un ou plusieurs outils.

  • forums

Un système de forums standard est disponible, permettant la création de forums par thème (support, échange entre développeurs ou entre utilisateurs…)

  • news
    Système d'annonces par projet qui peuvent être mises en avant sur la page d'accueil de la forge. Pratique pour annoncer sur la forge la mise à disposition d'une nouvelle version d'un logiciel.

  • mailing-lists

Intégration simple avec Mailman. Création, réinitialisation de mots de passe d'administrateur sont les fonctions élémentaires proposées. Un plugin spécifique mailman est disponible en remplacement de l'intégration de base.

  • système de widgets pour des pages projet et utilisateurs personnalisables

Hérité de Codendi, ce système permet de construire la page d'accueil du projet ou sa propre page personnelle en utilisant des widgets classés par type : SCM, Tracker, Monitoring d'éléments (forums, documents), Documents, Administration.
Certains plugins mettent à disposition des widgets complémentaires (On notera le plugin block qui laisse la possibilité d'inclure tout élément html, simplifiant ainsi l'inclusion d'éléments provenant d'autres sites. On pense ici à des boutons sociaux, des widgets type flattr, ohloh…)
La mise en page des widgets est configurable avec des modèles prédéfinis ou un mode 100 % personnalisable.

  • des greffons pour enrichir le tout
    • wikis dont MediaWiki,
    • gestion de captcha,
    • bibliothèques de hooks pour git, Subversion, Mercurial,
    • gestion de bloc HTML par page ou au sein de widget,
    • ajout d'onglets dans les différents menus,
    • intégration Jenkins,
    • … (et d'autres encore).
La version 5.3 en chiffres

Les chiffres significatifs :

  • 17000 commits
  • 14 contributeurs
  • 32 bugs fermés dont certains vieux de plusieurs années
  • 31 patchs fournis par la communauté d'utilisateurs
  • 21 demandes de fonctionnalité implémentées
Les nouveautés de la version 5.3 Côté frontend
  • gestion documentaire

L'interface de la gestion documentaire avait subi un lourd lifting dans les versions précédentes avec une réécriture quasi complète de l'interface pour mettre en avant des fonctionnalités qui passaient totalement inaperçues.

Les informations du nombre de téléchargements, la taille maximum d'upload autorisée sont affichées. Un reporting du nombre de documents téléchargés est aussi disponible.

Un nouveau widget pour les projets est aussi disponible. Il permet de suivre l'activité sur les 4 dernières semaines en affichant le nombre de nouveaux documents, de documents modifiés et de nouveaux répertoires.

  • gestion utilisateurs :

La gestion des clés SSH a été réécrite permettant un meilleur suivi du déploiement des clés SSH.
Les administrateurs peuvent être notifiés lorsqu'un utilisateur a validé la création de son compte.

  • suivi d'activité :

De nouveaux items sont affichés dans le tableau de bord de l'activité d'un projet. Ainsi l'activité SCM (commits) est disponible pour les repositories de type GIT et SVN, idem pour les nouveaux répertoires créés dans la gestion documentaire.

  • suivi des demandes :

Un système de votes basé sur les rôles (Il faut avoir l'acréditation de vote pour pouvoir voter sur un item des trackers) a été intégré. Il est enfin possible d'organiser sa roadmap en fonction de l'attente fonctionnelle des utilisateurs.

Le widget "MyArtefacts" a été amélioré pour permettre de suivre directement les items que l'utilisateur surveille.

  • SCM (Git, Mercurial, Subversion et al.)

Le plugin Git a été enrichi pour permettre le support du protocole http en mode basic. Le support smart http est possible mais les fichiers de configuration fournis par défaut nécessitent une petite adaptation.
La gestion de multiples dépôts pour un projet est aussi disponible pour Git et de nouveaux hooks sont disponibles via le plugin scmhook.

Le plugin Mercurial a vu l'intégration d'un patch important permettant son utilisation en tant que type de repository. Navigation en ligne via hgweb, intégration de hooks via la bibliothèque de hooks du plugin scmhook.

Le plugin Subversion a lui eu le droit à des nouveaux hooks du plugin scmhook.

Côté Dev
  • jQuery a été choisi comme framework Javascript standard. L'ancien empilement prototype + scriptaculous + jQuery + javascript spécifique a été nettoyé et réécrit. Résultat : des pages plus légères, moins d'incompatibilité avec les navigateurs. Toutefois, certaines portions de code restent encore en Javascript spécifique.
  • tous les graphiques ont été réécrits en utilisant le greffon jQuery jqPlot. La dépendance à l'ancienne bibliothèque jpgraph a été supprimée. Fusionforge dispose enfin d'une bibliothèque moderne et libre pour générer ses graphiques. Cette réécriture a, entre autre, permis l'inclusion d'un meilleur rendu des graphes de type Gantt avec l'affichage des dépendances entre tâches en utilisant le greffon jQueryGantt
  • le stockage des fichiers joints à un tracker et les documents est à présent fait sur le système de fichiers et non plus en base. La charge de base de données est réduite drastiquement. Il reste encore les fichiers joints au forum qui seront rapidement migrés de la base de données vers le système de fichiers.
  • le code a été nettoyé. Les variables inutilisées ont été chassées à coup de balai. Les erreurs et warnings PHP, les erreurs de syntaxe HTML ont subi la foudre des développeurs.
  • d'anciens plugins ont été intégrés dans des structures de plugin plus polyvalentes. Les plugins type svncommitemail, svntracker ont été intégrés au sein du plugin scmhook.
  • certains cronjobs ont été revus et améliorés profitant de fonctionnalités spécifiques provenant de la souche Debian. (Gestion des répertoires home projets et utilisateurs, gestion des vhosts par projet)
La communauté et le futur

La version 5.3 laisse apparaître une augmentation des contributeurs à FusionForge. En effet plusieurs personnes ont rejoint l'équipe FusionForge depuis quelques années et le dynamisme de la communauté commence à porter ses fruits. L'intérêt de FusionForge est grandissant. La communauté est de plus en plus sollicitée sur des problématiques de migration du parc d'installations anciennes de GForge que cela soit des versions "gratuites" ou des versions "Advanced Server". Le nombre de téléchargements des sources a été multiplié par 2. C'est sans compter les installations réalisées via les paquets des distributions comme Debian.
D'autres projets libres de Forge ont décidé de rejoindre la communauté FusionForge. C'est le cas de Savane qui fusionne avec FusionForge.
Vous aussi, vous pouvez devenir acteur de la communauté FusionForge. N'hésitez pas à rejoindre le canal IRC (freenode #fusionforge), tester FusionForge, signaler les fonctionnalités qui vous manquent. FusionForge avance grâce à vous.
La communauté se tourne donc vers le futur et travaille d'ores et déjà sur les nouvelles fonctionnalités ainsi que la réécriture de parties importantes du code.
En tant que contributeurs majeurs à cette version, on peut lister dans l'ordre alphabétique :

Cette dépêche est le résultat d'un travail collaboratif avec la communauté FusionForge. Merci aux différents contributeurs disponibles sur le canal IRC (freenode #fusionforge) : Beuc, Lo-lan-do, nerville

Télécharger ce contenu au format Epub

Lire les commentaires

Conférence « Les logiciels libres en entreprise » le 5 mai à Reims

Vendredi 11 Avril

Le centre de formation eXia CESI de Reims organise une conférence sur le thème « Le logiciel libre en entreprise ». Cette conférence se déroulera le 5 mai 2014 à 17h00. Elle sera animée par Remi COLLET, Senior software Engineer chez Red Hat et contributeur Fedora et PHP.

Les thèmes abordées seront :

  • le fonctionnement des communautés ;
  • le rôle de Fedora ;
  • l’expérience Open Source en entreprise ;
  • etc.

Rendez-vous le 5 mai à 17h00 :
eXia CESI - 7bis, rue Robert Shumann - 51100 Reims

Télécharger ce contenu au format Epub

Lire les commentaires

Install Party GNU/Linux à Marseille le 26 avril 2014

Vendredi 11 Avril

L’ association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install party GNU/Linux, le samedi 26 avril 2014 de 14h30 à19h30, dans la salle de la Fabulerie Marseille au 4 rue de la Bibliothèque 13001 Marseille (Prés du Conservatoire).

Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé ? Une nouvelle façon d’utiliser votre ordinateur ? Vous vous sentez une affection naissante pour le Gnou et le Manchot, les mascottes de GNU/Linux ?

Au programme :

  • Découverte de l’univers des logiciels libres
  • Installation d’un environnement GNU/Linux, ainsi que le meilleur des logiciels libres
  • Démonstration de jeux vidéo sous Linux

Venez avec votre ordinateur nous installerons ensemble une distribution GNU/Linux avec un ensemble de logiciels libres et gratuits pour une utilisation quotidienne.

Entrée libre – accessible aux débutant-e-s

Télécharger ce contenu au format Epub

Lire les commentaires

Pages