2019: Logiciel Libre: Améliorer les choses

Le logiciel libre est utilisé quotidiennement par tout le monde à partir du moment où on touche un pc sous n'importe quel système d'exploitation (OS X et Windows utilisent à certain niveau des éléments développés par BSD par exemple). Si vous allez sur le net, peu importe le navigateur, vous avez de grandes chances que le serveur qui vous envoie la page web soit tout ou en partie à base de logiciel libre. Vous utilisez donc quotidiennement des logiciels libres mais...

...comment vivent les logiciels libres ?

Certains de ses logiciels libres sont développés et maintenus par des sociétés ou fondations qui tirent des revenus de ceux-ci. Souvent les revenus sont issus de service vendu autour de ceux-ci ou via des sponsors (Blender, Firefox, BlueMind, Krita…), ces revenus servent à continuer le développement en payant les équipes qui travaillent dessus. Il existe une autre partie des logiciels libres qui ne fonctionnent pas ainsi et qui sont pourtant utilisés par énormément de monde sans forcément le savoir. Ces logiciels sont développés par des gens qui travaillent sur leur temps libre (soir, weekend, vacances…). Leur revenu principal vient donc d'un autre travail dans une société quelconque. Tous les logiciels libres n'ont pas vocation à avoir un modèle économique ou avoir suffisamment de poids pour attirer des sponsors.

Donc les personnes sont soit rémunérées directement pour le travail qu'elles font sur le logiciel libre soit pour un autre boulot qui n'intervient pas dans le logiciel libre. Parmi celles qui font du logiciel libre au travail, rien n'empêche celles-ci de faire aussi du logiciel libre en dehors.

Les projets qui ont les moyens d'avoir de l'argent pour payer des équipes ont sûrement divers problèmes mais ce n'est pas ce que je veux aborder ici. Ce qui m'intéresse c'est les autres projets, ceux faits sur le temps libre.

Ce modèle repose sur le temps libre et la volonté qu'ont les personnes pour travailler sur le logiciel libre. Ce temps libre est rarement constant d'un jour à l'autre ou d'une semaine à l'autre De fait, un logiciel libre développé comme ça est souvent plus lent à évoluer. Il est souvent développé par une ou quelques personnes mais rarement une grosse équipe. Dans ces conditions, le projet devient usant mentalement pour la ou les personnes travaillant dessus. Le cumul du travail de jour et de celui sur le temps libre n'est pas simple. Parfois c'est les retours utilisateurs qui sont usants, car le bug n'est pas corrigé assez vite, que l'évolution tant attendue n'est pas encore là alors que d'autres moins importantes le sont et la majorité est souvent silencieuse. Parfois le projet n'est plus utilisé personnellement par la personne en charge et elle finit donc par le délaisser.

Que peut-on faire ?

Le logiciel libre est un travail qu'il soit fait dans le cadre de son travail de jour ou sur son temps libre. C'est une production qui demande de l'investissement en temps, en énergie, en réflexion. Cette production n'est que rarement valorisée dans le logiciel libre et c'est fort dommage. Remercier les personnes travaillant sur tel logiciel que vous utilisez permet à celles-ci de se sentir soutenues et encouragées et ainsi de faire face aux remarques négatives qu'elles reçoivent par ailleurs.

Le logiciel libre est un travail et c'est dommage d'avoir si peu de reconnaissance de cela. C'est vu comme quelque chose fait sur le temps libre mais c'est pas parce que la personne travaille de 21h à 23h qu'elle a une production moins professionnelle que ce qu'elle fait de 9h à 18h. Pourtant on ne considère que rarement la rémunération dans ce cadre-là. Et si on essayait de donner la possibilité de faire des logiciels libres un vrai travail rémunéré. Ça demande beaucoup d'argent à une personne, mais nettement moins à deux mille et encore moins a dix mille. Si un utilisateur donne 0.2€ par mois à un logiciel libre, ça représente 2.4€ par an. Si on est dix mille à le faire ça fait un salaire non négligeable pour une personne. Liberapay permet de faire des micro-dons, le montant versé minimum est de 2€ (c'est vous ensuite qui choisissez la fréquence, x.y€ par semaine/mois/an). Il y a peut-être d'autres plateformes dans le genre (j'avoue ne pas avoir cherché toutes les alternatives). Si vous faites ceci tous les mois en changeant de projet vous pouvez soutenir 12 logiciels libres différents. Si votre budget vous le permet et que vous pouvez donner 10€ c'est 4 projet par mois que vous pouvez soutenir. Si vous en avez les moyens et que vous utiliser un logiciel libre régulièrement songez y sérieusement.

Vous pouvez aussi contribuer vous-même aux logiciels que vous utilisez. Il y a plein de mannières et vous n'avez pour cela pas besoin de savoir programmer. Vous pouvez aider à documenter le logiciel, vous pouvez aider à la traduction si vous connaissez des langues dans lesquelles le logiciel n'est pas traduit. Vous pouvez aider les autres utilisateurs qui font face à des difficultés d'utilisations des logiciels. Vous pouvez également signaler un bug, essayer de le reproduire pour donner des informations détaillées. Et si vous êtes développeur, vous pouvez aussi aider au développement. Dans tous les cas, n'importe qui peut aider à sa mesure et en fonction de son temps aux logiciels libres.

Faites en la promotion (n'allez pas forcer les gens à les utiliser, ne leur conseillez pas d'utiliser tel logiciel quand il demande un conseil sur un autre). Plus le logiciel est connu, utilisé, plus on peut espérer permettre de le financer et ainsi d'avoir un vrai temps prévu pour ça par la ou les personnes travaillant dessus.

Si on résume

Pour soutenir le logiciel libre, le nombre fait la différence !

Pensez dans la mesure de vos moyens à:

  • Remercier ceux qui travaillent sur les logiciels libres que vous utilisez
  • Faire un don même minime si le projet ou la personne le permet
  • Contribuez (documentation, traduction, support utilisateur, développement…)
  • Utilisez les logiciels libres et faites le savoir

Les petits ruisseaux forment les grandes rivières et tout soutien sous quelque forme qu'il soit fait toujours plaisir à voir.

2019: Semaine 12 à 14

Ces 3 dernières semaines ont été assez remplis professionnelement ce qui ne m'a pas laissé beaucoup de temps pour mes loisirs.

Don du Sang

J'ai mis à jour mon application de don du sang qui n'affichait plus la carte en raison de la non spécification d'un user-agent adequat pour OpenStreetMap. Merci à la personne qui est gentillement venu me le signaler.

J'en ai profité pour supprimer la publicité qui restait encore active sur le playstore. Bien qu'allant contre mes idées à ce sujet je l'avais mis en place il y à 5 ans en vue de me rapporter un petit quelque chose. Ça a rapporté 31.57€ autant dire rien du tout vu la durée. Si ça m'avait apporté de quoi dégager un peu de temps ça aurait été interessant mais là non.

J'ai ajouté une fenêtre d'information invitant les utilisateurs à faire un don pour me soutenir, on verra si ça fait effet ou non. Elle n'apparaît q'une fois.

Les versions F-Droid et Playstore sont donc identiques.

Prévision des prochaines semaines

Travailler sur Exodus et sur Kresus sont dans mes priorités des prochaines semaines. Ça fait un moment qu'ils trainent dans ma todolist et j'aimerai bien avancer significativement dessus. On verra bien le temps que j'arrive à trouver pour ça.

2019: Semaine 10 et 11

Ces deux dernières semaines n'ont pas été des plus productives côtés logiciel libre. Je n'ai ni avancé sur Kresus, ni sur Cozy Music, ni sur Exodus Live Analysis ni sur mes projets déjà commencés.

J'ai fait un petit bout de code pour diviser en plusieurs fichiers audio un fichier audio en fonction d'un fichier csv de configuration assez basique. Vous pouvez retrouver les sources ici: https://git.mob-dev.fr/Schoumi/split-audio-file. Il y a largement de quoi améliorer la chose mais j'ai d'autres choses à faire et pour l'utilisation que j'en avais c'était bien suffisant.

Prévision de la semaine 12

Pas beaucoup de temps, je vais essayer de me remettre dans kresus.

2019: Semaine 9

Semaine pas très productive mais avec des avancées notables tout de même sur Kresus.

Kresus sur Synology

J'ai repris mon travail de packaging sur Synology pour Kresus. J'ai réussi une première étape qui consiste à avoir l'installation via npm de kresus avec un fichier de conf et une configuration nginx (pour le moment non fonctionnel) embarqué dedans. La prochaine étape consiste à gérer correctement les dépendances (node, weboob, webstation…).

Capture d'écran du centre de paquets de Synology avec le package kresus indiqué comme installé et en cours d'exécution

Il faudra que je crée le package pour weboob ensuite et ça sera pas mal si tout ça se passe bien !

La suite au prochain épisode !

Prévision de la semaine 10

Continuer sur Kresus malgré une semaine relativement chargée. On verra ce qui est envisageable.

2019: Semaine 8

Ma semaine studieuse s'est avéré être une semaine où finalement j'ai fait bien peu de chose à part me reposer...

Exodus Live Analysis

Un de mes objectifs avec Exodus est de pouvoir faire de l'analyse de tracker en live sur le téléphone de l'utilisateur qui pourrait nous envoyer les résultats s'il le souhaite. L'idée est d'utiliser la fonctionnalité de VPN d'android pour intercepter les requêtes DNS et savoir qui est contacté par les différentes applications si c'est possible. J'ai commencé l'implémentation du VPN, mais je me heurte à certains soucis. Le trafic passe tranquillement au lieu d'être intercepté. J'ai dû raté quelque chose.

Prévision de la semaine 9

Cette semaine, je ne sais pas trop ce que je vais faire. Ma motivation ces jours-ci n'étant pas top, je ne me prononce pas trop.

2019: Semaine 7

Cette semaine, j'ai passé du temps sur Krésus et ma VM synology. Je n'ai pas touché à Cozy Music.

Kresus sur Synology

La VM virtualbox tourne mais npm pas des masses... Après avoir passé pas mal de temps à essayer de faire fonctionner npm, j'ai réussi à débloquer certaines choses mais pas d'autres et non des moindres, l'installation de paquet ne fonctionnait pas du tout... Dans mes recherches autour de npm et virtualbox certains chez npm critiquaient la pile réseau de virtualbox et du coup je suis allez tester l'installation de Synology sur une VM créer à l'aide de VMware player et je dois dire que ça marche nettement mieux. Il y a un truc quelque part dans l'émulation qui est faite par virtualbox qui coince avec npm mais pas seulement. Le package manager de Synology lui aussi fonctionne sous VMware ce qui n'était pas le cas de virtualbox.

J'ai passé un peu de temps à installer Kresus à la main afin de tester les commandes et fichier qu'il faudrait pour le packaging et j'ai réussi à avoir kresus qui tourne. Je n'avais pas weboob donc pas encore la possibilité de tester tout correctement mais déjà que kresus tourne.

Prévision de la semaine 8

La semaine prochaine, je vais passer un peu de temps sur Exodus Privacy et sur un autre projet avec un collègue. Je vous en dirais plus la semaine prochaine.

2019: Semaine 6

J'ai été enrhummé toute la semaine, ce qui m'a empêché de dormir convenablement. Du coup, chaque fois que j'avais un peu de temps je me suis réposé. Je n'ai cependant pas rien fait non plus mais moins que ce que je voulais.

Kresus sur Synology

J'ai une Machine Virtuelle pour un NAS Synology DS3615xs qui est un nas avec un processeur Intel Core i3 donc du x86 64bit. Je vais donc reprendre la création de paquet sur cette architecture pour commencer avant de regarder pour les architectures (armv7 et v8). L'avantage de ces architectures c'est que node est dispo en version v8 même s'il faut que je trouve comment l'installer actuellement le store dans la VM échoue à récupérer la liste.

Cozy Music

J'ai commencé à séparer les différents types de données (artiste, album, playlist) dans des composants React différent afin de pouvoir appliquer les spécificités de chacun. J'ai commencé par Artist, mais il y a encore pas mal de boulot. Une fois fini ici, ça devrait être plutôt simple de passer aux éléments suivant. Je vais à l'avenir créer différent doctype pour les artistes, albums, titres, car le faire avec celui des fichiers est assez lourd surtout pour trier/extraire les données intéressantes.

Prévision de la semaine 7

Avancer le travail commencé sur les artistes et essayer de voir les doctypes et leur fonctionnement pour créer ceux adapté aux besoins de l'application. Essayer d'installer node V8 et commencer la création d'un paquet pour Kresus utilisant le node installé et apache pour le proxy http.

2019: Semaine 5

Semaine qui est passé très vite et qui du coup n'a pas été très productive côté projet libre.

Kresus sur Synology

Point d'arrêt pour cette semaine. Comme me l'a signalé Cyprien sur mastodon, V8 n'est pas compilable sur une architecture aussi ancienne que mon NAS. Ça n'arrête pas ce projet mais, il va falloir que je regarde pour les autres architectures proposées et que je passe par des machines virtuelles pour tester ça.

Cozy Music

J'ai légèrement avancé dans Cozy Music. J'ai commencé à afficher les fichiers musicaux que j'ai dans mon cozy. C'est un premier test de l'accès aux données. Il faudra améliorer l'affichageet rendre les éléments cliquables pour pouvoir les jouer mais ça avance doucement.

Capture d'écran de l'application Cozy Music avec un premier menu contenant 3 entrée Recent, Library et Settings. Un second menu est affiché à la sélection de l'entrée Library dans le premier avec Playlists, Albums, Artists et Titles comme entrée dans ce second menu, une liste de morceau de musique est également affiché

Prévision de la semaine 6

Je vais essayer d'avancer le rendu de Cozy Music et pouvoir afficher les morceaux de musique, albums, artistes correctement pour finir la navigation de manière idéale. Avoir également une connexion mobile de bout en bout avec cozy serait un plus cette semaine.

2019: Semaine 4

Cette semaine assez peu d'avancement. J'ai eu pas mal de chose à faire sur le plan pro et perso qui ne m'ont pas laissé beaucoup de loisirs. J'ai redéfini à la baisse les objectifs de revenus pour allouer 1 jour complet à mes projets libres: 650€/mois. Le chiffre est brut, il faut compter que j'ai 22.2% de cotisations dessus. En gros l'objectif de salaire visé est de 2 000€ Net par mois.

Du coup cette semaine, je n'ai fait qu'avancé un tout petit peu dans la création de paquet pour Synology pour Kresus.

Kresus

La nouvelle chaîne de cross-compilation fonctionne ! Soucis pour copiler NodeJS il va me falloir trouver comment dire à l'outil de build de V8 le moteur Javascript utilisé par Node que je veux compiler pour l'architecture armv5 et pas pour plus récent, si tant est que ce soit vraiment possible. En soi, je pourrais me passer complètement de ça pour un certain nombre de NAS de la marque mais le mien étant sur cette architecture et n'étant pas le seul, ça m'arrange de pouvoir tester ça sur mon matériel dans un premier temps avant d'essayer de trouver des testeurs pour d'autre matériel/environnement.

Prévision de la semaine 5

Le perso me prend encore pas mal de temps cette semaine. Ça sera donc au ralenti cette semaine. Peut-être que je vais regarder pour faire un connecteur pour ma régie immobilière ça me permettrait de récupérer les quitances de loyer facilement et les lier dans mon cozy.

2019: Semaine 3

J'ai décidé de faire des petits compte-rendus de mes semaines afin de voir un peu sur une semaine ce que j'ai fait et voir un peu l'avancement de certains projets. La forme évoluera peut-être au cours du temps. On verra bien. Je ne ferai pas de compte rendu détaillé jour par jour.

Cozy Music

Contexte

J'ai décidé d'arrêter mon abonnement spotify pour la simple et bonne raison que payer 10€ pour écouter de la musique que j'ai déjà en grande majorité sous forme de CD ou que je pourrais facilement acquérir en payant cette même somme est un peu stupide.

J'ai deux utilisations principale de la musique:

  • Les transports en commun que je fréquente régulièrement
  • Quand je bosse

Ma bibliothèque musicale actuelle fait 20Go et va grossir mois après mois. La mettre en totalité sur mon téléphone me semble assez inenvisageable. J'aimerais me faire des playlists qui soient aussi présentes sur mon PC que sur mon téléphone. Bref du coup, avoir ma bibliothèque relativement accessible sur mon téléphone et mon pc et synchronisable au besoin (métro => pas de streaming).

Du coup, ça fait longtemps que l'idée de développer Cozy Music pour la plateforme Cozycloud m'intéresse. J'ai déjà tenté plusieurs fois à différent moment de m'y mettre mais voilà j'ai arrêté faute de temps/de motivation/... Là ce qui change par rapport aux autres fois c'est que j'ai viré mon outil de départ qu'était Spotify. Il ne me reste donc pas des masses de choix que de me mettre sur l'alternative.

Ce que j'ai fais

Du coup cette semaine, j'ai pris en main les outils de développement de CozyCloud et j'ai commencé (non sans mal vu que je suis pas du tout à l'aise avec le dev web). J'ai mis en place mon environnement de développement et fait en sorte d'avoir toujours les choses qui fonctionnait pareil côté web que côté mobile. Ils font des trucs assez sympa pour créer un projet de base fonctionnant directement sur le web. Ça manque encore côté mobile mais d'après ce que je sais c'est en cours. Pour le moment j'ai une partie de la navigation qui est correcte. J'ai bien galéré sur des points de détails me faisant perdre pas mal de temps mais au final j'ai ce que je veux.

Voici le résultat actuel, pour le moment c'est que de la navigation.

Version Web:

Capture d'écran de l'application Cozy Music avec un premier menu contenant 3 entrée Recent, Library et Settings. Un second menu est affiché à la sélection de l'entrée Library dans le premier avec Playlists, Albums, Artists et Titles comme entrée dans ce second menu

Version Mobile:

Capture d'écran de l'application Cozy Music avec un premier menu contenant 3 entrée Recent, Library et Settings. Un second menu est affiché à la sélection de l'entrée Library dans le premier avec Playlists, Albums, Artists et Titles comme entrée dans ce second menu

Kresus

L'équipe de Kresus suite à des demandes souhaite packager leur application pour les NAS Synology. J'avais déjà regardé comment packager des choses pour mon NAS, mais je n'ai pas été au bout car c'était très loin d'être évident ce que je voulais packager, du coup j'ai répondu que je regarderai.

J'ai commencé à regarder rapidement, premier soucis, il faut packager en premier lieux NodeJS pour le NAS. Et premier point de blocage, la toolchains pour la crosscompilation pour le processeur de mon NAS est trop ancienne pour la LTS de nodejs. Pour le moment je m'en suis arrêté là, mais je pense utiliser la toolchains pour arm que fourni Debian et que j'utilise sur d'autre élément embarqué et voir ce que ça donne.

Prévision de la semaine 4

Je vais continuer à avancer doucement sur Cozy Music, commencer à lister les fichiers musicaux sur le cozy et regarder comment jouer les morceaux sur le navigateur facilement. Je vais aussi essayer de regarder le packaging de Nodejs pour mon NAS et voir ce que ça donne. Ça me semble pas mal comme objectif pour la semaine. On verra ce que ça donne à la fin de la semaine.