Utiliser Conversations sur Android pour chatter de manière privée.
Ouvrir un compte sur le réseau social Diaspora, l’alternative décentralisée à Facebook et Twitter
Faire un don (aussi minime soit-il) à un logiciel libre
Moyen :
Apprendre les bases de la programmation avec Python. Vous comprendrez mieux comment fonctionne un ordinateur et pourrez automatiser des taches.
Installer Cyanogen/LineageOS sur votre smartphone. Redevenez le maître de votre smartphone, bloquez les permissions abusives, supprimez la pub des applications, supprimer les applications préinstallées qui bouffent votre batterie et polluent l’interface, gagnez en vitesse, sécurité et autonomie avec toujours la dernière version d’Android sans devoir racheter de nouvel appareil
Essayez une distribution Linux sur votre PC personnel. Bénéficiez de tous les logiciels libres installables d’un clic et d’un ordinateur rapide, sans antivirus et sans espions. Le plus simple est d’installer Linux sur un deuxième disque dur pour commencer. Vous retrouverez les mêmes logiciels libres que vous utilisez sous Windows ou Mac et plus encore.
Difficile :
Gérer votre serveur personnel (chez vous) avec un Raspberry Pi et Nextcloud, WordPress, Prosody, Mumble, etc… pour une infrastructure efficace et privée.
C'est le moment du bilan personnel de l'année écoulée. Si je regarde mon compte
GitHub, je vois peu de code cette année et
Mail2Diaspora est mon seul nouveau
projet. Si je jette un œil au blog, j'ai réussi à réduire ma production en deçà
d'un billet mensuel. Pourtant je n'ai pas diminué mon temps passé sur
l'informatique au sens large. Alors il est vrai que je suis beaucoup plus
régulier sur Diaspora, ce qui explique en partie la baisse du nombre de
billets. Il est plus simple de partager un lien technique avec un commentaire
rapide (mais pertinent hein) que d'élaborer un long article après une
expérimentation plus poussée. Ma consommation de jeux vidéos a diminué
elle-aussi et je ne me suis pas encore jeté à corps perdu dans le bricolage ou
la cuisine. Finalement, en repassant l'année au ralenti, j'ai passé énormément
de temps à apprendre et me perfectionner dans mon métier de programmeur, dont
je ne parle pas souvent. Apprendre, c'est une pratique que j'exerce régulièrement depuis
une dizaine d'années suite à un licenciement où j'avais réalisé être un peu
largué techniquement : la faute à la routine d'un poste et la fainéantise.
Depuis cette époque je me tiens informé : langages, méthodes, conception tout
ce qui touche à mon métier. Je lis beaucoup : de la documentation, des retours
d'expérience d'experts, et j'expérimente un peu.
J'ai beaucoup joué avec Javascript l'année dernière et la moitié de ce que j'ai
appris est déjà has-been. Mais ce n'est pas grave ; ça n'a pas été inutile
car cela me servira pour aborder d'autres outils et d'autres Frameworks.
J'avais aussi suivi une formation sur la programmation fonctionnelle en Scala
avec l'organisme de cours en ligne Coursera. Il est possible que je ne fasse
plus jamais de Scala mais l'éclairage sur la programmation fonctionnelle est
transposable, il ouvre l'esprit sur d'autres façons de penser et de coder.
Et il ne s'agit pas que de langages et de frameworks. On n'est pas largué parce
qu'on ne connaît pas un langage. Si un recruteur voit les choses de cette
manière c'est qu'il a une vision limitée du potentiel de la personne, juste
réduite à des mots clefs dans un CV. Pour voir plus loin, il faut qu'il
connaisse le métier, pose les bonnes questions et surtout comprenne les
réponses. Ce n'est pas un tâcle, mais on voit une catégorie de recruteurs
sortis tout droit d'écoles de commerce qui ne connaissent absolument rien au
métier et dont le seul talent est finalement de faire correspondre des
mots-clés dans des annonces avec des mots-clés dans des profils. Quel gâchis
pour eux et quelle frustation pour les candidats qu'ils approchent...
Au delà des technos, rester en phase avec le métier de développeur c'est
s'intéresser à tous les aspects, réfléchir verticalement, ne pas rester
cantonné au code et aux langages : s'intéresser à l'agilité, à la qualité du
code : un vaste sujet qui va des tests unitaires à l'intégration et au
déploiement continus et qui amène à aborder des outils comme Jenkins, Docker,
Sonar. Et puis il y a les bonnes pratiques, mon dada en prenant de l'âge. Faire
n'est plus suffisant, réaliser selon l'état de l'art dans le domaine est
beaucoup plus gratifiant. Ces bonnes pratiques sont présentes dans tous les
domaines. Ce sont les design patterns en programmation, la compréhension des
concepts et de la philosophie derrière une techno pour l'utiliser dans le bon
cadre et en tirer la quintessence. Ne pas utiliser la programmation orienté
objet en JAVA ou utiliser Ansible comme un bête installeur via SSH, c'est
dommage et c'est passer à côté de la puissance qu'on aurait pu en tirer.
Quand on a étiré ses connaissances dans plusieurs domaines avec cet état
d'esprit on atteint la satisfaction de l'artisan qui sait choisir l'outil le
plus approprié pour chaque tâche, on peut prétendre faire de l'architecture
logicielle : être capable de choisir le bon langage et le bon paradigme de
programmation pour un projet, les bons frameworks, et mettre en place les
outils nécessaires à une production de qualité. Le seul hic c'est le temps. Il
y a tellement de sujets et cela prend déjà tant de temps pour se maintenir dans
son cœur de métier, qu'il faut obligatoirement sélectionner. Dans mon cas, le
cœur c'est d'abord le développement avec des solides compétences en JAVA et
PYTHON, deux écosystèmes qui évoluent en permanence. En parallèle ce sont les
méthodes et outils transverses, valables pour tout langage : tests,
intégration, méthodes agiles. Et comme j'ai une fibre système, de par ma
formation initiale, que j'ai bien fait évoluer depuis 6 ans, je me maintiens
sur les outils de déploiement, la virtualisation et les conteneurs.
Pour en revenir à l'année écoulée, j'ai mis le paquet sur le langage PYTHON que
je pratique pourtant depuis 15 ans et sur lequel j'ai décidé de grimper en
compétence. Remise à niveau sur l'aspect fonctionnel du langage, découverte de
nouvelles librairies. J'ai aussi appliqué un conseil lu chez
Sam : la lecture de bon code écrit par d'autres. Et
c'est ainsi que j'ai disséqué le code de quelques librairies standard de
PYTHON, notamment les collections. Et c'est un très bon conseil, on en tire des
façons de faire, des conceptions élégantes et cela démystifie le côté un peu
magique de certaines librairies en regardant sous le capot. C'est un effort que
je vais continuer en 2017.
Il a mis à jour les paquets, ce sont les mêmes versions que sur elementary OS 0.4 Loki, donc AppCenter est même présent comme on peut le voir ici. Ces paquets sont disponibles que pour Debian Stretch (testing).
Le dépôt de paquets se trouve ici et n’est disponible que pour deux branches: amd64 et armhf
Bien évidemment, ce portage est encore expérimental, mais si vous voulez tester, voici la procédure à suivre:
Une belle année se termine pour le réseau social libre diaspora* et comme je n'ai pas pris le temps de faire des billets d'annonce à chaque sortie de version, voici ce qu'on peut résumer des 12 derniers mois :
Une refonte du core
C'est sans doute la chose qui intéresse le moins les utilisateurs mais qui les concerne directement : le système qui se cache sous la page web de votre compte diaspora* et sur les serveurs de vos podmins adorés s'est vu beaucoup retravaillé. Souvenez-vous des situations gênantes d'avant 2016 : un post attirant beaucoup de commentaires, rapidement, se transformait en un bordel pas possible. Les commentaires s'empilaient dans un ordre chronologique inconnu de notre planète. C'est maintenant du passé ! La fédération des messages est bien plus au point qu'avant ! De plus, une partie du travail est toujours en cours : ça sera pour 2017 donc.
Un chat en ligne
Alors, celui-là, il n'est pas encore actif sur la totalité des pods mais ça arrive. Je sais que je dis ça à chaque fois mais 2017 devrait terminer son activation sur la totalité des pods en service.
Ce système de communication en direct est utilisable depuis votre navigateur mais aussi depuis n'importe quel client XMPP qui va bien. Les vieux de la vieille dont je fais partie ne s'en servent pas trop : on traîne sur IRC depuis toujours pour parler entre nous, mais les nouveaux, moins geeks, devraient apprécier. Ceci-dit, la belle équipe qui va représenter diaspora* au FOSDEM 2017 devrait s'en servir pour se retrouver. J'en suis et je vous tiendrai au courant !
Un nouveau design
Il n'avait pas bougé depuis des années : le style très old-school est passé par une esthéticienne pour se refaire une beauté. Je sais bien que les goûts et les couleurs se discutent et que chacun y trouvera des éléments qui lui plaisent plus ou moins. Perso, j'aime et j'invite ceux qui n'y trouvent pas leur compte à créer un thème perso !
Des boutons pour commenter
Cette révolution évolution est celle dont je suis particulièrement fier puisqu'elle fût directement testée sur mon pod : diaspote.org.
Faire des jolis messages avec un gros titre, des citations, des liens et tout le tralala n'était pas bien difficile pour les amateurs de Markdown mais pour les autres, c'était franchement frustrant. Maintenant, grâce au travail d'Augier, tout le monde peut designer ses posts en quelques clics ! C'est disponible sur les posts, les commentaires et les messages privés, of course.
Mais aussi...
Des correctifs de sécurité toujours passé à temps, des améliorations discrètes mais bien utiles comme l'ajout du lien vers le post duquel est tirée la photo dans la vue des Photos, une utilisation mobile grandement améliorée, si ce n'est enfin 100% agréable, une application Android libre qui avance, et j'en passe. Je n'ai pas la liste complète en tête mais je parle ici d'un travail de fourmi qui améliore l'expérience utilisateur au jour le jour.
Enfin voilà, quand je dis que 2016 fut une bonne année ! J'avais l'idée de vous sortir une pile de chiffres pour vous montrer l'activité du projet mais je suis vite tombé sur des nombres bien trop gros. Simplement : 16 releases sur 12 mois, c'est suffisamment clair, non ?
Pour finir ce billet, je vous invite à venir vous créer un compte sur diaspote.org ou sur le pod de votre choix (Framasphere de Framasoft est chouette aussi) et de nous rejoindre sur ce beau réseau. Ça serait une belle résolution pour 2017 ! -;)
Alors comment vous a traité 2016? Pas trop mal, j’espère? Bon l’année a été bizarre sur certains aspects, mais quelle année ne l’est pas? Parlons maintenant de ZeMarmot! Pour rappel, notre réalisatrice, Aryeom Han, s’était fait une entorse au pouce mais hormis lors d’usage trop constraignant ou prolongé de la main, elle peut désormais dessiner. Elle remercie d’ailleurs chaleureusement ceux qui nous suivent pour les gentils messages reçus.
Rappel du projet
Avant de rentrer dans le gros du compte-rendu, je souhaite rappeler — comme il est de coutume en fin d’année — que ZeMarmot est un projet entièrement financé par les bonnes volontés de particuliers et sociétés donatrices, dont l’action est à 2 niveaux: art et logiciel.
Je suis un des développeurs de GIMP, second plus gros contributeur en terme de nombre de commits depuis 4 ans; je développe aussi un plugin pour l’animation 2D avec GIMP, qu’Aryeom utilise sur ZeMarmot. Ce plugin devrait faire partie de GIMP 2.10.
Aryeom utilise le logiciel pour animer, dessiner et peindre un film, d’après une histoire originale: une marmotte qui voyage dans le monde! Et bien sûr, le film sera sous licence Creative Commons by-SA!
À ce jour, notre crowdfunding initial (~ 14 000 €) a permis de payer quelques mois de salaire à Aryeom. Je n’ai rien touché à ce jour (non que je ne veuille pas, mais le projet n’a pas les moyens). Il reste un peu de la somme initiale mais principalement gardée de côté pour payer les musiciens.
Maintenant nous nous reposons surtout sur un crowdfunding mensuel grâce aux plateformes Patreon (financement USD) et Tipeee (financement EUR). À ce jour, cela monte à 180 € par mois, soit à peine plus d’un jour de salaire (et avec les charges salariales et patronales, ce qui revient à l’artiste en net est très faible). 1 jour par mois pour faire un film, c’est pas assez, on est d’accord!
Mon rêve? Nous pourrions un jour être un studio qui emploie de nombreux artistes, produisant des films libres pour le cinéma (oui dans mon rêve fou, les films libres ont leur place sur le grand écran!), ainsi que des développeurs qui améliorent des logiciels libres pour le multimédia pour un écosystème logiciel libre, riche et pour tous!
À ce jour, avec ce financement, c’est encore juste un projet expérimental principalement fait bénévolement. Mais c’est le but.
Vous aimez mon rêve? Voulez-vous m’aider à le réaliser? C’est possible en donnant pour le projet! Que ce soit la pièce symbolique ou une donation plus généreuse, toute aide est un coup de pouce dans la bonne direction.
Pas encore sûr? Prenez votre temps, lisez davantage et n’hésitez pas à revenir voir nos pages de financement si vous aimez ce que vous voyez!
Notez bien qu’en plus du financement, le nombre de contributeur est aussi important car cela remonte le moral de se sentir soutenu par plus de monde. En outre de gros chiffres nous donneront du poids lorsque nous chercherons de plus gros financements auprès d’organismes privés ou publics, mais aussi auprès de producteurs potentiels avec la possibilité de ne pas compromettre sur les aspects idéalistes du projet.
L’animation
Voici 2 vidéos pour illustrer le travail d’Aryeom. Dans cette première vidéo, elle explique quelques plans de la Marmotte:
Cette seconde vidéo examine des plans montrant un second personnage, l’aigle royal, grand prédateur de la marmotte:
Des pages entières sur l’art de l’animation pourraient être écrites à partir de ces quelques extraits mais je m’en tiendrai aux bases. Peut-être détaillerais-je dans de futurs articles.
Animer = donner la vie
Aryeom l’évoque et plusieurs extraits de la vidéo en sont l’exemple. Quand un personnage se déplace d’un point A à un point B, il ne s’agit pas de « bouger » celui-ci. Vous devez donner l’impression qu’il agit de son propre accord, en être vivant et pensant, en un mot, qu’il est « animé« .
Ce n’est pas étonnant qu’un des livres de référence du métier se nomme « L’illusion de la Vie » (de Frank Thomas et Ollie Johnston), aussi livre de chevet d’Aryeom. Cela a de nombreuses conséquences sur le travail de l’animateur.
Crédible plutôt que réaliste
Avant d’aller plus loin, je souhaite mettre un point au clair: bien que l’animation « réaliste » existe (Disney vient à l’esprit), une bonne animation est avant tout une animation « crédible ».
Il est tout à fait acceptable et même habituel d’exagérer des mouvements pour une raison ou une autre (effet comique parfois, mais même parfois il n’est pas impossible qu’un geste exagéré paraisse plus crédible qu’un geste réaliste), ou l’inverse (se débarrasser de détails trop anatomiquement corrects). Il n’y a pas de mauvais choix, seulement des décisions pour obtenir un style désiré.
Maintenant que tout est clair, continuons.
« Bouger un bras » n’est pas possible
L’exemple classique donné aux débutants: « lève ton bras droit ». C’est fait? As-tu vraiment bougé seulement le bras? Non, vois-tu, pour garder l’équilibre, ton corps s’est déplacé sensiblement à gauche en contrepoids, ton épaule droite s’est soulevée alors que la gauche s’est abaissée pour rester dans l’axe, maintenant oblique… Probablement tes pieds et jambes même se sont adaptés pour compenser le déplacement du centre de gravité.
Le corps entier s’est mis en mouvement pour ce qu’on aurait pu croire une simple action. En conséquence, on ne bouge pas « un bras », mais un « corps » entier (dans une nouvelle configuration où le bras se trouve à la place souhaitée).
C’est la principale raison pour laquelle un animateur redessinera le corps entier à chaque image et ne peut se contenter de récupérer des bouts d’images en modifiant seulement certaines parties du corps. Quitte à simuler la vie, autant le faire proprement.
Note: le terme « animation » dans l’esprit d’un développeur fait en général une connexion neuronale avec « interpolation« , le processus mathématique qui consiste en le calcul automatique de positions intermédiaires. La conséquence de mon explication précédente est qu’en réalité cela sera rarement utile en animation traditionnelle, même numérique. En vectoriel et 3D, c’est bien plus fréquent mais même là, le rôle d’un bon animateur ne doit absolument pas être minimisé. En 3D/vecteur, l’interpolation remplace tout au plus l’assistant qui dessinait les entre-deux (les images entre 2 images clés) de l’animation traditionnelle.
Timing, silence et accélération
On l’entend souvent dire de la bouche de poètes ou danseurs: le silence est aussi important que l’action. J’ajouterais aussi l’accélération et la décélération.
On le voit bien dans le premier exemple de la vidéo 1 (à 0’41). Aryeom était mécontente de la marmotte qui court dont la vitesse est presque linéaire. Il y a bien une petite décélération sur la fin, mais trop peu. Sa version finale montre donc Marmotte arriver plus vite avec un ralentissement bien plus visible, rendant le mouvement plus crédible dans son entier.
Dans la vidéo 2 (à 1’09), l’envol de l’aigle est encore un bon exemple de timing difficile. D’abord l’aigle semblait lourd et pataud (« malade » dit-elle dans la vidéo). Puis au contraire trop léger, presque à l’image d’un moineau. Il lui fallut 8 versions pour obtenir un envol qui lui plaise. Regardez notamment la toute fin quand il se met à planer… Ce genre de détails de quelques centièmes de seconde peut passer inaperçu au public et pourtant occuper longtemps un animateur.
Images fixes vivantes (a.k.a. « line boil« )
Un effet assez usuel dans l’animation est cette sorte d’image tremblotante lors du plan présentant l’aigle fier sur sa montagne (vidéo 2 à 0’33). Parfois vous voulez une situation fixe mais une image statique contredit l’attente du cerveau: dans la vie, l’absence totale de mouvement n’existe pas. Essayez de ne pas bouger plusieurs secondes devant une caméra pour voir! Ça tombe bien, dessinez deux fois exactement les mêmes lignes relève de la gageur, donc l’animateur rusé redessine la même image plusieurs fois et boucle. Nous avons maintenant une image fixe … qui vit!
Éviter les cycles
Les boucles sont un outil habituel de l’animation et il n’est pas rare de voir un étudiant s’entraîner sur des « cycles de marche ». Pourtant plus on cherche à monter en qualité, moins les boucles sont acceptables. De même que l’immobilisme n’existe pas dans la vie, on ne répète jamais 2 fois exactement le même mouvement. Si votre caractère fait plusieurs pas, vous préférerez peut-être les redessiner à chaque fois, et vous ne réutilisez pas les images précédentes.
Bien sûr, c’est à vous de placer la limite. Peut-être que cette nuée d’oiseaux dans le lointain ira bien avec des boucles (et même du copier-coller pour multiplier les oiseaux). Tout est question de choix, temps et d’argent passé à payer un animateur sur cela, bien entendu.
Animer, c’est dessiner… beaucoup
Concluons donc en disant que ce métier consiste à dessiner et redessiner énormément!
À tel point qu’on en perd le nord. L’anecdote du pigeon dans la vidéo 2 est vraie et c’est moi qui ai proposé à Aryeom de la rentrer dans la vidéo tellement c’est drôle. Un jour, Aryeom vient me voir et me montre ce plan sur lequel elle travaille depuis des jours. Elle me demande: « tu trouves pas qu’on dirait plutôt un pigeon? »
Je ne l’aurai pas arrêtée, elle était partie pour recommencer de zéro.
Mais après tout, un art où on redessine tout, même pour exprimer l’immobilisme et où on s’interdit les raccourcis (boucles), c’est peut-être déjà un peu pour les fous, non?
Plus sérieusement: il existe plusieurs écoles et beaucoup sont pour se simplifier la vie et autorisent la réutilisation d’images. Au Japon — même si le studio Ghibli est un contre-exemple connu qui se complique la vie, comme nous — le reste de l’industrie du cinéma d’animation a su nous prouver à maintes reprises qu’il est possible d’afficher une image statique pendant 30 secondes, de rajouter des sons et des voix, puis d’appeler cela une animation!
Parfois c’est un choix artistique aussi, ou un focus. Par exemple Les Simpsons ne sont pas un chef-d’œuvre graphique animée (ils font régulièrement des blagues de mise-en-abîme où ils se moquent de la qualité de leur propre animation d’ailleurs), mais ils ont les scripts les plus extraordinaires; et c’est clairement ce qui fut leur succès.
Au final, il n’y a pas de mauvais choix. Chacun suit sa voie.
C’est celle de ZeMarmot!
Musique
Courte note: nous avons commencé à travailler avec les musiciens, à distance et en rencontre physique le 1er décembre. Nous avons quelques extraits de « premières idées », mais les diffuser ne ferait nullement honneur au travail des musiciens. Il vaudra donc mieux attendre et s’en tenir à cela pour le moment!
Logiciel
Ai-je perdu mes lecteurs après ce long chapitre « animation »? Pour ceux qui sont encore là, un petit compte rendu de mes activités de dév.
GIMP
Je fais ma part sur GIMP, pour l’améliorer de manière générale et rapprocher la sortie de la version 2.10. Je compte donc 259 commits en tant qu’auteur en 2016 (60 dans les 3 derniers mois) + 48 en tant que relecteur/responsable. J’ai commenté sur 352 rapports de bug en 2016, faisant une habitude de faire le plus possible de revues de patch.
J’ai beaucoup de projets pour GIMP, certains ambitieux comme un système de gestion des plugins (installation/désinstallation/mise-à-jour… directement depuis un dialogue dans GIMP) ainsi que sur l’évolution de l’interface graphique (cela devra être discuté en détail sujet par sujet dans d’autres articles).
J’expérimente aussi avec Flatpak pour que GIMP puisse fournir un paquet officiel. Pendant des années, notre position de sortie fut: un installeur Windows, un paquet OSX et GNU/Linux… ben attrape le code source et compile quoi! Ou bien utilise la vieille version de ton gestionnaire de paquet…
Je pense que cette situation pourra s’améliorer avec Flatpak et des technologies similaires.
Animation dans GIMP
Il s’agit donc d’un plugin, pas une fonctionnalité native. Cependant c’est presque aussi puissant, même si certaines fonctionnalités manquent (comme le lien non-bidirectionnel entre GIMP et les plugins: un plugin n’est pas notifié de changements sur les images notamment; fonctionnalité sur laquelle je prévois de travailler).
Le plugin d’animation a 2 vues:
Vue « storyboard »
Cela correspond à la logique très basique 1 calque = 1 image, habituelle par exemple pour les créateurs d’animation GIF (ou MNG/WebP maintenant), excepté qu’il y a maintenant une jolie interface pour paramétrer la durée d’affichage de chaque image (plutôt que « taguer » les noms de calque, très mauvais choix d’interface, ce qui explique d’ailleurs que la fonctionnalité est quasi cachée, et trouvable sur de vieux tutoriaux seulement), faire de la composition de base et même commenter chaque vignette si besoin est. Le tout avec une bonne prévisualisation de l’animation.
Vue « x-sheet »
Vue plus puissante où vous pouvez composer chaque image à partir de plusieurs calques, souvent au moins un décor et un personnage. L’exemple ci-dessus compose 3 images à chaque position: le décor, l’aigle et la marmotte.
Vous connaissez peut-être plus les vues de type « ligne de temps », ce qui est en gros la même chose mais horizontal plutôt que vertical. J’ai essayé aussi mais suis rapidement revenu vers un design plus classique dans le monde de l’animation, appelé x-sheet (feuille d’exposition). Je le trouve plus pratique, mieux pour commenter, facile à scroller, et plus organisé. On voit peu de choses dans cette capture, mais le plugin cible vraiment une animation professionnelle et organisée. En particulier, avec des calques convenablement nommés, vous pouvez créer des cycles d’animation de dizaines d’images en juste quelques clics.
Je travaille aussi sur le keyframing d’effets (opérations GEGL animées) et les mouvements de caméra.
Beaucoup fut fait, mais bien plus reste à faire. Je posterai des articles plus détaillés et surtout pousserai le code publiquement sur une branche du dépôt de GIMP bientôt (probablement avant la prochaine réunion Libre Graphics Meeting en avril).
That’s all, folks!
Et voici donc notre compte-rendu de fin d’années de l’équipe ZeMarmot! J’espère que cela vous a plu. Et si vous n’avez pas tout dépensé en cadeaux de Noël, je rappelle que le projet accepte toute l’aide possible sur les liens donnés plus haut. Certains donnent juste 1 € par mois, d’autres 15 € par mois… il n’y a pas de limites. Au final, nous donnons vie à ZeMarmot tous ensemble!