carnet de

Weeknotes #2

Marien / le 23 mai 2020 / permalien

Cycle 5 – semaine 5

Ce que j’ai fait

J’ai terminé de développer en début de semaine le système d’inscription. Il s’agissait surtout d’arrondir un peu les angles de ce que j’avais fait la semaine dernière, de corriger quelques bugs, ainsi qu’une faille (potentielle) de sécurité. J’ai également validé que le système pour traduire l’interface fonctionne correctement. Même si le service que je proposerai s’adresse essentiellement à un public francophone, la langue principale du logiciel lui-même sera l’anglais ; il faut donc que je traduise flusio dans ces deux langues.

J’ai continué en préparant le prochain gros morceau : la connexion et la déconnexion. Ça paraît toujours être des fonctionnalités de base et pourtant il y a pas mal de petits détails auxquels il faut prendre soin le plus tôt possible. Par exemple, la connexion avec l’adresse courriel est bien souvent sensible à la casse, ce qui engendre généralement beaucoup de questions du côté du support (« j’arrive pas à me connecter »). Mais rendre la connexion insensible à la casse peut engendrer des petites surprises, comme cette faille de sécurité chez GitHub (lien technique en anglais).

Je prends donc toujours le temps de poser par écrit dans un document ce que je vais faire, les points de vigilance à avoir, les sujets techniques qu’il me faut éclaircir, etc. Je me sers ensuite de ce document pour guider le développement. Ça prend parfois plus de temps que de simplement tout développer d’une traite, mais ça m’évite bien souvent des aller-retours et de reprendre certaines parties. Ça réduit également les risques de bugs et de failles de sécurité, même si bien sûr il y en a toujours qui passent.

Tout cela m’a occupé jusqu’à mercredi matin, ce qui m’a laissé un jour et demi pour développer la connexion et déconnexion. Il me reste encore à ajouter les mécanismes de changement et de réinitialisation du mot de passe, mais l’essentiel est là. J’aimerais également ajouter un système pour révoquer les sessions de connexion : je le ferai si j’ai le temps de faire tenir tout ça au sein d’une semaine.

Enfin, ma journée d’hier devait être consacrée à FreshRSS, mais j’ai finalement été assez peu efficace. J’ai toutefois corrigé un bug sournois sous Safari et Gnome Web qui utilisent tout deux une vieille version de Webkit. J’ai également ajouté une commande make pour « linter » le code, ça devrait pouvoir me permettre de fermer un ticket que j’avais ouvert en décembre destiné à faciliter la configuration de l’environnement de développement.

Là où j’ai pris du plaisir

J’ai repris le fonctionnement de validation des données saisies par les utilisateur·ices pour permettre de valider plusieurs champs à la fois (par exemple si le mot de passe et le nom d’utilisateur ne sont pas bons, afficher les deux erreurs au lieu d’une seule). Je m’étais fait toute une montagne de ce changement vis-à-vis de l’architecture actuelle, mais au final, même si ça a entrainé la modification de pas mal de lignes, peu de fichiers étaient impactés et les changements plutôt évidents. Ça me rend confiant pour les prochaines modifications de ce type que j’envisage.

La préparation du travail avant de passer au développement m’a prouvé son utilité cette semaine en m’économisant au moins une journée de travail et des futurs emmerdements potentiels.

Ce qui m’a chagriné

Même si j’ai pris un peu d’avance sur ce que j’avais imaginé, je n’ai toujours pas attaqué le cœur du logiciel et je m’impatiente un peu. Je vais toutefois devoir encore attendre un peu puisque je vais passer la semaine prochaine, et éventuellement la suivante, à traiter les sujets non prioritaires qui s’amoncellent doucement.

Ce que j’ai découvert

J’avais un doute concernant la gestion des sessions en PHP : par défaut elles sont gérées grâce à un cookie qui est automatiquement supprimé à la fermeture du navigateur (c’est pour ça que vous devez vous reconnecter inlassablement sur certains sites 😑). Ce comportement peut être modifié aisément grâce à la fonction session_set_cookie_params(). Je suis surpris de ne l’avoir en fait jamais utilisé. FreshRSS possède un système complémentaire bien plus complexe en utilisant un second cookie, mais je suis persuadé qu’on pourrait simplifier tout cela drastiquement.

J’ai également découvert la fonction get_browser() de PHP permettant d’extraire des informations utiles d’un agent utilisateur. Je l’utiliserai uniquement pour faciliter l’identification des sessions de connexion (e.g. « Firefox sur Linux »). Je voulais quelque chose de similaire pour géolocaliser grossièrement les adresses IP, mais ça implique une nouvelle dépendance : je m’en passerai pour l’instant.

Weeknotes #1

Marien / le 15 mai 2020 / permalien

J’ai commencé à rédiger des notes personnelles de façon quasi (bi)hebdomadaire sur mon propre site il y a quelque temps et je me suis rendu compte de deux choses :

  1. j’y parle beaucoup de Flus (forcément…) ;
  2. et ces notes auraient toute leur place ici.

Je vais donc désormais prendre le temps de raconter les dessous de la conception de Flus de façon hebdomadaire (ou presque) ici même. C’était en vérité l’objet même de ce carnet de flus dès son origine, mais il faut croire que je me suis un peu égaré en chemin en abordant de moins en moins le « faire ».

Il y a des chances également que ce soit le format que je privilégie ces prochaines semaines car il me demande moins de temps pour rédiger (environ 1h contre au moins une journée pour certains articles). Le format « récap’ » risque de sauter également car je ne le trouve pas si intéressant que ça, surtout depuis que je publie mon chiffre d’affaires en temps réel.

Bienvenue donc dans cette Weeknotes #1.


Cycle 5 – semaine 4

Ce que j’ai fait

Il y a 2 semaines, j’ai créé le dépôt de code du logiciel qui se trouvera derrière le service ; le logiciel sera « flusio », le service « flus.fr ».

Une fois la base technique choisie et mise en place la semaine dernière, j’ai pu commencer à développer la fonctionnalité d’inscription. Je m’étais donné 2 semaines, mais il m’aura fallu 3 jours pour faire l’essentiel. Je ne me fais pas d’illusion, j’aurai bien besoin des jours restants pour finaliser la fonctionnalité, même en me contentant du strict minimum en termes de CSS que je ne veux aborder que plus tard.

Pris dans l’enthousiasme de ce début de projet (j’y reviens plus bas), j’ai eu du mal à m’arrêter de bosser certains soirs. J’ai finalement lâché prise en m’autorisant à faire ces « heures supplémentaires », mais en m’imposant une demi-journée hier matin pour aller me balader. Meilleure décision.

Aujourd’hui j’ai passé ma journée pour travailler sur FreshRSS. J’avais prévu de reprendre l’interface d’ajout des moyens de partage pour le rendre plus clair, mais je me suis rendu compte que les fichiers de traduction étaient sens dessus-dessous. J’ai donc pris la matinée pour tout remettre d’aplomb et mettre à jour la documentation. La première partie a été intégrée, il me reste à prendre en compte les corrections de Frenzie concernant la documentation.

Là où j’ai pris du plaisir

Le démarrage d’un nouveau projet est toujours super enthousiasmant pour moi. Même si j’ai tendance à ne pas aimer parler « technique » avec d’autres développeurs, ça reste quelque chose dans lequel je m’éclate. J’ai vraiment l’impression de mettre en œuvre tout ce que j’ai pu apprendre par le passé, tout en le faisant exactement à ma sauce. C’est lorsque j’ai « refactorisé » les tests et que j’ai résolu chacun des problèmes qui me chagrinaient jusque-là que j’ai réalisé que l’architecture choisie me convenait de façon impeccable.

Je me rends également compte que j’apprécie écrire de la documentation, même si je fais vraisemblablement encore pas mal de fautes en anglais (j’ai bon espoir que ça passe inaperçu pour la plupart des francophones 😁). J’ai plus de mal à relire un texte que j’ai écrit en anglais qu’en français. Tout ça pour dire que flusio devrait bénéficier d’une documentation préparée aux petits oignons.

Ce qui m’a chagriné

Il est compliqué d’avancer correctement à la fois sur du développement, de l’administration système, de la communication, etc. Bosser seul ainsi n’est vraiment pas aisé et comme je veux sortir une version beta pour l’automne, ça me donne des excuses pour faire ce que je préfère (le développement de flusio).

Je note donc depuis quelques jours les différents sujets qu’il faudrait que j’aborde à plus ou moins long terme. Ça va de « entériner ma candidature CHATONS » à des choses beaucoup plus techniques et pointues. Certaines choses auraient du sens à être rendues publiques, je réfléchis à comment publier cette liste.

Je vais utiliser ma sixième et dernière semaine de cycle pour essayer d’abattre un maximum de choses, mais j’envisage de m’octroyer 1 semaine supplémentaire si des choses essentielles me semblent encore manquer.

Dernière chose : mes journées sont si denses que j’ai du mal à passer à autre chose. Mon cerveau continue de vagabonder longtemps après que j’ai lâché l’ordinateur en continuant de réfléchir à ce que je pourrais développer. Des pauses s’imposent.

Ce que j’ai découvert

Je connaissais déjà Turbolinks (qui donne une sensation de navigation plus fluide) grâce à Rails, mais je ne l’avais jamais mis en place moi-même et je ne m’étais pas penché dessus plus que ça. Ça s’est révélé super facile à configurer, même s’il faut faire gaffe à quelques détails.

J’ai découvert par contre l’extension Wave pour navigateurs. Elle permet d’analyser les problèmes d’accessibilité d’une page. Je compte bien l’utiliser intensivement à l’avenir, en conjonction du système d’audit intégré dans les outils de développement de Chromium, Lighthouse (dommage que celui-ci ne fonctionne pas dans Firefox également…)

Flus et FreshRSS

Marien / le 06 mai 2020 / permalien

On m’a déjà posé la question plusieurs fois : la future version de Flus reposera-t-elle sur FreshRSS ? Pour rappel, FreshRSS est un agrégateur de flux RSS en ligne que j’avais commencé à développer alors que j’étais étudiant. C’est le service principal que je propose actuellement à l’adresse rss.flus.fr afin de me rémunérer. Si j’ai bien évidemment envisagé initialement que mon futur service (annoncé dans cet article) continue de reposer sur FreshRSS, j’ai peu à peu été amené à douter de la faisabilité.

Ainsi, le code de cette nouvelle plateforme sera écrit de zéro, et non pas basé sur celui de FreshRSS. J’ai longtemps cru que cela serait possible, mais j’en suis arrivé à la conclusion que cela me demanderait trop d’efforts. La base des fonctionnalités étant fondamentalement différente – l’agrégation de flux n’étant plus qu’une part relativement mineure du futur outil –, cela ne serait même pas forcément bénéfique à FreshRSS qui devrait emprunter dès lors une voie différente sous ma seule pression. En démarrant un nouveau projet, je m’offre énormément de libertés dans les choix techniques que je vais être amené à prendre, ce qui me permettra d’avancer plus vite. Cela sera aussi l’occasion de mettre en application toute l’expérience professionnelle que j’ai acquise ces dernières années.

Bien sûr, je m’étais engagé à contribuer à FreshRSS à travers mon activité et rassurez-vous, ce sera toujours le cas ! Premièrement, je ne fermerai pas le service actuel tant que quelqu’un·e l’utilisera1. Par conséquent je vais être amené à maintenir cette instance et donc continuer à travailler dessus ; j’y consacre pour le moment deux demi-journées par semaine. Deuxièmement, je ferai également en sorte que le code que je développe dans le cadre de Flus puisse être bénéfique aux deux projets autant que faire se peut. J’imagine assez aisément quelques briques qui pourraient être communes.

Il serait infiniment égoïste de ma part d’avoir bénéficié de ce projet – certes initié par moi-même – pour lancer mon activité, et de ne pas lui rendre la pareille. Flus et FreshRSS feront par ailleurs partie d’un même écosystème, et les améliorations faites sur l’un bénéficieront mécaniquement à l’autre, ne serait-ce que par un accroissement du nombre global d’utilisateurs et d’utilisatrices. Je précise également que Flus sera en mesure de générer des flux RSS à partir des listes thématiques, et probablement d’autres choses : tout cela pourra donc être lu naturellement depuis FreshRSS. Les deux seront complémentaires en s’adressant à des publics différents.

Le code du futur logiciel sera bien évidemment libre, sous la même licence AGPL 3, et utilisera le même langage principal, PHP. J’aurai l’occasion de revenir sur les technologies utilisées dans un prochain article.

Pour terminer, je rappelle que Flus est mon activité à plein temps et que je compte pouvoir en vivre. Vous pouvez en apprendre plus sur le futur service que je développe avec cet article et, si cela vous intéresse, vous pouvez soit prendre un abonnement sur Flus 1, soit participer à la cagnotte commune. Vous m’aiderez ainsi à m’assurer un revenu stable.


  1. Les nouvelles inscriptions pourront en revanche être bloquées à terme lorsque j’aurai ouvert la nouvelle plateforme. Cela n’est toutefois pas acté et ne se fera pas dans la précipitation. 

Nouvelle identité graphique

Marien / le 29 avril 2020 / permalien

Vous l’aurez remarqué, avec l’annonce de la seconde phase de Flus la semaine dernière, j’ai mis en place une nouvelle identité graphique. Pour rappel, j’ambitionne de créer un média social citoyen, c’est-à-dire un espace pour interagir de manière apaisée sur les sujets de société. Vous pouvez soutenir ce projet en participant à une cagnotte commune qui permettra d’offrir des abonnements gratuits lorsque le service sera en ligne. Je souhaite d’ailleurs adresser un grand merci à celles et ceux qui ont déjà contribué !

La première version de la charte graphique avait été faite plutôt au feeling, en me basant sur un code couleur tournant autour du violet, couleur que je trouve assez simple à manipuler. Le logo était celui de FreshRSS, retouché avec cette même teinte. Bref, aucune réflexion particulière, car je considérais qu’il y avait alors des choses plus importantes à faire.

Je voulais en revanche marquer le coup avec ce nouveau lancement, ce qui me donne l’occasion d’en parler ici.

Un logo plus humain

La première chose qui me semblait être problématique était le logo. Je réutilisais un logo existant, et malgré l’accord de la communauté de FreshRSS, je n’étais pas à l’aise avec ça. Il ne véhiculait notamment pas les valeurs que je voulais donner à mon service.

Sur le conseil d’ami·es, j’ai fait appel à Clara Chambon dès le début du mois de novembre pour la réalisation d’un nouveau logo. Elle avait l’avantage de travailler dans la région de Grenoble et son portfolio m’inspirait bien. Après plusieurs échanges, il était clair qu’on travaillerait bien ensemble !

Le résultat est un logo souriant, accueillant et plus humain, se rattachant ainsi à un esprit de communauté auquel je tiens. Le double sourire permet également un clin d’œil au logo bien connu des flux RSS, sans pour autant insister dessus. Il est tout du moins aisément reconnaissable.

La police Comfortaa a été utilisée pour sa rondeur et son épure, s’accordant ainsi bien avec le picto. Cette police étant sous licence libre et créée par une personne indépendante, j’en ai profité pour le remercier par un don.

Enfin, la couleur turquoise est douce, accompagné d’un très léger dégradé. Elle s’associe ainsi avec le calme dont je souhaite imprégner le futur service.

Un design sobre et lisible

Créant un service qui donnera énormément de place à l’écrit et donc à la lecture, il m’était important que le site soit le plus lisible possible, excluant des éléments graphiques complexes qui pourraient distraire l’esprit. De plus, n’étant pas graphiste de formation, je préférais garder une certaine sobriété pour éviter de m’aventurer sur des chemins graphiques que je ne maîtrise pas.

Ma principale source d’inspiration m’a été donnée par le site hey.com, futur service de courriels, qui m’a frappé par sa simplicité. De plus, ayant confiance dans le niveau technique et la mentalité des personnes derrière – il s’agit de la société Basecamp –, j’en ai profité pour y apprendre et expérimenter de nouvelles choses en CSS (le code qui gère l’aspect graphique du site).

J’ai fait face à une petite difficulté concernant les couleurs. J’ai l’habitude de me contenter d’une seule couleur principale pour m’éviter des complications. Cependant, le contraste de la couleur turquoise du logo avec la couleur de fond était insuffisant. Je ne pouvais donc pas l’utiliser pour le texte, notamment au survol des liens. J’ai donc choisi, grâce au site htmlcolorcodes.com, une seconde couleur – un violet différent de celui d’origine – qui s’harmonisait bien avec ce turquoise. Il me permet de créer un contraste visuel qui donne un peu plus d’énergie au site.

Des illustrations sous licence libre

L’un des problèmes qui me semblait le plus insurmontable il y a encore quelques mois, c’était l’illustration du site. N’ayant ni les compétences, ni les moyens de payer un ou une graphiste, j’aurais pu me retrouver bloqué.

C’était sans compter sur l’existence du fabuleux site unDraw.co, qui met à disposition gratuitement et sous licence libre une immense collection d’illustrations au format vectoriel, et dont on peut personnaliser la couleur. C’est une chance parce que ces illustrations s’accordent bien avec l’esprit que je voulais donner au site.

Cependant, comme unDraw commence à gagner en notoriété, on risque de voir de plus en plus ces illustrations sur Internet, ce qui fera perdre mécaniquement une part d’identité aux sites les utilisant. J’ai pour projet à terme de faire appel à un·e graphiste pour réaliser des illustrations sur-mesure, mais il est encore trop tôt pour songer à cela.

Une charte graphique en évolution

La charte graphique et le code couleur seront encore affinés pour le futur service, je me suis contenté ici d’en concevoir le strict nécessaire.

Ce nouveau style s’applique déjà au site et au blog, il me reste encore à travailler la page de statut, mais je ne suis pas encore certain de l’appliquer pour le service FreshRSS (cela représente une quantité de travail plus importante).

Il s’agit en tout cas d’un bon aperçu de la lisibilité que je souhaite donner au futur service.

Je rappelle que je travaille aujourd’hui à plein temps sur ce projet que vous pouvez découvrir plus en détail dans cet article. Si vous voulez soutenir mon travail, vous pouvez soit prendre un abonnement sur Flus 1 – un agrégateur de flux RSS –, soit participer à une cagnotte commune.


Photo d’illustration par Anna Kolosyuk (Unsplash). Le logo a été réalisé par Clara Chambon. La troisième illustration provient du site undraw.co.

Flus, média social citoyen

Marien / le 22 avril 2020 / permalien

Flus a ouvert ses portes le 28 novembre 2019. L’accueil qui lui a été fait a été très positif, quoique limité à un public plutôt technique et/ou déjà adepte de logiciels d’agrégation de flux RSS. Pour moi, il s’agissait de m’essayer à la création d’entreprise et de mettre en place les premiers outils nécessaires à la gestion d’une plateforme de contenus et de sa clientèle. Rapidement, il a été évident que je ne pourrais pas vivre de cette plateforme en tant que telle sur le long terme ; ce n’était de toute manière pas mon ambition.

Cinq mois après son ouverture, il est temps pour moi de vous annoncer la seconde phase de Flus.

S’informer est un acte politique essentiel

Durant ces trois derniers mois, j’ai passé du temps à modeler ma vision de ce que pourrait être Flus. J’ai posé à plat les problèmes que (me) posent les plateformes d’information existantes. J’ai également échangé avec plusieurs personnes pour avoir leur opinion, connaître les manques qu’elles ressentent, et qu’elles me partagent leurs idées.

De ces échanges ont émergé des problèmes. Trois points m’ont semblé tout particulièrement critiques :

  1. il est compliqué de tenir des discussions intéressantes sur les réseaux sociaux actuels qui ont tendance à générer un énervement en nous qu’il est compliqué de contenir ;
  2. quand bien même ces discussions sont constructives, elles ont tendance à se perdre dans les méandres d’historiques infinis, transformant ainsi nos échanges en temps perdu ;
  3. enfin, la quantité d’information qui nous tombe dessus chaque jour est insoutenable : cela est vrai sur les réseaux sociaux tout autant que dans la plupart des agrégateurs de flux RSS.

J’ai ainsi mouliné tout cela avec comme objectif d’améliorer la façon dont on s’informe en ligne. Cela a mené à la rédaction d’un manifeste se déclinant en 10 affirmations en lesquelles je crois intimement et qui serviront de boussole pour le futur Flus. Ce manifeste m’a permis de donner une vision globale à mes idées. Il guidera ainsi le design des futures fonctionnalités.

Le premier point du manifeste stipule « S’informer est un acte politique essentiel ». Je veux signifier par là toute l’importance que peut revêtir un acte qui est pourtant devenu anodin dans un monde numérique croulant littéralement sous une montagne d’information. On en vient à en sous-estimer son importance dans une société qui ne semble pourtant pouvoir vivre qu’à travers elle. Il est temps de redonner du sens à tout cela. Je suis persuadé que le numérique peut apporter énormément de bonnes choses à la façon dont on s’informe en général. Les plateformes existantes n’ont toutefois pas été conçues de manière correcte et parfois même contre nos propres intérêts (coucou Twitter, coucou Facebook 👀).

C’est tout cela que je veux corriger avec Flus.

Flus, un média social citoyen

Ainsi, j’ai peu à peu imaginé les fonctionnalités qui pourraient permettre de répondre aux problèmes mis en lumière lors de mes échanges. Il ne doit plus s’agir de rester passif face à l’information qui nous tombe dessus, mais de pouvoir choisir concrètement ce qui nous intéresse et d’échanger de manière apaisée avec les personnes de notre choix. Cela m’a amené à imaginer la transformation de Flus vers un média social citoyen.

Flus deviendra une plateforme sur laquelle vous pourrez mettre de côté et commenter des liens et articles, organisés en listes thématiques. Vous pourrez faire cela seul·e ou à plusieurs, à travers des communautés de personnes (vos ami·es, votre association, entre militant·es, etc.) Vous pourrez ainsi discuter, commenter et étayer vos positions entre personnes d’un même groupe, de manière apaisée. Les discussions entre différentes communautés devront par contre être acceptées de part et d’autre afin d’éviter les interactions non sollicitées.

Vous pourrez également suivre des listes créées par d’autres personnes ou communautés, ou des sites via leur traditionnel flux RSS, afin d’être tenu·e au courant des ajouts. Vous pourrez obtenir des suggestions de lecture en définissant vos propres critères pour affiner les résultats. En effet, sur Flus, il sera primordial que vous soyez en mesure de savoir pourquoi telle ou telle information vous est proposée.

Enfin, un journal quotidien personnalisé vous sera proposé. La quantité d’information de ce journal sera adaptée en fonction du temps que vous aurez devant vous. Si des articles vous semblent intéressants, mais que vous n’avez pas le temps de les consulter, vous pourrez les mettre de côté pour les retrouver facilement plus tard.

En bref, il s’agira d’une plateforme d’information en ligne, boostée aux échanges apaisés et de qualité. Je compte travailler à plein temps sur ce nouveau projet pour sortir une version beta vers l’automne 2020. Vous pourrez en apprendre plus sur le nouveau site, flus.fr.

La cagnotte commune : financer des abonnements à Flus

Vous l’aurez peut-être compris : cela va me demander un certain temps avant de pouvoir vous proposer quelque chose de fonctionnel. J’ai néanmoins besoin d’assurer mes revenus si je veux pouvoir développer tout ce que j’ai en tête. Vous êtes déjà quelques-un·es à me soutenir financièrement en ayant pris un abonnement sur flus.io et je vous en remercie énormément. Néanmoins, en l’état actuel des choses, cela ne serait pas suffisant pour m’assurer un salaire décent. C’est pourquoi j’ai décidé de proposer un nouveau moyen de soutenir mon travail en mettant en place un système de cagnotte commune.

Cette cagnotte permettra de proposer un système alternatif de paiement pour les personnes n’ayant pas les moyens de s’offrir un abonnement à Flus. Ainsi, si vous décidez de placer 15 € dans cette cagnotte, vous offrirez cinq abonnements mensuels lorsque la nouvelle version sera sortie. Contrairement au soutien par abonnement, elle ne nécessite pas de compte pour y participer.

Il vous est bien évidemment toujours possible de prendre un abonnement sur flus.io si vous préférez me soutenir de cette manière.

Par ailleurs, le recul obtenu sur la première phase de Flus ainsi que ce nouveau lancement m’ont donné l’occasion de réévaluer mes objectifs financiers. Comptant initialement sur les aides du chômage, je m’étais fixé un objectif de 10 000 € sur l’année. Je dois toutefois prendre en compte que la fin de ces aides approche et que des frais supplémentaires pourraient être à considérer. C’est pourquoi je vise désormais 30 000 €. Pour accompagner ce nouvel objectif, j’ai pris le soin de créer une page expliquant précisément à quoi je destine cet argent. Ce sujet peut parfois être tabou, voire soigneusement mis sous le tapis ; je préfère pour ma part l’aborder en toute transparence.

Je me rends bien compte que cette période de confinement est particulière et parfois synonyme d’une baisse de revenus pour certain·es d’entre vous. C’est pourquoi je tiens à préciser ici que si vous avez le souhait de m’aider, il est important que vous le fassiez en fonction de vos moyens et non pas de ce que vous aimeriez me donner dans un monde idéal. Prenez soin de vous avant tout !

Ceci n’est que le début

J’ai passé tout le début de cette année à plancher sur ce nouveau projet et je n’imaginais pas que j’aurais besoin de ces quatre mois. C’est toutefois très naturellement que les choses se sont agencées et que j’ai pris le temps de la réflexion pour maturer ce projet. J’en profite d’ailleurs pour remercier infiniment toutes les personnes qui ont eu la gentillesse de prendre de leur temps pour échanger avec moi ces derniers mois. Il est très clair que je n’en serais pas là sans elles.

Cet article n’est que le début d’une nouvelle phase super enthousiasmante pour moi. Considérant les retours que j’ai eus jusqu’ici, je crois que cet enthousiasme est partagé quoique frustré, car le service n’existe pas encore. Vous imaginez bien que je suis le premier à partager cette frustration 😁

Les prochains mois vont être chargés, mais je (re)prendrai le temps de rédiger des articles dans ce carnet car ils me permettent de prendre du recul et de partager mon expérience.

De votre côté, vous pouvez me soutenir avec un abonnement à Flus 1, ou en aidant à financer la cagnotte commune. Si cela vous est préférable, vous pouvez également m’aider en partageant cet article sur les réseaux sociaux et en parlant de Flus autour de vous. Le bouche-à-oreille est essentiel pour faire connaître le service auprès d’un public plus large.

Avec votre aide, j’espère faire de Flus une plateforme de référence pour toute personne souhaitant s’informer en ligne, ainsi qu’un lieu de rencontres citoyennes apaisées.


Photo d’illustration par Suzanne D. Williams (Unsplash).

Les autres illustrations proviennent du site undraw.co.

Récap #3

Marien / le 07 mars 2020 / permalien

Je travaille par cycles de 6 semaines. À chaque fin de cycle, je publie un article récapitulatif de ce que j’ai fait durant ce temps. Cela me permet d’être transparent sur le travail que j’ai réalisé.

Ce récap’ concerne la période du 27 janvier au 8 mars.

Du code en petite quantité pour FreshRSS

Clairement, ce cycle ne m’a pas vu écrire beaucoup de code pour FreshRSS. J’ai principalement terminé le système de migrations et amélioré les processus d’inscriptions et de connexion.

Ces deux pull requests sont prêtes à être intégrées, je m’en occuperai sans doute la semaine prochaine.

Futur moins flou

Je l’ai évoqué lors du précédent récap’, je travaille à la « suite » de Flus (la v2 si vous préférez). Je dirais à la louche que la moitié de mon temps a été passé sur le sujet. J’avais besoin de me construire une vision claire de ce que je voulais faire, et ça commence à être vraiment pas mal. J’ai hâte de pouvoir en parler plus longuement !

Si vous souhaitez en avoir un avant-goût, je prévois de faire un atelier lors du prochain Contribatelier grenoblois (le 17 mars prochain). Il s’agira pour moi de recueillir vos expériences autour de la façon dont vous vous informez en ligne. On pourra en profiter pour discuter autour du projet.

Rythme de publication

Vous l’aurez sans doute noté, j’ai moins écrit dans le carnet ces derniers temps avec un unique article en février pour annoncer les cafés-formation. Comme j’ai travaillé ce mois-ci différemment par rapport à d’habitude, je n’ai pas appliqué mes routines habituelles et je me suis fait un peu de place mentale en ne m’imposant pas un rythme de publication hebdomadaire.

Les chiffres

  • 10 comptes créés ;
  • 6 abonnements annuels + 3 abonnements mensuels pris ;
  • 189 € de chiffre d’affaires.

Je ne serais pas étonné que le nombre plus faible de comptes créés soit lié à la baisse de fréquence dans mes publications. Le chiffre d’affaires quant à lui est similaire à celui du cycle précédent.

Ça reste assez faible mais comme je l’ai expliqué la fois dernière, je ne suis pas inquiet. Je vois par ailleurs des liens vers flus.io apparaitre peu à peu sur le Web. On m’a dit qu’on avait parlé de Flus sur une webradio « traitant des divers modèles économiques possibles pour les logiciels libres ». La personne me l’ayant indiqué ne se souvenait par contre pas de la webradio, donc si vous avez le lien, je suis intéressé ! 😊

Cafés-formations

Marien / le 12 février 2020 / permalien

Flus est un portail d’agrégation de contenu qui a pour but de vous aider à vous tenir au courant de l’actualité. C’est un outil possédant de nombreuses fonctionnalités, parfois un peu cachées, et nécessitant un temps d’apprentissage plus ou moins long selon les personnes.

Partant du constat que plusieurs personnes m’ont dit être intéressées, mais qu’elles auraient besoin d’un coup de main pour démarrer, je propose désormais des cafés-formation.

Le principe est simple. Vous aimeriez utiliser Flus mais ne savez pas comment démarrer ? Alors contactez-moi pour qu’on aille prendre un café (ou un thé, l’important est qu’il s’agisse d’un moment de détente). Sur un temps d’une à deux heures, je vous montre et vous aide à bien démarrer avec Flus : création d’un compte, suivi de sites d’actualité, découverte des fonctionnalités de base, etc. En fonction du temps que l’on prend, on pourra creuser de plus en plus loin dans les fonctionnalités. Je pourrai également vous présenter les travaux futurs que j’envisage pour rendre Flus plus grand public.

Je réserve pour l’instant cette offre aux personnes se trouvant dans la région grenobloise (pas besoin d’y vivre, si vous êtes de passage ça marche aussi !) Vous pouvez venir seul·e ou accompagné·e d’une à deux personnes. Aucun pré-requis n’est nécessaire pour participer autre que de savoir utiliser un ordinateur, savoir aller sur Internet et d’avoir un intérêt pour l’actualité.

Dernière chose importante : ces cafés-formation sont gratuits, alors n’hésitez pas !

Demander un café-formation

Récap #2 : chiffres et avenir

Marien / le 27 janvier 2020 / permalien

Je lançais Flus le 28 novembre dernier, mon service de suivi de l’actualité. Pour rendre compte de son évolution, j’ai décidé de faire des points d’avancement à intervalle régulier. Le premier récap’ retranscrivait le lancement de mon activité. Six semaines ont passé et il est temps du second récap’ !

Cette fois-ci je n’ai pas pu utiliser ma sixième semaine de cycle pour travailler un sujet particulier (j’avais creusé le protocole WebSub la dernière fois), je remets ça à une prochaine.

Flus en quelques chiffres

J’expliquais lors du premier récap’ être un peu mitigé sur le nombre d’utilisateurs et utilisatrices du service : 75 comptes avaient été créés en l’espace de 2 semaines et demie, et 8 personnes avaient commencé à payer. Six semaines plus tard les chiffres ont augmenté lentement :

  • 34 comptes créés ;
  • 7 abonnements annuels + 2 abonnements mensuels pris ;
  • 216 € de chiffre d’affaires au total ;

Cette faible hausse n’est pas vraiment dramatique pour moi, je m’y attendais. La première raison est que ma visibilité est mécaniquement plus restreinte une fois l’annonce passée : j’ai encore besoin de me faire connaître. La deuxième est liée au fait que le domaine des agrégateurs de flux RSS représente un marché de niche déjà grandement occupé par de l’auto-hébergement et en expansion nulle (voire négative). Ce n’est pas une surprise, c’est d’ailleurs ce que j’avais identifié quand j’ai étudié la viabilité de mon projet. Je savais que je ne pourrai pas vivre d’un simple service d’agrégation et c’est pourquoi je suis en train de travailler à préparer la « suite ». Je ne vous en parle pas immédiatement, ça prendra quelques mois à se mettre sur pied.

Mais j’ai hâte.

Les améliorations du service

J’ai décrit mon infrastructure dans un billet le 20 décembre dernier. Le principal changement étant survenu depuis est l’exécution des sauvegardes automatiques à l’aide de Borg. Elles sont maintenant journalières, chiffrées et exportées chez un hébergeur différent (rsync.net). Je suis bien plus serein désormais, il me sera plus facile de récupérer l’état de la base de données ou d’un fichier comme cela. Autre ajout : pgBadger qui me permet de surveiller les performances de la base de données. Pas très utile pour l’instant puisque FreshRSS est déjà très bien optimisé.

Pour les utilisateur·ices de Flus, j’ai amélioré les pages d’inscription et de connexion pour leur donner plus d’espace et les rendre plus informatives. On ne savait notamment pas qu’il s’agissait d’un service payant si on tombait directement sur la page d’inscription ; embêtant. J’ai également installé une extension FreshRSS pour améliorer la gestion des flux Youtube, puis développé une fonctionnalité de rappel pour les abonnements arrivant à échéance.

Au niveau de la communauté, j’ai plutôt agi en mode sous-marin en travaillant sur les processus d’équipe. J’ai notamment :

  • configuré une seule branche (master) de développement au lieu de deux (master et dev) (voir le ticket) ;
  • reconfiguré correctement les tests automatiques (ticket) ;
  • ajouté une liste de tâches à vérifier à l’ouverture d’une pull request (ticket) ;
  • relu un petit paquet de code.

Ce qui est agréable dans tout ça c’est que je commence à prendre mes aises dans mon travail quotidien et j’arrive à être de plus en plus efficace dans ce que je fais.

Le récap’

Malgré des chiffres un peu décevants (mais prévus), je suis pressé de vous présenter ce que je prépare pour la suite. Je suis content de voir ce projet qu’est FreshRSS avancer et j’ai hâte de présenter à la communauté le·s futur·s que j’envisage. Il faudra pour cela encore quelques heures de travail à décortiquer et trier mes idées, mais j’ai bon espoir de proposer quelque chose d’aussi bien utile que différent par rapport à ce qu’on a l’habitude de voir.

Évidemment pendant ce temps je continue de maintenir et améliorer le service : ça, ça ne change pas !

Activer les rappels des échéances de paiements

Marien / le 18 janvier 2020 / permalien

Si vous utilisez Flus et que vous avez déjà renouvelé votre abonnement, vous avez peut-être remarqué que le renouvellement ne se fait pas automatiquement chaque mois. Ce choix est principalement technique puisqu’un tel mécanisme est plus compliqué à mettre en place (il faut notamment bien gérer les erreurs). Il est également d’ordre « éthique » puisque cela m’évite de vous facturer si vous n’utilisez pas le service. J’envisage toutefois de permettre le renouvellement automatique sur la base d’un choix volontaire, mais il ne s’agit pas d’une priorité pour moi pour l’instant.

Je comprends toutefois qu’il soit pénible de se retrouver bloqué sans avoir été prévenu que sa période d’abonnement était arrivée à terme. C’est pourquoi j’ai ajouté une fonctionnalité permettant de recevoir à l’avance un courriel prévenant de l’échéance. Le rappel n’est pas automatiquement activé (ça m’évite de vous spammer pour rien) et vous devrez donc le faire par vous-même. Pour cela, rien de plus simple : rendez-vous dans l’onglet « Facturation » du menu global, puis cochez la case « Activer le rappel par courriel à l’approche de l’échéance ».

Capture d’écran affichant la page principale de facturation et affichant la case cochée du rappel de l’approche de l’échéance

Vous recevrez ensuite un courriel 7 jours avant la fin de la période, puis 2 jours avant et enfin le lendemain, attestant de la fin de votre abonnement.

Bon à savoir : vous pouvez renouveler votre abonnement à tout moment. La période que vous choisirez s’ajoute aux jours qu’il vous reste au sein de votre abonnement courant. Ainsi, s’il vous reste 5 jours avant l’échéance de votre abonnement actuel et que vous renouvelez pour 1 mois, vous pourrez utiliser Flus pendant encore 35 jours (ou 36… ou 34… enfin vous avez compris, ça dépend du mois).

Pourquoi utiliser un agrégateur en ligne ?

Marien / le 15 janvier 2020 / permalien

Depuis que j’ai commencé mon activité avec Flus (et même avant, lors de la publication de mon questionnaire), une remarque m’a été faite plusieurs fois : « Je ne comprends pas l’intérêt d’utiliser un agrégateur en ligne alors qu’on peut en avoir un directement sur son PC ». Je profite donc de cet article pour tenter d’y apporter une réponse, cela me servira de référence à l’avenir.

Tout d’abord je précise que je ne cherche aucunement à vous convaincre que les agrégateurs en ligne sont « meilleurs », bien au contraire. J’ai toujours milité pour que chacun et chacune trouve chaussure à son pied : si vous êtes comblé·e par Liferea ou QuiteRSS (deux agrégateurs populaires sur ordinateur), vous auriez tort de changer !

Le nœud de l’incompréhension se situe en fait dans un besoin que vous n’avez pas : si vous consultez vos flux d’information depuis un seul endroit (votre ordinateur) il y a des chances pour qu’un FreshRSS ne vous soit pas très utile. Toutefois, les usages se sont beaucoup déplacés sur mobile et il n’est pas rare de vouloir consulter des articles de presse dans les transports. On peut également vouloir lire 2 ou 3 articles au boulot, mais on n’a pas forcément envie, une fois rentré le soir, de refaire le tri dans ce qui a été lu en journée. C’est là l’avantage principal des agrégateurs en ligne : étant accessibles de n’importe où, vous gardez vos articles synchronisés quel que soit l’endroit d’où vous les consultez.

Un second avantage, moins évident car moins pressant et moins répandu, c’est la capacité à recevoir les nouveaux articles dès leur publication, grâce à WebSub. En effet, ce protocole requiert que votre agrégateur soit tout le temps accessible à une adresse publique en ligne. Je parlais d’ailleurs de WebSub dans mon récap’ de décembre.

Le dernier point qui me semble important est la possibilité de créer de nouveaux usages. Il est vrai que jusqu’à maintenant les agrégateurs en ligne se contentent globalement de reproduire ce qui existe déjà sur PC, mais cela ne signifie pas que l’on doive s’en contenter. Mes envies depuis longtemps sont de repenser les fonctionnalités que doivent avoir ce genre de plateformes, avec des choses qui tendent vers plus de social et de partage.

J’aurai tout le temps de revenir là-dessus dans les mois qui viennent.

Et Flus dans tout ça ? Il s’agit effectivement d’un agrégateur en ligne, mais qui plus est payant ! Il faut bien avouer que ça peut paraître farfelu puisqu’il existe déjà des alternatives gratuites. J’ai toutefois créé cette plateforme pour deux raisons :

  1. proposer une instance de référence pour FreshRSS, maintenue par l’un des mainteneurs principaux du logiciel, donc en principe très bien tenue ;
  2. me libérer du temps pour améliorer FreshRSS (et oui, puisque plus je fais de chiffre d’affaires et moins j’ai besoin de travailler à côté pour pouvoir me loger et me nourrir).

Les personnes qui voudraient utiliser un agrégateur en ligne, mais qui n’ont pas le temps ou les compétences d’en gérer un elles-mêmes, ont donc un service de qualité et de confiance à disposition. Et de mon côté, je dispose de tout le temps que je veux pour imaginer et développer le futur de FreshRSS.

Il me semble que tout ceci justifie amplement l’utilisation d’un agrégateur en ligne et, en l’occurrence, l’intérêt de Flus 😇.

Comment suivre des chaînes Youtube depuis Flus

Marien / le 09 janvier 2020 / permalien

Si comme moi vous appréciez les vidéos de vulgarisation, vous avez sans doute constaté qu’il y en a à foison sur Youtube. Vous avez alors peut-être été tenté·e de vous créer un compte Google pour pouvoir vous abonner à vos chaînes favorites afin de ne rien rater.

Aujourd’hui, je vous propose une alternative grâce à Flus.

Il faut savoir que Youtube génère (pour le moment encore 🤞) des flux RSS pour ses chaînes. Le problème est qu’ils sont cachés et donc compliqués à trouver pour des utilisateur·ices lambda. Les URL de ces flux sont de la forme :

https://www.youtube.com/feeds/videos.xml?channel_id=<identifiant de la chaîne>

ou bien :

https://www.youtube.com/feeds/videos.xml?user=<nom d’utilisateur>

L’identifiant ou le nom d’utilisateur peuvent être trouvés dans l’URL de la page d’accueil de la chaîne. Par exemple, pour la chaîne Scilabus (que je recommande au passage), la page principale est la suivante :

https://www.youtube.com/user/scilabus

Il s’agit ici d’un nom d’utilisatrice, son flux RSS se trouve ici :

https://www.youtube.com/feeds/videos.xml?user=scilabus

Jusqu’à maintenant je me contentais de construire ces adresses à la main pour les ajouter à Flus, mais c’était fastidieux. Un ticket ouvert il y a un peu plus d’un an sur le bugtracker de FreshRSS demandait à ce que les URL des chaînes Youtube soient automatiquement transformées et une extension était en bonne voie pour intégrer cela. Malheureusement le temps libre des contributeurs étant ce qu’il est, le travail n’a jamais été terminé.

En retombant hier sur ce ticket, je me suis dit qu’il n’y avait pas grand-chose à faire pour le terminer. J’ai donc retroussé mes manches et fini de corriger les derniers détails. Kevin – le mainteneur de ladite extension – a été très réactif et a intégré les changements dans la foulée. J’ai donc pu installer son extension sur flus.io ce matin même.

Pour l’utiliser, rien de plus simple : si vous possédez déjà un compte, il vous faut vous rendre sur la page des extensions et activer l’extension « YouTube/PeerTube Video Feed ». Elle est activée par défaut pour les nouveaux utilisateurs et utilisatrices, vous n’aurez donc rien à faire si vous vous inscrivez à Flus à partir d’aujourd’hui. La prochaine fois que vous voudrez ajouter une chaîne Youtube, Flus se chargera de trouver l’adresse de son flux RSS tout seul.

L’extension de Kevin permet également de regarder la plupart des vidéos directement depuis Flus. Cependant, certaines ne peuvent être vues que depuis Youtube, il vous faudra donc quand même vous rendre sur la plateforme.


Si vous hébergez vous-même un FreshRSS, vous pouvez télécharger et installer l’extension « YouTube/PeerTube Video Feed ».

Edit : on me souffle dans l’oreille que le flux de certaines chaînes était détecté correctement. Ce n’est pas le cas pour toutes les chaînes (j’ignore pourquoi), l’extension reste donc intéressante.

De l’importance de la syndication

Marien / le 02 janvier 2020 / permalien

La syndication de contenu est le moyen par lequel les articles de différents sites sont agrégés et présentés en un seul endroit. Mon service, flus.io, est donc un outil de syndication. Cela est rendu possible principalement par deux formats de données : Atom et RSS. Il s’agit de simples fichiers texte (appelés « flux ») contenant des articles, formatés de manière standardisée pour que n’importe qui puisse développer des outils faisant usage de ces fichiers. Il y a longtemps eu des débats pour savoir lequel de RSS ou Atom était le mieux ; en vérité, cela n’avait que peu d’intérêt puisqu’ils en sont aujourd’hui au même point : considérés comme obsolètes, ils sont peu à peu abandonnés.

Pourtant, tout l’intérêt de la syndication n’a jamais été technique. Quels outils tirent réellement parti des avantages de l’un ou de l’autre de ces formats ? À trop s’attacher aux détails techniques, on en a perdu les objectifs.

La syndication permet avant tout :

  1. d’économiser notre temps en nous évitant de devoir naviguer de site en site pour trouver lesquels ont publié de nouveaux articles ;
  2. de nous laisser le choix de l’outil de lecture (tant que les articles ne sont pas tronqués) ;
  3. de permettre des usages différents de ceux imaginés à l’origine.

Je vais m’attarder sur ce dernier point car c’est pour moi le plus important. Prenons par exemple un article d’actualité : il est publié uniquement pour être lu, sans autre contexte que celui donné par son auteur ou son autrice. Syndiqué, cet article offre déjà plus de possibilités : un agrégateur comme Flus va permettre aux lecteurs et lectrices de le placer dans une liste de favoris par exemple, ou de le retrouver par un système de recherche plus poussé que celui du site d’origine. On voit qu’on a déjà gagné deux nouveaux usages. Les agrégateurs de flux ont tendance à se répéter et se ressembler, mais on pourrait aller plus loin :

  • créer et publier des dossiers thématiques d’articles, permettant de comparer le traitement de l’information à travers le temps et des sources différentes ;
  • créer un réseau social distribué, bénéficiant immédiatement du contenu de la vaste majorité des sites existants ;
  • mettre en avant les sujets les plus discutés à travers l’ensemble des sources suivies ;
  • permettre de retrouver l’origine d’une tendance dans le temps (l’usage d’un mot par exemple) ;
  • et j’en passe sans doute !

La syndication permet d’ouvrir vos sites et blogs sur l’extérieur en autorisant le remix de vos contenus, tout ça à un coût dérisoire.

À l’heure des fake news et de l’instantanéité des échanges courts favorisant des réactions à chaud, ne pourrait-on pas imaginer de nouveaux outils tirant parti des technologies de syndication et proposant des usages plus adaptés à notre époque ? Je m’efforcerai de traiter cette question plus en profondeur dans de futurs articles.

Gardez en tête que protéger un Internet libre, décentralisé et ouvert, c’est aussi défendre les technologies de syndication.

Carnet sur WebSub

Marien / le 29 décembre 2019 / permalien

Un court article pour annoncer que ce carnet, ainsi que le site de statut fonctionnent désormais avec WebSub. Vous devriez donc désormais recevoir les nouveaux articles dans vos agrégateurs d’actualité préférés immédiatement dès la publication, sans aucun temps d’attente. Ceci est vrai en tout cas pour les agrégateurs supportant le protocole WebSub, tel que FreshRSS (et donc flus.io).

J’ai en effet terminé une première version fonctionnelle de mon hub, Webubbub. Il y aurait encore un peu de boulot, mais je vais me reconcentrer sur FreshRSS pour les prochains jours.

Cet article a aussi pour but de vérifier que tout fonctionne correctement 😊 (verdict : oups, y’a un souci et du boulot en perspective)


Avec les fêtes, j’ai un peu de mal à trouver la motivation d’écrire des articles. S’il y a des sujets que vous aimeriez que je traite, des questions que vous vous posez, n’hésitez pas à m’écrire pour m’en faire part !

En attendant, n’hésitez pas à partager Flus auprès de vos proches et collègues si vous pensez que mon travail vaut le coup et que vous souhaitez m’aider.

Stack technique (décembre 2019)

Marien / le 20 décembre 2019 / permalien

Aujourd’hui, billet un peu technique. Je vous explique comment tourne le serveur de Flus. Notez que je fais évoluer l’infrastructure au fur et à mesure pour améliorer la sécurité et en fonction des besoins. Cet article sera donc vrai à un instant T mais deviendra probablement obsolète d’ici quelques semaines. Je m’engage à vous expliquer les changements survenus au minimum tous les ans.

J’ai encore des tas de chantiers en cours, mais il me semble que décembre est un bon point de repère pour faire le point sur l’existant.

Hébergeur et serveur

J’ai fait le choix de prendre un VPS chez l’hébergeur allemand Hetzner, installé sous Debian Buster. C’est l’hébergeur que nous utilisons à Framasoft et j’avais de bons retours dessus. Leur interface est propre et bien plus agréable que celle d’OVH chez qui j’ai la majorité de mes autres serveurs. Je ne voulais pas non plus mettre tous mes œufs dans un même panier. Je n’exclus pas la possibilité de changer pour un hébergeur plus « local » dans le futur.

Mon VPS est un petit CX31 que je vais rapidement faire évoluer vers un CX41, ne serait-ce que pour disposer de 4 CPU. Ceci dit, le serveur tient très bien la charge avec seulement 10 % du CPU utilisé en moyenne, et ne bronche pas même lors de la récupération des articles.

Je dispose également d’un volume supplémentaire de 500Go pour la base de données. J’avais peur que la taille s’envole rapidement, mais elle ne fait toujours qu’à peine 500Mo malgré plus de 100 000 articles stockés. J’ai le temps de voir venir 😉

J’en profite pour remercier encore une fois Alkarex pour son excellent travail et sa vigilance concernant les performances et l’optimisation de FreshRSS !

Installation et dépendances de FreshRSS

FreshRSS ne requiert qu’assez peu de dépendances :

  • un serveur web, en l’occurrence nginx ;
  • le langage PHP ;
  • une base de données, ici PostgreSQL ;
  • un serveur de mails (j’utilise mon propre serveur sur une machine séparée, géré avec l’excellent Mailu).

PHP et PostgreSQL sont installés avec Docker. J’ai fait ce choix à la base pour être plus flexible quant aux numéros de versions. De plus j’avais de mauvais souvenirs quant à la configuration de la base de données (mais ça a peut-être évolué depuis). Enfin, j’ai pas mal utilisé Docker professionnellement, je suis donc en terrain connu. J’envisage toutefois de m’en passer à terme pour m’éviter une couche pas indispensable et pour simplifier la maintenance.

FreshRSS est quant à lui installé grâce à Git ce qui me simplifie grandement les mises à jour.

Monitoring

J’assure la surveillance du serveur de deux manières complémentaires pour l’instant, en attendant mieux.

La première est l’outil de suivi intégré à l’interface de Hetzner qui permet de suivre quelques métriques comme l’évolution du CPU et du réseau.

J’ai aussi installé Glances pour avoir une meilleure vision de ce qui se passe sur le serveur (notamment pour surveiller l’espace disque). J’ai créé un petit script Python pour m’envoyer un courriel ainsi qu’un SMS en cas de problème. Ce n’est pas encore une solution suffisante notamment parce que je n’ai pas d’historique de ces métriques, et que si le serveur tombe, Glances devient également injoignable. Cette solution avait toutefois l’avantage d’être très simple à mettre en place.

J’améliorerai tout ça avec des outils plus adaptés sur un serveur séparé plus tard.

Sauvegarde des données

Je paye à Hetzner un supplément de 20 % du prix initial du serveur pour qu’ils en assurent des sauvegardes journalières. La méthode pour restaurer un backup ne me convient guère car je suis obligé de créer une nouvelle machine pour pouvoir accéder aux données sauvegardées. C’est du tout ou rien !

Je complète donc cette sauvegarde avec un script rsync sur ma machine dont le disque est chiffré.

Ce n’est clairement pas une solution satisfaisante et c’est mon prochain chantier. Je pense partir sur Borg, là encore sur un serveur séparé, probablement chez un autre hébergeur.

Divers

Ce blog, « carnet de flus » ainsi que la page de statut du service sont des sites créés avec mon propre générateur de sites statiques, Boop!. Ils sont synchronisés depuis mon PC avec rsync.

Le HTTPS de tout ce petit monde est géré avec Certbot qui me génère des certificats Let’s Encrypt.

J’ai installé Fail2Ban pour mettre à la porte les robots et autres spammeurs.

Enfin, tout ça est automatiquement déployé avec Ansible, me permettant de documenter ce qui est installé sur mon serveur et de le répliquer aisément ailleurs si besoin.


Flus est un service d’agrégation de l’actualité. Vous pouvez y suivre la grande majorité des sites d’actualité, blogs et podcasts existants.

En prenant un abonnement à Flus, vous m’aidez à vivre de mon travail et m’encouragez à améliorer un logiciel libre et communautaire : FreshRSS.

Récap #1 : lancement de mon activité, ouverture du service et découverte de WebSub

Marien / le 14 décembre 2019 / permalien

J’ai démarré mon activité de micro-entrepreneur début novembre et, comme je fonctionne par cycles de six semaines, j’arrive à la fin d’une première étape. C’est l’occasion de faire le point sur ce que j’ai fait ces derniers temps. Cet article est le premier de ce qui deviendra peut-être une série si je tiens sur la durée.

Le 04 novembre, début officiel de mon activité

On m’a posé la question plusieurs fois de savoir comment s’était passé les démarches administratives pour ouvrir ma micro-entreprise. J’avais eu personnellement des retours comme quoi cela se faisait facilement, et je peux globalement confirmer.

J’ai fait les démarches dès que je suis rentré de mon voyage en Bretagne, aux alentours du 15 octobre. J’ai rempli le formulaire sur guichet-entreprises.fr (et non celui de l’Urssaf qui est une horreur). J’y avais déjà jeté un œil au préalable et m’étais renseigné auprès de la CCI pour les options dont je n’étais pas sûr. Je pense que je l’ai complété en moins de 30 minutes. J’ai commencé à recevoir des papiers officiels le sur-lendemain de ma déclaration et tout était en place en moins de 2 semaines.

Il y a eu un petit couac avec la banque, et un plus gros avec mon prestataire de paiement initial ce qui a repoussé l’ouverture officielle. Rien de bien méchant, mais j’étais un peu fâché du délai supplémentaire. J’ai raconté tout ça ici.

Lancement public du service le 28 novembre

Si j’avais ouvert les inscriptions quelques jours auparavant, je n’ai annoncé l’ouverture de Flus que le 28 novembre, soit presque 4 semaines après le début de mon activité.

La réception a été bonne, quoique assez limitée. Je suis un peu mitigé sur le résultat : 75 comptes créés, et 8 personnes qui ont déjà commencé à payer (certaines avant la fin de l’échéance du premier mois gratuit, un grand merci à vous !) C’est pas forcément énorme, mais ça reste au-dessus de mes prévisions initiales. Ça représente plus de 200 € de chiffre d’affaires et ça compense mes différents frais sur ce premier mois. Je ne peux pas me plaindre, pourtant j’espérais quand même un peu plus (forcément 😊).

Je réalise concrètement que réussir à vivre de cette activité ne va pas être une mince affaire. Je le savais déjà avant, bien sûr, mais c’est encore autre chose en ayant les mains dans le cambouis. Je relève ce défi avec plaisir bien évidemment et je m’éclate vraiment au quotidien, je découvre et apprend des tas de choses. Si je pars de ma semaine-type :

  • Le lundi c’est administratif, j’organise ma petite entreprise, j’archive les papiers, je réponds ou relance les organismes, etc. Toute une organisation que je n’avais pas.
  • Le mardi, administration système : j’améliore mes outils existants, j’en mets en place de nouveaux, je fais le point sur les performances, l’espace disque restant (je suis large), etc. Ce que je faisais auparavant en amateur, je l’applique à un autre niveau désormais.
  • Le mercredi, je développe. Pour l’instant beaucoup sur des outils qui me seront utiles et assez peu pour la communauté, mais ça devrait s’inverser et j’ai hâte !
  • Jeudi passion communication, sans doute là où j’ai le plus à apprendre. J’essaye de publier un article ce jour-là (éventuellement écrit la veille), mais c’est insuffisant si je veux faire parler de moi. J’ai des pistes d’amélioration sans tomber dans du « forcing », il faut que je les travaille encore.
  • Le vendredi ça dépend, mais j’essaye de faire un tour dans les tickets de FreshRSS voir s’il y a besoin d’un coup de main sur de petites tâches ou sur des choses qui trainent.

Je n’ai pas cité le support car je réponds aux demandes aussitôt que l’on me pose une question (en tout cas dès que je suis disponible). On ne m’a pas encore trop sollicité, mais je reste vigilant.

Dernière semaine chargée : découverte de WebSub

Comme je l’ai indiqué en début d’article, je fonctionne par cycle de 6 semaines. J’adopte un rythme prédéterminé lors des 5 premières (la semaine-type détaillée ci-dessus), et j’utilise la sixième pour travailler à fond sur un sujet donné. Cette semaine, c’était le protocole WebSub.

Pour comprendre ce protocole, il faut savoir qu’habituellement, un agrégateur de flux RSS comme Flus / FreshRSS va questionner à intervalle régulier (par exemple toutes les heures) les serveurs publiant du contenu, même si rien de neuf n’a été publié. Cela induit du trafic inutile et un temps de latence entre la publication et la réception de l’article par un lecteur. WebSub vient se greffer au milieu de tout ça : les auteurs indiquent aux lecteurs un serveur (hub) auquel s’abonner. Lors de la publication d’un article, l’auteur notifie le hub, qui va lui-même envoyer ce contenu aux lecteurs qui s’y sont abonnés.

FreshRSS supporte WebSub depuis des années (il se trouve du côté « lecteur » du protocole), grâce au travail d’Alkarex, mais je n’y avais jamais trop touché. Bien que je comprisse le fonctionnement global, tout ça restait assez nébuleux pour moi. Pourtant, il me semble qu’il s’agit de quelque chose d’assez prometteur et j’avais envie d’en savoir plus. Quoi de mieux alors que de se jeter tête baissée dans la lecture des spécifications et le développement d’un nouveau hub ?

J’avais différents objectifs avec ce projet :

  • apprendre WebSub dans le détail ;
  • améliorer mon niveau en PHP (je me sentais rouillé et pas du tout à la page, en particulier concernant les tests) ;
  • bidouiller un framework web de zéro (parce que pourquoi faire simple quand on peut faire compliqué ?)

Concernant le dernier point, j’en reparlerai peut-être un de ces jours, plus probablement sur mon site personnel.

Au bout d’une semaine assez intense, le résultat est Webubbub (il s’agit de lignes de code, ne cliquez pas si ça ne vous intéresse pas). Le travail n’est pas loin d’être terminé pour avoir un hub fonctionnel et je m’en occuperai rapidement. Concernant mes objectifs, chacun a été rempli haut la main. J’entrevois même des usages de WebSub que je n’imaginais pas avant (reste à trouver des cas utiles !) Il s’agit d’une technologie vraiment intéressante pour corriger certaines limites de RSS et Atom et facile à mettre en place. Elle me permet également d’imaginer une piste supplémentaire pour ma stratégie de communication.

Le récap’

En résumé de cet article, je peux dire que je suis très content d’avoir démarré mon activité. Toutes les étapes de préparation faites en amont m’ont permis de ne pas trop me planter pour l’instant, les quelques couacs initiaux n’étaient pas critiques. Bref, ça se passe bien.

Le plus important reste que je suis à mon compte : je gère mon emploi du temps, mes priorités, ma communication, mon travail comme et quand je l’entends. Je peux donner un sens aux lignes de code que j’écris au quotidien, en sachant qu’elles seront directement utiles à d’autres. Et puis j’apprends des palanquées de nouvelles choses, c’est stimulant !

Bien démarrer avec Flus

Marien / le 05 décembre 2019 / permalien

Alors ça y est, vous venez de vous inscrire sur Flus suite à mon dernier article ? Je vous souhaite la bienvenue et vous adresse un grand merci pour votre confiance ! Vous voici donc devant un écran bien vide, ou tout au mieux avec quelques articles venant de ce « carnet de flus ». Vous vous demandez peut-être par où commencer pour utiliser ce nouveau service au mieux ? Cet article est là pour vous mettre le pied à l’étrier.

Capture d’écran de la page principale de Flus
Il n’y a pas grand-chose à lire par défaut…

Première étape : listez les sites que vous avez l’habitude de lire

Le principe de Flus est d’agréger l’actualité des sites sur lesquels vous vous rendez en un seul et unique endroit. Les articles publiés par ces sites seront tous visibles à la suite les uns des autres dans Flus.

Vous avez peut-être l’habitude de vous rendre sur un certain nombre de journaux en ligne. Sans préjuger de la qualité ni du contenu de ces journaux, certains des plus connus sont par exemple Le Figaro, Le Monde, L’Obs et L’Express. Bien entendu, la liste ne s’arrête pas là et je vous invite fortement à varier vos sources pour profiter de différents points de vue.

Vous allez peut-être également régulièrement sur des sites et blogs liés à une ou plusieurs de vos passions : sport, cuisine, culture ou encore politique ; la liste peut être longue. Listez tous ces sites, par exemple en les notant sur un papier dans un premier temps. Les podcasts sont également de très bons candidats pour votre liste !

Deuxième étape : ajoutez les sites dans Flus

Une fois votre liste faite, rendez-vous sur flus.io, connectez-vous et cliquez sur le bouton « Gestion des abonnements ». Ici, vous verrez des catégories (une seule au début, mais vous pouvez en créer autant que vous voulez). Tout en haut se trouve un champ permettant d’ajouter un flux RSS ; c’est lui qui nous intéresse ici.

Contrairement à ce qu’il pourrait laisser penser, vous pouvez la plupart du temps ajouter directement l’URL des sites qui vous intéressent (celle dans la barre tout en haut de votre navigateur). Flus est en effet capable de trouver le flux RSS associé à condition que le site soit correctement configuré.

Vous n’avez plus qu’à aller sur chacun des sites que vous avez listés lors de la précédente étape, copier-coller leur adresse dans le champ « Ajouter un flux RSS » et valider en cliquant sur le bouton « + ». Si tout se passe bien, vous devriez voir apparaître un panneau permettant de configurer la source. Vous pouvez le fermer pour l’instant en cliquant à l’extérieur, et passer au site suivant dans votre liste. En cas d’erreur, pas de panique, c’est l’objet des parties suivantes.

Capture d’écran de la page de configuration d’une source
Le panneau de configuration est très complet, mais vous aurez rarement besoin d’y toucher. Contentez-vous de cliquer dans la zone à gauche pour le fermer.

Troisième étape : trouvez les flux des sites mal configurés

Lors de vos tentatives d’ajouts, il y a de fortes chances que Flus vous ait indiqué qu’il n’était pas capable d’ajouter certains sites. Cela signifie soit qu’ils sont mal configurés (il va falloir trouver les adresses des flux), soit qu’ils ne possèdent pas du tout de flux RSS.

La première chose à faire est de rechercher sur le site concerné : il est possible qu’il y ait un lien quelque part indiquant où trouver le flux RSS. Si vous ne trouvez pas de lien en un clin d’œil, vous pouvez utiliser la fonction « Rechercher » de votre navigateur Internet (le fameux raccourci ctrl + f). Si vraiment rien n’y fait, recherchez dans votre moteur de recherche préféré le nom du site, suivi du terme « RSS ». Si une telle page existe, elle devrait apparaître. Si tel n’est pas le cas alors je suis désolé, mais je ne peux pas y faire grand-chose ! 😞 Dans le doute, vous pouvez toujours essayer de contacter les personnes gérant le site.

Dans certains cas, les sites peuvent proposer plusieurs flux RSS différents, organisés par thème (c’est souvent le cas pour les journaux en ligne). C’est à vous de choisir en fonction de vos goûts. Cela peut être pratique pour ne pas être bombardé par de nombreux articles chaque jour.

Une fois l’URL du flux RSS en votre possession, vous n’avez plus qu’à l’ajouter dans Flus, comme précédemment.

Quatrième étape : corrigez ou remontez les dernières erreurs

Malgré vos tentatives, certains flux peuvent être récalcitrants et Flus refusera de les prendre en compte. C’est le cas de quelques sites mal configurés. Il est parfois possible de les ajouter en rajoutant à la fin de l’URL la chaîne #force_feed. Ce qui donne par exemple :

https://flus.io/carnet/feeds/all.atom.xml#force_feed

Il faut néanmoins attendre un petit peu après une tentative échouée – de l’ordre des 15 ou 30 minutes – afin que le cache se vide (ce sera sans doute amélioré un de ces jours).

Si rien n’y fait, alors vous pouvez au choix :

Sachez tout de même qu’il y a de très fortes chances que le problème vienne du site en face.

Dernière étape : profitez

Lorsque vous aurez terminé d’ajouter tous les sites qui vous intéressent, vous n’aurez plus qu’une chose à faire : lire !

Dans un premier temps, la liste des articles non lus risque d’être très longue et je vous recommande de tous les marquer comme lus dans un premier temps. Si vous souhaitez en lire certains plus tard, n’hésitez pas à les ajouter à vos favoris (la petite étoile à gauche) : ils s’ajouteront dans le menu « Favoris » à gauche et vous pourrez ainsi les retrouver plus facilement.

Enfin, vous n’aurez plus qu’à revenir régulièrement sur flus.io pour lire les articles qui auront été publiés par les différents sites que vous suivez. Vous n’avez désormais plus besoin de naviguer de site en site et vous ne raterez plus aucun article important : tout se passe dans Flus maintenant !


Si vous trouvez tout cela fastidieux, je serai ravi d’avoir vos retours, écrivez-moi !
En prenant un abonnement à Flus, vous m’aidez à vivre de mon travail et m’encouragez à améliorer un logiciel libre et communautaire : FreshRSS.

Ouverture de Flus, un service d’agrégation de l’actualité

Marien / le 28 novembre 2019 / permalien

J’ai le plaisir d’annoncer aujourd’hui publiquement l’ouverture de ma plateforme d’agrégation de l’actualité, Flus. En vous y créant un compte, vous pourrez suivre la grande majorité des sites d’actualité, blogs et podcasts existants.

Capture d’écran de la page principale de Flus

Voilà quelques années que j’ai réalisé que l’information n’est pas une donnée objective. Elle est toujours perçue, analysée, comprise, synthétisée puis présentée par une personne ayant un vécu, des émotions et des sensibilités différentes des nôtres. Alors ajoutez à cela une plateforme qui concentre, trie et choisit pour vous quelles informations doivent vous parvenir, et vous voilà bien parti pour vous enfermer dans une bulle de filtres conçue sur-mesure. C’est le fonctionnement notamment de Twitter qui, en personnalisant toujours plus ce que vous voyez, vous enferme dans votre propre vision du monde. Il vous devient ainsi plus compliqué d’adopter le point de vue d’autres personnes. Couplé à une instantanéité d’échanges courts, vous obtenez un cocktail détonnant pour exacerber des tensions artificiellement, et tout cela au profit d’une société privée.

On comprend dès lors l’importance de pouvoir s’informer de manière calme et plus « éclairée », en restant maître·sse de l’information qui nous parvient. Des solutions existent déjà depuis des années, basées sur des technologies reconnues et libres de « syndication » telles que les formats RSS et Atom. Leur principe est simple : plutôt que de passer par un intermédiaire pour récupérer et trier le contenu pour vous, vous accédez à la source même où il est produit.

Le problème de ces technologies est qu’elles sont bien souvent méconnues du public, ou bien délaissées car considérées comme désuètes face aux nouveaux usages instantanés qu’ont imposé des mastodontes tels que Twitter et Facebook. Ce serait confondre technologies et usages : il est possible – et indispensable – d’améliorer et de compléter les outils existants basés sur RSS et Atom afin de revoir notre rapport à l’information et, in fine, notre rapport au monde.

Consacrer son énergie à améliorer un bien commun

Flus ne sera sans doute pas au niveau de Twitter dans l’immédiat, mais cela ne signifie pas que le service est naze, loin de là ! Je ne suis sans doute pas très objectif en disant cela – j’en suis le développeur initial – mais FreshRSS, le logiciel derrière le service, est sans doute l’un des meilleurs agrégateurs d’actualités existants aujourd’hui. Les retours qui sont faits à la communauté depuis des années sont très encourageants. Toutes les fonctionnalités de base que l’on peut espérer d’un tel outil sont là, et certaines existent rarement ailleurs (au hasard, la génération dynamique de flux RSS basée sur une recherche par exemple). En utilisant Flus, vous aurez à disposition un outil véritablement puissant et qui marche bien.

Cela ne m’empêche pas d’avoir conscience que certaines fonctionnalités mériteraient d’être améliorées et c’est l’intérêt de proposer un service payant. Le logiciel libre n’est jamais totalement gratuit : il s’agit de développeurs et développeuses qui offrent de leur temps. Or, le temps est quelque chose de compliqué à trouver pour une large majorité d’entre nous car il faut bien se nourrir également. Mon envie est simple : faire en sorte que le temps que je passe à améliorer FreshRSS (et donc Flus) me permette de me loger et de me nourrir. Ce temps ainsi libéré me permettra donc de travailler sur FreshRSS. J’ai déjà une belle liste d’idées de fonctionnalités à améliorer ou ajouter, dont certaines que l’on ne trouve nul par ailleurs. Bien entendu, cela se fera en accord avec la communauté et je serai très vigilant à toujours travailler main dans la main avec elle.

Ce que je trouve le plus enthousiasmant dans ce modèle, c’est le fait de pouvoir vivre de mes contributions à un bien commun. J’ai toujours été attiré par le libre pour une raison très simple : il s’agit de quelque chose de désintéressé qui nous dépasse toutes et tous. En développant ce type de logiciel, nous contribuons à un bien qui pourra être réutilisé ensuite par n’importe qui.

Proposer une plateforme de confiance et ouverte ? Chiche !

Twitter est un outil fantastique : il est pratique, léché, confortable. Mais tout cocon technologique soit-il, n’êtes-vous pas gêné par cette petite voix qui vous pousse à revenir sans cesse alimenter une gigantesque base de données privée sur laquelle vous n’avez aucun contrôle ? Ne vous y trompez pas, cette petite voix est tout à fait artificielle : elle est conçue, taillée et orientée pour vous inciter à revenir encore et encore.

Flus n’a pas pour objectif de rivaliser avec cet outil d’un point de vue confort d’utilisation. En revanche, je lui prête ma voix. Lorsque vous lisez « je » sur la page d’accueil, ou dans un article de ce carnet, cela se réfère à ma personne, Marien Fressinaud. En utilisant Flus, vous avez une personne en face de vous que vous pouvez interpeler par courriel, ou proposer d’aller manger un bout pour discuter si vous êtes vers Grenoble. Il ne s’agit pas d’un « je » artificiel qui a pour but de cacher la dernière startup à la mode ; c’est pour moi un véritable gage de transparence vis-à-vis de vous. Quelque chose vous gêne sur le service ? discutons-en ! Aussi, jamais cette « voix » ne tentera de vous manipuler pour vous pousser à utiliser le service sauf à être moi-même manipulateur !

Flus possède non seulement ma voix, mais ses rouages sont visibles. En basant le service sur le logiciel libre FreshRSS, vous avez là une condition nécessaire pour vérifier que je ne fais rien dans votre dos. Le logiciel étant communautaire, vous avez également la possibilité d’influer sur la direction qu’il doit prendre : le code est bel et bien au service des utilisateurs et des utilisatrices.

Cela est-il suffisant pour que vous m’accordiez votre confiance ? À partir du moment où vous confiez vos données à un tiers, il me semble qu’il existe toujours un risque pour vous. Qui vous assure que je ne serai pas racheté dans quelques années par une société dans laquelle vous aurez légitimement moins confiance ? C’est pour cela qu’il est important que vous puissiez quitter le service à n’importe quel moment avec vos propres données. C’est une fonctionnalité importante de Flus : il vous est possible d’exporter vos abonnements et vos articles pour les récupérer sur un autre serveur que le mien. Ainsi, vos données vous appartiennent véritablement !

Face aux grandes surfaces « digitales », s’assumer petit producteur du numérique

En ouvrant Flus, je n’ai à aucun moment l’intention de rivaliser avec des géants déjà bien installés, le risque est bien trop grand de se perdre en route. Le chemin que je compte emprunter est tout autre.

Ces dernières années, les GAFAM (acronyme pour Google Amazon Facebook Apple et Microsoft) ont imposé une certaine vision du web : de grosses plateformes confortables et « gratuites », semblant répondre parfaitement aux attentes de leurs usagers. En participant à l’association Framasoft, j’ai toutefois aidé à démontrer les dangers et enjeux que posent ces géants, notamment à travers la campagne « Dégooglisons Internet ». Ce n’est pas le web dont je rêve.

J’ai grandi dans un milieu agricole : mes parents cultivent des vergers de petits fruits rouges ; ma mère vend en direct, sur les marchés, ou dans des magasins de producteurs. Voir ses client·es discuter avec elle a toujours été quelque chose de normal et d’attendu pour moi. J’ai mis du temps avant de constater le gouffre de mentalité que cela implique avec la « norme » des grandes surfaces. Je trouve malheureusement que le parallèle est compliqué à faire avec Internet : seules les grandes enseignes sont visibles et véritablement connues. Je crois néanmoins qu’il est temps de faire (re-)émerger les petits producteurs du numérique face aux grandes surfaces « digitales ».

Il n’est plus question de faire pareil mais en mieux : il faut proposer de réfléchir différemment ; redonner de la place aux petits acteurs indépendants et coopérant ; rappeler qu’il y a des humain·es derrière chacun des outils que nous utilisons ; replacer la confiance et les échanges au centre de nos vies numériques. Il s’agit là de la vision à laquelle j’ai envie de participer.

Avec Flus, je propose cela : une plateforme d’agrégation de l’actualité, transparente et de confiance qui assume sa part d’humanité tout en proposant un service « utile ». J’espère que les promesses faites dans cet article, ainsi que les fonctionnalités de Flus, saurons vous convaincre de soutenir financièrement la plateforme. L’enjeu principal pour moi tout au long de l’année à venir va être de prouver que mon modèle est viable, voire qu’il s’agit de l’un des chemins les plus agréables à emprunter pour celles et ceux qui voudraient vivre de logiciel libre.

Je vous donne rendez-vous sur flus.io pour la suite de l’aventure !

Le micro-entrepreneur, la banque et le prestataire de paiement

Marien / le 21 novembre 2019 / permalien

Voilà deux mois que je n’ai pas donné de nouvelles sur ce carnet. Lors du dernier épisode, j’expliquais pourtant qu’il ne me restait quasiment plus qu’à ouvrir les inscriptions de Flus, mais qu’avant ça je m’éclipsais pour environ un mois de vacances. Une fois rentré, tout ne s’est néanmoins pas passé comme je l’espérais.

Cet article a pour but d’expliquer pourquoi je n’ai toujours pas annoncé publiquement l’ouverture de Flus. Il permet également d’illustrer comment nous restons dépendant·es des autres : le retard peut s’accumuler malgré des démarches réalisées dans les temps. Je ne suis toutefois pas à plaindre, la situation n’est pas si pire 😉

La première chose que je voulais faire avant d’écrire un nouvel article, était de démarrer mon activité de micro-entrepreneur. J’ai fait les démarches directement en rentrant de vacances, pour une ouverture quelques semaines plus tard, le 4 novembre. Cela devait me laisser le temps de contacter également une banque pour ouvrir un compte (dossier rempli le 22 octobre, déposé à la Poste le lendemain) et configurer le système de renouvellement à travers le prestataire de paiement PayPlug (ce qui était fait le 31 octobre).

Bref, un plan bien rôdé qui ne devait souffrir d’aucun accroc… ou presque !

La première chose que je n’avais pas prévu, c’est que mon dossier pour la banque allait se perdre dans les tuyaux. Notez l’exploit puisque je l’ai déposé à la Poste à destination de la Banque Postale. Je ne me suis pas inquiété immédiatement de la non-réponse de la banque, me disant que cela prenait légitimement du temps. Problème : en appelant le 4 novembre il s’est révélé que mes documents n’étaient pas arrivés. Une très sympathique personne (merci à elle !) m’a filé une adresse courriel pour tout de même envoyer mon dossier par voie numérique afin de me débloquer, quitte à devoir renvoyer des documents par courrier. Cela a encore pris une semaine, mais j’ai fini par recevoir la confirmation que tout était bon (mon chèque envoyé initialement par la Poste a même été encaissé, tiens tiens 😏).

Cela m’a permis de terminer mon dossier pour PayPlug le 14 novembre. Mais vous vous en doutez, un second contre-temps a pointé le bout de son nez puisque dès le lendemain je recevais leur réponse : « Votre compte PayPlug a été désactivé ». Ah. Ici, pas moyen d’avoir une réponse précise sur la raison de ce refus et ma relance pour vérifier qu’il ne s’agissait pas d’une erreur a reçu une fin de non-recevoir.

Après avoir un peu ronchonné sur Mastodon, on m’a conseillé deux solutions :

  • passer par Stripe, ce à quoi j’avais déjà pensé, mais je voulais privilégier une boite française (et PayPlug semblait au niveau) ;
  • utiliser un terminal de paiement virtuel, en m’adressant directement à ma banque.

Après avoir contacté ma banque, il se trouve qu’il me faudra encore ajouter deux semaines de délais, payer 300 € supplémentaires de frais de mise en service et remplir un dossier de 40 pages. Du côté de Stripe, j’en aurai pour environ une journée de travail pour permettre les paiements. Les coûts par transaction sont toutefois un peu plus élevés, mais en fait moins que ce que j’avais provisionné initialement.

En conclusion, je vais donc d’abord partir sur Stripe pour pouvoir ouvrir les portes de Flus en grand rapidement, puis j’intégrerai peut-être plus tard la solution de ma banque pour m’éviter un intermédiaire.

Et concernant ce carnet, je vais reprendre le rythme hebdomadaire pour sortir des articles. À la semaine prochaine !

6 semaines plus tard

Marien / le 19 septembre 2019 / permalien

On est quasiment à un mois de mon article qui fixait quelques-uns de mes objectifs à court terme, voyons où j’en suis dès aujourd’hui.

D’un point de vue administratif, il me reste à déclarer la micro-entreprise et faire les démarches qui en découlent (ouverture d’un compte en banque, mutuelle, etc.). Je me suis tout de même renseigné auprès de la CCI pour obtenir toutes les informations qui me posaient problème, tel que le choix du domaine d’activité. Y’a plus qu’à, mais je ne l’ai pas encore fait pour la raison que je donne en fin d’article.

J’ai également rédigé et intégré les premières versions des mentions légales, CGU et CGV. Il y aura sans doute une seconde passe, mais j’ai déjà fait de mon mieux pour les rendre lisibles… ce qui avait la lourde implication de m’empêcher de recopier ce qui existe ailleurs (j’ai tout de même tiré des choses des CGU de Framasoft ainsi que de la charte des CHATONS). À terme j’aimerais bien placer ces documents sous une licence libre mais je ne sais pas si c’est pertinent.

D’un point de vue développement pour la communauté, j’ai fait un peu plus que ce que j’avais prévu en :

  • permettant de récupérer et valider des adresses email ;
  • ajoutant de la configuration pour lancer un environnement de développement facilement ;
  • permettant aux administrateurs de configurer les flux par défaut des nouveaux utilisateurs et utilisatrices ;
  • ajoutant la gestion des conditions générales d’utilisation.

L’ensemble de mes pull requests (i.e. des demandes d’améliorations) sont visibles sur GitHub. À cela s’ajoute le développement de l’extension propre à Flus, ainsi qu’un nouveau thème.

Tout est installé et configuré sur un serveur, il ne me reste quasiment plus qu’à ouvrir les inscriptions.

Le programme pour les prochains jours va toutefois être un silence complet de ma part. Je vais profiter de quelques semaines déconnectées en Bretagne, du 23 septembre au 23 octobre (environ). Un mois entier avant de commencer à ouvrir les portes, sans doute d’abord aux personnes qui ont eu la gentillesse de répondre à mon questionnaire en juin dernier, puis rapidement à tout le monde.

Tarification : viser juste

Marien / le 10 septembre 2019 / permalien

J’avais annoncé sur mon blog personnel que je voulais être transparent concernant le choix de la tarification pour Flus. J’ai désormais eu les regards extérieurs que je souhaitais sur mes prévisions et je peux donc arrêter les prix :

  • un abonnement à 3 € par mois ;
  • un abonnement à 30 € par an (soit 2 mois gratuits) ;
  • la période d’essai sera d’un mois.

Une large majorité de personnes ayant répondues à mon sondage privilégiait un abonnement à 1 ou 2 € par mois (plus de 50 %). J’ai longuement hésité à faire le choix du 2 € mais plusieurs arguments m’ont fait préférer augmenter d’un euro.

Calcul d’un objectif de chiffre d’affaires

Les charges, tout d’abord, ne sont pas bien élevées. Il faut compter le coût mensuel des serveurs, les frais des prestataires pour le paiement, les coûts de la banque, de la mutuelle et d’une assurance. Comptez pour tout ça entre 200 et 300 € par mois ; il s’agira de mes dépenses principales. On peut également ajouter les différentes cotisations et taxes, mais je bénéficierai d’aides importantes la première année et le cumul ne devrait s’élever à guère plus de 200 € sur l’année. Je n’ai pas compté l’impôt sur le revenu dans cette équation : ajoutez quand même environ 1 000 €. Bien sûr tout cela est en fonction de mon chiffre d’affaires (CA) donc je pourrais avoir à débourser plus, mais il s’agira alors d’un « bon » problème.

Je prévois également deux dépenses importantes pour la première année : la création d’un logo et l’achat d’un ordinateur portable (2 500 € pour l’ensemble, c’est un peu gonflé mais pas tant).

Enfin, je vise une rémunération de 3 500 € la première année. C’est très peu mais je bénéficierai encore des aides Pôle Emploi qui viendront compenser en partie.

Tous ces chiffres additionnés m’amènent à un CA d’environ 10 000 € à réaliser la première année tout en ayant un résultat positif. J’aime bien : c’est rond, facile à retenir et ça semble atteignable.

Calcul d’un objectif de clientèle

10 000 € de CA, ça correspond à quoi en termes de clients ? Pour mes calculs, j’ai fait deux hypothèses :

  1. 60 % des personnes privilégieront l’abonnement mensuel contre 40 % l’annuel (cette répartition est tirée des réponses à mon questionnaire) ;
  2. la croissance sera linéaire tout au long de l’année (là c’est très théorique, mais ça simplifie grandement les calculs).

L’application de quelques formules de math pas forcément très compliquées mais suffisamment pour que je m’y arrache quelques cheveux me donne les répartitions suivantes en fonction du prix de l’abonnement. Notez que lorsque je parle de « +5 nouveaux abonnements par mois », il faut comprendre que le nombre de nouveaux abonnements augmente de 5 chaque mois (donc +5 le premier mois, +10 le second mois, +15, etc.)

Abonnements 1 € mensuel – 10 € annuel :

  • +13 nouveaux abonnements mensuels par mois
  • +9 nouveaux abonnements annuels par mois
  • soit un total d’environ 1 500 client·es à la fin de l’année

Abonnements 2 € mensuel – 20 € annuel :

  • +7 nouveaux abonnements mensuels par mois
  • +5 nouveaux abonnements annuels par mois
  • soit un total d’environ 800 client·es à la fin de l’année

Abonnements 3 € mensuel – 30 € annuel :

  • +5 nouveaux abonnements mensuels par mois
  • +3 nouveaux abonnements annuels par mois
  • soit un total d’environ 500 client·es à la fin de l’année

Avec ces chiffres, je pourrais me contenter d’estimer ce qui me semble le plus probable de pouvoir atteindre. Évidemment, 500 client·es sont plus faciles à atteindre que 800, mais est-ce que les 800 ne semblent pas tout aussi atteignables ?

Choix d’une tarification viable pour le service

En cantonnant ma réflexion aux éléments ci-dessus, j’aurais plutôt opté pour 2 € par mois mais il ne faut pas oublier que :

  • je bénéficierai d’aides importantes la première année, notamment une forte exonération de mes cotisations sociales qui s’établiront progressivement à 22 % de mon CA tant que je serai en micro-entreprise ;
  • je ne pourrai pas encore me payer convenablement cette première année et mes allocations chômage toucheront ensuite à leur fin ;
  • je serai assujetti à la TVA à partir de 33 200 € de CA, donc au-delà il faudra que je divise mes prix TTC par 1,2 pour correspondre à ce que je toucherai réellement.

J’ai donc fait une projection de mes résultats prévisionnels sur trois ans pour prendre en compte une hausse de mes cotisations et taxes, une augmentation de mon salaire jusqu’à 1 600 € par mois et la prise en compte de la TVA. Cela m’amène à viser environ 2 000 clients la troisième année avec un abonnement à 3 € TTC par mois. Ça tombe bien : ça correspond à la limite que je me fixais implicitement pour pouvoir gérer le support correctement sans être noyé sous les demandes. Si je fais un abonnement moins cher, il me faudra accueillir plus de monde pour pouvoir rentrer dans mes frais ; ce n’est pas ce que je souhaite.

Évidemment, cela me rassure car je peux me fixer des objectifs plus facilement atteignables. Si je suis confiant dans le fait qu’il y ait un minimum de demande, le marché que je vise dans un premier temps est déjà saturé par les personnes qui s’auto-hébergent ou utilisant déjà un service gratuit de flux RSS. Plus je viserai « bas » plus je serai donc en mesure d’atteindre mes objectifs mais tout cela reste pour moi un pari.

Enfin, ce prix ne prend pas en compte mon envie de transformer à terme la micro-entreprise en une autre structure capable d’embaucher pour pouvoir assurer la pérennité du service. J’ai le temps de voir venir d’ici là.


J’ai fait un certain nombre de raccourcis dans cet article et omis quelques détails de calcul. Si vous avez des questions ou des remarques, j’ai mis en place une page ou vous trouverez le moyen de me contacter.

Standards ouverts

Marien / le 03 septembre 2019 / permalien

En basant mon service de suivi de l’actualité sur FreshRSS, je fais le choix de technologies standardisées et ouvertes, à savoir les formats RSS et Atom. Ce choix n’est pas anodin.

Déjà parce qu’il traduit une vision de la société numérique qui est la mienne et que je défends. RSS et Atom sont de formidables portes d’entrée sur les blogs et les sites d’actualités en permettant d’accéder aux listes des articles sous des formats connus (ce sont des standards libres et documentés), répandus (on en trouve partout), ouverts (pas besoin de système d’authentification) et neutres (aucun filtre n’est appliqué dessus par un tiers). Chacun·e peut construire un outil qui ira « consommer » un flux RSS d’une manière différente de celle de son ou sa voisine, selon ses propres besoins.

En construisant Flus, j’espère également montrer que l’on peut vivre d’un service autour de l’actualité qui ne se base pas sur la captation et la manipulation des données. Je me pose fondamentalement en opposition des plateformes telles que Facebook et Twitter qui, sous couvert d’« expérience utilisateur améliorée », enferment leurs utilisateurs et utilisatrices dans des bulles créées par des intelligences plus qu’artificielles. Je crois que la transparence des algorithmes est fondamentale pour ne pas se sentir manipulé·e (à défaut de l’être).

Ces choix rendent évidemment mon entreprise plus fragile puisque je ne peux pas enfermer mes utilisateurs et utilisatrices dans un énorme silo. Mais je crois que c’est surtout l’assurance que je ferai toujours de mon mieux pour construire un service honnête, véritablement au service de ma clientèle.

Je suis convaincu que le web s’est démocratisé essentiellement grâce à ses fondations ouvertes. Flus se placera dans cette lignée et fera de son mieux pour redorer le blason de ces technologies (RSS et Atom, vous avez suivi) que certains disent sur le déclin. Il me semble qu’il s’agit de briques fondamentales pour un web en bonne santé.


Point d’étape sur l’ouverture du service : j’ai rendez-vous avec la CCI ce jeudi 5 septembre pour faire le point. Cela devrait me débloquer quelques points administratifs et me permettra d’y voir plus clair quant à la suite des évènements.

Contributions communautaires

Marien / le 28 août 2019 / permalien

Flus se base(ra) sur un logiciel libre ET communautaire : FreshRSS. En me basant sur un logiciel construit par d’autres, je décide de jouer le jeu et de reverser le maximum de mes améliorations de code au pot commun. Bien sûr, je suis un peu biaisé puisque j’ai moi-même initié FreshRSS : ce pot commun a longtemps été mon propre pot. Je réalise toutefois aujourd’hui que celui-ci est désormais bel et bien possédé par une communauté.

J’ai le souvenir que mes précédentes contributions étaient facilement intégrées, sans forcément de longues revues de code. C’était à la fois confortable et dangereux pour la stabilité du logiciel. Ce confort je le retrouve sur la plupart de mes projets libres, notamment Lessy que je développe grandement seul (quand je prends le temps de le faire). Je me rends compte que j’y ai pris goût.

C’est pourquoi mes deux dernières contributions importantes à FreshRSS m’ont questionné. La première consistait à ajouter l’ajout de la validation des adresses emails ; la seconde à ajouter une configuration pour lancer aisément un environnement de développement. Ces deux « pull requests » ont généré pas mal de commentaires et de suggestions d’amélioration auxquelles je ne m’attendais pas. L’intégration à la branche principale a donc pris plus de temps que je ne le pensais.

Les remarques et suggestions étaient tout à fait pertinentes et je suis extrêmement reconnaissant aux personnes qui ont pris le temps de relire mon code de les avoir faites : il y a une véritable addition des idées et connaissances pour arriver à un « mieux ». J’avais adoré ce travail d’équipe lorsque j’étais salarié et je prends toujours du plaisir à ce genre d’expérience aujourd’hui. Je me pose toutefois la question du long terme : aurai-je toujours l’énergie de proposer mes améliorations à la branche communautaire ?

La question n’est pas si différente de celle du travail au sein d’une équipe en entreprise. Elle diffère pourtant sur un point essentiel : en entreprise, une équipe possède des membres bien identifiés avec des temporalités communes (i.e. ils et elles bossent « en même temps »). On peut donc s’améliorer et avancer véritablement ensemble. Une communauté est par essence plus volatile et avec des temporalités complètement différentes ; l’exercice n’est donc pas le même pour ce qui est de la communication et du travail « ensemble ».

Il n’est absolument pas question de comparer qualitativement ces deux fonctionnements. Simplement, les contributions communautaires me questionnent dans le cadre d’une entreprise qui devra, à terme, me permettre de vivre. Comment gérer les « urgences » auxquelles je risque d’être confronté ?

Évidemment, des solutions existent. Flus fonctionnera notamment sur une branche spécifique sur laquelle je pourrai intégrer des fonctionnalités qui n’existent pas encore dans la version communautaire (mais attention, le code sera toujours ouvert).

La réflexion à laquelle ce questionnement me mène plutôt, c’est que l’urgence ne peut plus devenir une norme. En contribuant à une communauté qui ne possède pas les mêmes attentes et la même temporalité que moi, je m’impose des garde-fous. En jouant la carte de la communauté, je suis forcé de travailler différemment de si j’avais gardé le code pour moi. Est-ce que ce sera mieux ? Je le crois et l’espère.

J’ai hâte de savoir ce que ça donnera sur du plus long terme.

Sortir en 6 semaines

Marien / le 21 août 2019 / permalien

Je me suis donné comme objectif de monter mon service de veille d’actualités, Flus, en l’espace de 6 semaines. Je préviens tout de suite : je ne pense pas tenir ce délai et le service n’ouvrira pas le lundi 23 septembre. Cet objectif n’est pas tout à fait réaliste, mais il permet de commencer à se poser les bonnes questions et notamment « De quoi ai-je absolument besoin pour faire tourner le service ? »

J’ai commencé par poser au propre les idées que j’avais afin de séparer l’indispensable du « nice to have » (c’est-à-dire ce qu’il serait bien d’avoir). Un serveur ? Indispensable. Un logo ? Je peux m’en passer pour l’instant. Des conditions générales d’utilisation ? Indispensables. Un système de facturation ? Je pourrai le développer durant le premier mois d’ouverture (ce premier mois sera gratuit donc personne n’aura à payer avant le mois suivant).

Voici une liste de ce qui me semble indispensable pour ouvrir le service :

  • valider mon plan d’affaire avec la CCI ;
  • déclarer mon statut de micro-entrepreneur ;
  • ouvrir un compte en banque ;
  • rédiger les CGU, CGV et mentions légales ;
  • louer serveur et nom de domaine (c’est fait, évidemment sinon vous ne liriez pas ceci 😉) ;
  • installer et configurer un FreshRSS sur le serveur ;
  • développer une page d’accueil pour le service ;
  • récupérer les adresses emails des utilisateurices (FreshRSS ne disposant pas de cette fonctionnalité initialement) ;
  • développer un début de page de facturation (sans nécessité immédiate de faire payer donc) ;
  • configurer le système de sauvegarde des données ;
  • configurer une adresse email pour gérer les demandes de support.

Et c’est tout, le reste pourra venir ensuite. Alors j’aimerais vraiment beaucoup avoir un logo et un joli thème pour l’ouverture ; j’aimerais que les premiers comptes soient automatiquement inscrits à ce « carnet de flus » et que la connexion aux systèmes de paiement soit opérationnelle ; mais soyons réalistes : 6 semaines, c’est court.

Je ne bâclerai pas pour autant l’ouverture du service et je prendrai le temps qu’il faudra pour faire les choses correctement ; 6 semaines, c’est court mais pas forcément réaliste pour ouvrir un service de qualité. 6 semaines, c’est avant tout pour me donner un meilleur sens des priorités.

On fait le point le 23 septembre prochain ?


P.S. Une autre raison pour ne pas ouvrir le service si rapidement est que je compte prendre des dernières vacances à partir de fin septembre, histoire de souffler une dernière fois avant de me jeter dans le grand bain.

Bonjour le monde !

Marien / le 17 août 2019 / permalien

Le premier article d’un blog est souvent le plus compliqué car on ne sait jamais trop quoi y raconter. Je vais donc rester court.

Ce blog sera celui de Flus, un service de veille d’actualités permettant de suivre une large variété de sites et de blogs depuis un seul endroit. Pour les geeks d’entre vous, il s’agira tout simplement d’un agrégateur de flux RSS (FreshRSS pour être exact).

Je tenterai de raconter ici les évolutions du service, la gestion de l’entreprise derrière, de donner des conseils d’utilisation, des liens utiles, etc. Tout cela pour un maximum de transparence et pour que vous sachiez où vous mettez les pieds. Je vise pour l’instant des publications hebdomadaires relativement courtes.

L’entreprise derrière n’est pas encore montée et le service n’est donc pas ouvert, alors n’hésitez pas à vous abonner au blog pour savoir quand tout ouvrira… en attendant de pouvoir le faire sur Flus directement ! Vous pouvez d’ores et déjà suivre le développement sur GitHub.

À bientôt sur flus.io !