PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Carl Chenet : Dans le Libre : manger ce que l’on prépare

vendredi 2 septembre 2016 à 00:00

Dans le précédent article de cette série Dans le Libre : gratter ses propres démangeaisons, nous avons vu pourquoi dans une démarche de Libriste visant à régler un problème par l’utilisation ou l’écriture d’un programme, il était important d’identifier les tâches qui pouvaient être automatisées, d’établir un plan d’action, puis de rechercher des solutions existantes avant d’éventuellement s’attaquer soi-même à écrire un programme pouvant régler le problème.

Nous verrons aujourd’hui pourquoi il est important d’utiliser soi-même son propre logiciel.

L’usage créé de nouveaux besoins

Ce faisant, il s’est avéré qu’utiliser notre propre programme levait peu à peu des nouveaux besoins. La première version de notre programme réglait le principal problème que nous avions, mais nous avons rapidement eu envie de rajouter des fonctionnalités pour répondre encore plus précisément à notre besoin et ce de manière complètement automatisée.

Manger ce que l’on prépare (Eat Your Own Dog Food en anglais, d’où l’image ci-dessous) – dans notre cas utiliser notre propre programme – nous a permis de mieux cerner le domaine des possibles et les évolutions futures à réaliser pour ce programme.

Manger votre propre nourriture (Eat Your Own Dog Food en anglais), c'est s'assurer un bon logiciel

Manger ce que l’on prépare (librement traduit de Eat Your Own Dog Food en anglais), c’est s’assurer la résolution de son problème et peut-être d’autres utilisateurs

Un exemple de ce processus est l’application db2twitter, un logiciel capable de piocher des données dans une base de données SQL avant de créer des tweets avec et de les poster sur le réseau social Twitter.

Arrivé assez rapidement à une version 0.1, le besoin d’identifier les nouvelles entrées dans la base SQL et de tweeter en conséquence m’a rapidement poussé à écrire la 0.2. Puis le besoin de modifier la requête SQL à la source des interrogations vers la base m’a orienté vers une nouvelle fonctionnalité pour la version 0.3. La version 0.4 a apporté la possibilité de ré-émettre régulièrement des tweets déjà envoyés et ainsi de suite  jusqu’à la version actuelle 0.6.

db2twitter gère MySQL, mais aussi PostgreSQL, SQLite et plusieurs bases propriétaires

db2twitter gère MySQL, mais aussi PostgreSQL, SQLite et plusieurs bases de données propriétaires

Avec une description systématique des changements des nouvelles versions, l’histoire des besoins du projet est simple à suivre. L’usage de votre propre programme amène donc à des nouveaux besoins.

Tout est simple les premiers jours

Les premiers jours, tout est simple. Vous identifiez un nouveau besoin, vous mettez à jour vos sources dans votre dépôt, vous clonez  le code depuis votre compte Gitlab.com  sur votre serveur, une petite ligne dans la crontab et hop, c’est en production. C’est en effet le moment d’itérer très rapidement dans votre développement. Vous n’être pas encore ralenti par l’existant. Mais parfois aller trop vite peut vous jouer des tours. Quelques règles à retenir :

Le site keepachangelog.com donne de très bonne lignes directrices pour créer votre fichier CHANGELOG

Le site keepachangelog.com donne de très bonne lignes directrices pour créer votre fichier CHANGELOG

new-releases

Si ces bonnes pratiques peuvent paraître un peu lourdes pour un projet dont vous êtes le seul utilisateur au début, elles vont vous donner un cadre de publication qu’il faudra impérativement respecter dans le futur sous peine de rater des publications, d’être incompris ou ignoré de vos éventuels utilisateurs.

Un excellent exemple de cette évolution est Retweet, un outil pour retweeter automatiquement selon de nombreux critères. Dès la première version, une marque a été utilisée pour marquer la sortie d’une nouvelle version, l’archive et le CHANGELOG étant générés via l’interface web du dépôt Github de Retweet. On peut ainsi fournir le maximum d’informations aux utilisateurs dans le temps, et éventuellement fournir des repères chronologiques pour une chasse aux bugs ou de l’aide à de nouveaux contributeurs.

Github présente des outils pour générer les archives de versions et tracer les nouveautés associées

Github présente des outils pour générer les archives de versions et tracer les nouveautés associées, outils malheureusement propriétaires. Préférez-lui Gitlab.

… mais avec plusieurs instances d’installées en production, ça se complique

Vous avez maintenant plusieurs versions à votre actif et une dizaine d’instances installées sur deux ou trois serveurs. Le temps entre le développement d’une nouvelle fonctionnalité et son arrivée en production a augmenté. Vous devez en effet coder la nouvelle fonctionnalité, la publier, la mettre en place sur différents serveurs, donc dans différents contextes servant des buts différents.

Dans l’idée principale de cet article et toujours en suivant notre exemple, utiliser votre propre programme a amené à un besoin de flexibilité. Très certainement le besoin d’un fichier de configuration s’est fait sentir, pour s’adapter à différentes configurations. Un besoin de stockage avec la gestion de fichiers ou d’une base de données s’est ajouté à votre projet, pour stocker les informations d’une version à l’autre.

Prenons un exemple : le projet Feed2tweet, petit projet qui récupère un flux RSS pour l’envoyer vers Twitter, est en production sur le Journal du hacker mais aussi LinuxJobs.fr, ce blog et bien d’autres aujourd’hui. Il a donc été indispensable au bout d’un moment d’automatiser le déploiement de nouvelles versions. Il est important de comprendre qu’utiliser son propre produit créé de nouveaux besoins, mais qu’une fois satisfaits, les nouvelles fonctionnalités répondant aux différents besoins permettent de pousser la flexibilité et le confort d’utilisation et de toucher ainsi des nouveaux cas d’utilisation et un public plus large.

LinuxJobs.fr, le site d'emploi de la communauté du Logiciel Libre, contribue au Logiciel Libre

LinuxJobs.fr, le site d’emploi de la communauté du Logiciel Libre, contribue au Logiciel Libre et à Feed2tweet

Manger ce que l’on prépare mène à tout automatiser

Comme nous l’avons vu, notre petit projet devient s’étoffe et devient de plus en plus complexe. Il couvre désormais différents cas d’utilisation. Il devient difficile de le tester manuellement et de prendre en cas tous les cas d’utilisation. Mais aussi d’assurer un système fiable de publication des nouvelles versions ainsi qu’un système de déploiement assurant un minimum d’impact sur nos différents systèmes désormais en production.

Pour nous protéger de tout ces risques et continuer à fournir le meilleur service tout d’abord à nous, mais aussi désormais aux différents contributeurs/utilisateurs de notre programmeur, il est nécessaire d’automatiser les différents points vus ci-dessus. Nous aborderons différents moyens d’y arriver dans le prochain article de notre série 😉

Et de votre côté ? Avez-vous amélioré votre propre programme par l’identification de nouveaux besoins en l’utilisant régulièrement ? N’hésitez pas à en parler dans les commentaires !

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Mathias : Installer FreeSwitch sur Ubuntu à partir des paquets

jeudi 1 septembre 2016 à 19:43

L’équipe de FreeSwitch vient de publier les paquets pour Ubuntu 14.04 LTS et 16.04 LTS. Une excellente nouvelle pour les utilisateurs d’Ubuntu. L’installation est maintenant simplifiée.

Pour Ubuntu 16.04 LTS, voici les commandes à taper pour installer la dernière version stable de FreeSwitch :

wget -O - https://files.freeswitch.org/repo/ubuntu-1604/freeswitch-unstable/freeswitch_archive_g0.pub | apt-key add -
 
echo "deb http://files.freeswitch.org/repo/ubuntu-1604/freeswitch-unstable/ xenial main" > /etc/apt/sources.list.d/freeswitch.list
 
# you may want to populate /etc/freeswitch at this point.
# if /etc/freeswitch does not exist, the standard vanilla configuration is deployed
apt-get update && apt-get install -y freeswitch-all

Pour Ubuntu 14.04 LTS :

wget -O - https://files.freeswitch.org/repo/ubuntu/freeswitch-unstable/freeswitch_archive_g0.pub | apt-key add -
 
echo "deb http://files.freeswitch.org/repo/ubuntu/freeswitch-unstable/ trusty main" > /etc/apt/sources.list.d/freeswitch.list
 
# you may want to populate /etc/freeswitch at this point.
# if /etc/freeswitch does not exist, the standard vanilla configuration is deployed
apt-get update && apt-get install -y freeswitch-all

Attention : les paquets permettant de gérer les flux vidéos ne sont pas installés. Des étapes complémentaires sont à prévoir.

Toutefois, l’équipe de FreeSwitch ne recommande d’utiliser cette méthode pour un usage en production pour le moment. Sur Ubuntu, seule la méthode en téléchargeant et compilant les sources est recommandée.

La documentation de la team FreeSwitch pour installer FreeSwitch sur Ubuntu.

Autres articles à lire:

Cet article Installer FreeSwitch sur Ubuntu à partir des paquets est apparu en premier sur Blog des télécoms - Par Mathias, expert et formateur rédigé par Mathias.

Gravatar de Mathias
Original post of Mathias.Votez pour ce billet sur Planet Libre.

Articles similaires

Mathias : pfSense 2.3.2 est disponible

jeudi 1 septembre 2016 à 18:20

La version 2.3.2 de PFSense, distribution open source de sécurité, avec 60 bugs corrigés, vient d’être libérée. Vous pouvez en savoir plus sur la publication de mise à jour de la version 2.3.2 sur le blog de pfSense. Pensez à mettre à jour vos appliances.

Autres articles à lire:

Cet article pfSense 2.3.2 est disponible est apparu en premier sur Blog des télécoms - Par Mathias, expert et formateur rédigé par Mathias.

Gravatar de Mathias
Original post of Mathias.Votez pour ce billet sur Planet Libre.

Okki : Participez facilement au bêta-test du prochain GNOME

jeudi 1 septembre 2016 à 17:20

La première version bêta du futur GNOME 3.22 est sortie il y a peu et il reste encore trois semaines avant la sortie de la version finale. D’ici là, les développeurs vont se concentrer sur la correction du maximum de bugs qui leur seront rapportés.

Mais pour ça, il faut que les utilisateurs acceptent de tester les versions bêta de leurs applications préférées, puis qu’ils prennent le temps de rapporter les éventuels problèmes rencontrés.

Comme le rappelait Renault il y a quelques jours, la distribution Fedora propose d’ores et déjà des images de la version alpha de Fedora 25 incluant la première version bêta de GNOME 3.22, ainsi que la documentation nécessaire pour faire de bons rapports de bug.

Mais voilà, le code évolue vite, et il est parfois préférable de tester une version n’ayant guère plus de quelques heures. Et ça tombe bien, le projet GNOME a mis en place un système de construction automatique quotidien de paquets Flatpak ^_^

Pour rappel, la prochaine version de GNOME apportera la prise en charge par défaut de la technologie Flatpak, ce qui permettra de pouvoir installer en quelques clics des applications qui ne sont pas dans les dépôts de la distribution (que ce soit des versions stables récupérées directement chez le développeur, ou des versions en cours de développement). Rappelons également que les paquets Flatpak étant isolés du reste du système, vous pouvez sans problème installer des versions bêtas sans qu’elles n’interfèrent avec votre environnement stable.

Mais en attendant la sortie de GNOME 3.22, nous devons tâter une dernière fois de la ligne de commande :p

Il va tout d’abord falloir installer l’application Flatpak. Opération particulièrement simple chez Arch / Manjaro ou Fedora qui la proposent déjà depuis quelques temps. Pour les autres, je vous renvoi au site officiel :)

Une fois que c’est bon, nous devons ensuite demander à Flatpak de récupérer la clé GnuPG du projet, ainsi que l’environnement d’exécution du futur GNOME :

$ wget https://sdk.gnome.org/nightly/keys/nightly.gpg
$ flatpak remote-add –gpg-import=nightly.gpg gnome-nightly-apps https://sdk.gnome.org/nightly/repo-apps/
$ flatpak remote-add –gpg-import=nightly.gpg gnome-nightly https://sdk.gnome.org/nightly/repo/
$ flatpak install gnome-nightly org.gnome.Platform master

Nous pouvons désormais jeter un œil à la liste des applications disponibles :

$ flatpak remote-ls gnome-nightly-apps –app

org.gnome.Books
org.gnome.Builder
org.gnome.Calculator
org.gnome.Calendar
org.gnome.Characters
org.gnome.Dictionary
org.gnome.Documents
org.gnome.Epiphany
org.gnome.Evince
org.gnome.Games
org.gnome.Geary
org.gnome.Gitg
org.gnome.Glade
org.gnome.Maps
org.gnome.Nautilus
org.gnome.News
org.gnome.Photos
org.gnome.Polari
org.gnome.Rhythmbox3
org.gnome.Software.XdgApp
org.gnome.Todo
org.gnome.Totem
org.gnome.Weather
org.gnome.bijiben
org.gnome.clocks
org.gnome.eog
org.gnome.gedit
org.gnome.iagno

Pour les personnes qui ne seraient pas familières des noms de modules, Books correspond à l’application Livres, Calculator à la calculatrice, Calendar à l’agenda, Epiphany au navigateur web, Evince au visionneur de documents, Maps à l’application Cartes, Nautilus au gestionnaire de fichiers, Software à la logithèque, Totem au lecteur vidéo, Weather à l’application météo et bijiben à l’application de prises de notes.

Nous pouvons donc passer à l’installation à proprement parler. Dans le cas de Nautilus, cela donnera :

$ flatpak install gnome-nightly-apps org.gnome.Nautilus master

Avant de lancer l’application dans sa version bêta, il est conseillé de fermer les éventuelles instances déjà existantes :

$ killall nautilus

Et voilà, il ne nous reste plus qu’à lancer l’application :

$ flatpak run org.gnome.Nautilus

Par la suite, les paquets étant mis à jour quotidiennement, vous pourrez récupérer les toutes dernières versions avec un simple :

$ flatpak update

Et si vous constatez des problèmes, n’hésitez pas à faire des rapports de bugs.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Articles similaires

Framablog : Minetest, intérêts et possibilités pédagogiques

jeudi 1 septembre 2016 à 14:31

Dans « Framinetest Édu » il y a « Édu ». Ce n’est pas (simplement) pour damer le pion à Microsoft. Les jeux de minages sont des outils intéressants et innovants pour expérimenter d’autres formes de pédagogies.

Voici un article de SVTux, un professeur de SVT convaincu des avantages des serious games… pour les avoir testés lui-même.

le Coming out simulator un serious game d'éducaiton populaire à la tolérance. CC-0 Nicky Case

Coming out simulator un serious game d’éducation populaire à la tolérance.
CC-0 Nicky Case

Entre serious games et serious gaming

Un serious game est un jeu vidéo pensé pour être éducatif. Par opposition, le serious gaming est le détournement d’un jeu classique dans un contexte pédagogique.

Avec Minetest, nous sommes à la frontière de ces deux mondes. En effet, si de base, son utilisation pédagogique le place principalement dans le serious gaming, ses possibilités de personnalisation, adaptations, détournement, … peuvent assez facilement le positionner parmi les serious games !

Quelques anecdotes pour comprendre l’intérêt pédagogique

Si vous n’êtes pas familier de ce type de jeu, j’imagine que vous êtes en train de vous dire : « mais qu’est-ce que ce truc encore ? », « c’est n’importe quoi ! », « quel est le rapport avec les programmes ? »…

Je vais donc commencer par vous raconter 3 petites anecdotes :

Mais allons plus loin avec cette 3e anecdote (arrivée le 1er avril 2016, et ce n’est pas un poisson !) :

Ces anecdotes doivent d’ores et déjà vous laisser entrevoir quelques pistes d’exploitation pédagogique… Mais allons plus loin !

Le parking était là, il manquait juste les voitures… un élève les a codées.

Le parking était là, il manquait juste les voitures… un élève les a codées.

Pistes d’exploitation pédagogique :

Minetest permet de travailler en s’amusant dans la quasi totalité des disciplines : du Français au Sciences, en passant par la philosophie, l’histoire ou encore les langues étrangères et la technologie. Rien que cela !

A minima les points des programmes suivants peuvent être abordés :

Et que dire philosophiquement, lorsqu’on interdit l’usage des armes dans le jeu, des élèves qui constituent des stocks d’armement dans leurs coffres avec l’argument : “Ne vous inquiétez pas Monsieur, nous n’allons pas nous en servir… c’est juste au cas où !”… de passionnant débats en perspective ! CQFD.

Exemple n°1, en Sciences de la Vie et de la Terre : « L’influence de l’Homme sur les peuplements »

Exemple n°2, Projet d’EPI : Géographie/Technologies/Mathématiques : « Construisons notre collège, notre ville…  »

Exemple n°3, Minetest, un outil pédagogique modulaire

Construisons notre collège.

Construisons notre collège.

Mais bien entendu, il faut garder à l’esprit que les possibilités pédagogiques de Minetest n’ont de limites que celles de notre imagination !

Autres ressources pédagogiques :

De la coopération à la collaboration !

Minetest, tout comme Framapad, peut être qualifié d’outil collaboratif.

Pour rappel, un outil est qualifié de coopératif lorsqu’il permet à plusieurs utilisateurs d’atteindre ensemble un même objectif en permettant à chacun d’apporter sa pierre à l’édifice final (sans toucher/modifier la brique du voisin).

Par opposition, un outil est dit collaboratif lorsqu’il permet à plusieurs utilisateurs d’atteindre ce même objectif en permettant à chacun d’apporter sa pierre à l’édifice final et de modifier, supprimer… celle du voisin.

En classe, lors des premières séances, nous n’observons le plus souvent que de la coopération mais avec l’entraînement, et l’acceptation de la prise en compte de l’avis de ses camarades, la collaboration se met progressivement en place. Une fois la compétence acquise par les élèves, les groupes de travail deviennent plus efficaces et autonomes.

Il est donc nécessaire de prendre le temps et de renouveler les séances pour permettre aux élèves d’apprendre à collaborer. Cet investissement temporel vaut le coup !

Où trouver de l’aide ?

Comme tout logiciel libre qui se respecte, il existe une communauté riche de nombreux membres prêts à vous aider dans vos projets. Pour en savoir davantage, voici deux liens indispensables :

Pourquoi utiliser Minetest plutôt que Minecraft en milieu scolaire ?

Voici une question fréquente à laquelle il est assez simple de répondre lorsqu’on a testé les deux outils en milieu scolaire :

Screenshot_20160811-165223

Minetest sur android, joué directement depuis un ordiphone.

Pour aller plus loin, il peut être intéressant, pour l’enseignant, de s’interroger sur l’intérêt de pousser uniquement en établissement des outils propriétaires (tel que Minecraft) chez de jeunes enfants quand on connaît l’impact de la publicité sur eux. Il est une évidence qu’il faut parfois rappeler : la diversité numérique dans le milieu scolaire est indispensable et devrait être la règle. Sinon, ne serait-ce pas une forme de publicité forcée et/ou de formatage ? Que dirait-on si une entreprise célèbre de soda réalisait l’ensemble des livres scolaires sans qu’il y ait d’autres alternatives ?

Ami-e-s enseignant-e-s : veuillez noter que la carte proposée par défaut sert à tester Framinetest. Une autre carte est réservée aux activités pédagogiques.

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.