Haiku a 23 ans - Haiku R1 bêta 5 (partie 3 : documentation, finances et GSOC)

Posté par  (site web personnel, Mastodon) . Édité par BAud, Ysabeau 🧶, Arkem, palm123, Benoît Sibaud et bobble bubble. Modéré par Benoît Sibaud. Licence CC By‑SA.
21
26
sept.
2024
Haiku

Les deux parties précédentes ont présenté les principales évolutions dans le code de Haiku. Mais le code ne fait pas tout.

Cette troisième (et dernière) partie présente les nouveautés dans la documentation, ainsi qu’un court aperçu du rapport financier et aux dons qui permettent à Haiku d’employer un développeur à plein temps de façon durable.

Enfin, elle présente la participation au Google Summer of Code et les travaux réalisés par les cinq étudiants encadrés par Haiku cette année.

Sommaire

Documentation

La documentation de Haiku se découpe en 3 parties principales : un manuel de l’utilisateur, une documentation d’API, et une documentation interne pour les développeurs qui travaillent sur les composants du système.

Ces documents sont complétés par de nombreuses pages et articles sur le site Internet, et deux livres pour apprendre à programmer en C++ avec Haiku, ou encore un document de référence pour la conception d’interfaces graphiques et un autre pour le style graphique des icônes.

Documentation d’API

La documentation d’API de BeOS était assez complète et de bonne qualité. L’entreprise Access Co Ltd qui a hérité de la propriété intellectuelle de BeOS a autorisé le projet Haiku à la réutiliser et à la redistribuer. Malheureusement, cette autorisation est faite avec une licence Creative Commons n’autorisant pas les modifications. Cette documentation ne peut donc pas être mise à jour, ni pour corriger les erreurs, ni pour ajouter des informations sur toutes les nouvelles fonctions ajoutées par Haiku ou les différences entre les deux systèmes.

Il est donc nécessaire de réécrire une nouvelle documentation à partir de zéro. Ce travail est assez ingrat lorsqu’il s’agit de re-décrire ce qui est déjà très bien expliqué dans la documentation existante. La nouvelle documentation a donc tendance à se concentrer sur les nouvelles fonctions, et il faut souvent jongler entre les deux documentations, le contenu des fichiers .h, et des exemples de code d’applications existantes pour découvrir toutes les possibilités offertes.

Il ne semble pas utile de lister chaque fonction ou méthode qui a été documentée. On peut mentionner une page d’explications sur la bibliothèque C standard, comprenant des liens vers les spécifications POSIX qui documentent déjà la plupart des choses, et quelques détails sur les différences avec d’autres systèmes.

Une autre nouvelle page documente les primitives de synchronisation qui sont disponibles pour le code s’exécutant dans le noyau.

Documentation interne

La documentation interne était à l’origine simplement une accumulation de fichiers dans divers format dans un dossier « docs » du dépôt Git de Haiku. Depuis 2021, ces fichiers ont été rassemblés et organisés à l’aide de Sphinx, qui permet de mettre à disposition une version navigable en HTML et de donner une meilleure visibilité à ces documents.

D’autres pages sont petit à petit migrées depuis le site web principal de Haiku, qui n’est pas un très bon support pour de la documentation, et bénéficiera un jour d’une refonte pour être plus tourné vers les utilisateurs que vers les développeurs.

Quelques nouvelles pages ajoutées cette année:

  • Une documentation sur l’utilisation de divers outils de complétion de code automatique avec le code source de Haiku
  • Une page présentant l’organisation du code source et les principaux dossiers et sous-dossiers
  • La documentation de l’outil rc utilisé pour compiler les « resources » attachées aux exécutables a été intégrée
  • Le système de fichier FAT a reçu également une page de documentation à l’occasion de sa réécriture

Un point sur le financement

L’association Haiku inc qui gère le compte en banque de Haiku publie chaque année un rapport financier.

Le financement provient principalement de dons des utilisateurs et soutiens de Haiku. Le projet reçoit également une compensation financière de Google pour le temps passé à encadrer les participants du Google Summer of Code (voir le paragraphe suivant). La contribution de Google cette année est de 3 300$.

Les plateformes de don les plus utilisées sont Paypal et Github sponsor. Ce dernier est recommandé car, pour les dons reçus via Github, c’est Microsoft qui paie les frais bancaires de la transaction. 100% de l’argent donné arrive donc sur le compte de Haiku. Tous les autres opérateurs ont un coût, soit fixe lors des retraits, soit un pourcentage de chaque don, soit un mélange des deux.

En 2023, l’association a reçu 25 422$ de dons et a dépensé 24 750$. Elle dispose d’une réserve confortable de 100 000$ (accumulés avant 2021, alors qu’il n’y avait pas de développeur salarié) ainsi que d’environ 150 000$ en cryptomonnaies.

Les dons en cryptomonnaies sont pour l’instant bloqués sur un compte Coinbase suite à des problèmes administratifs (le compte n’est pas correctement déclaré comme appartenant à une association, il faudrait donc payer un impôt sur le revenu lors de la conversion en vraie monnaie). Il semble difficile de contacter Coinbase pour régler ce problème.

Du côté des dépenses, le poste le plus important est le paiement de 21 000$ à Waddlesplash, développeur employé par Haiku inc pour faire avancer le projet Haiku. Il travaille à temps partiel et avec un salaire très bas par rapport au marché, comme cela a été fait pour les précédents contrats entre Haiku inc et d’autres développeurs. Les finances de l’association ne permettent pas encore d’assurer un emploi à plein temps avec un salaire correct sur le long terme (c’est faisable sur le court ou moyen terme à condition de puiser dans les réserves de trésorerie).

Le reste des dépenses concerne principalement le paiement de l’infrastructure (serveurs pour le site Internet, l’intégration continue, hébergement cloud pour les dépôts de paquets) pour environ 3 000$.

Il faut enfin compter environ 500$ de frais Paypal, puis quelques dépenses administratives (déclaration de changement d’adresse de l’association, déclaration d’embauche) pour des montants négligeables (moins de 10$ au total).

En 2024, l’objectif fixé en janvier était de récolter 20 000$ de dons supplémentaires. Cet objectif a été atteint dès le mois de juillet, et a donc été révisé pour tenter d’atteindre les 30 000$. Cela permettra de rémunérer Waddlesplash pour un plus grand nombre d’heures cette année, ou bien d’envisager l’embauche d’une deuxième personne si un ou une candidate se présente parmi les personnes contribuant au projet (l’embauche d’une personne extérieure ne se fera pas tant que l’association ne peut pas se permettre de proposer une rémunération raisonnable).

Google Summer of Code

Haiku participe au Google Summer of Code depuis 2007. Il s’agit d’un programme où des étudiants (et d’autres participants pas forcément étudiants, ces dernières années) sont payés par Google pendant deux mois pour découvrir la contribution à des projets de logiciels libres.

Ce programme a été monté par « l’Open source program office » de Google. Leur intérêt est de défendre leur image d’entreprise sympathique (bien mise à mal ces dernières années, c’est devenu un géant de la publicité en ligne et de l’aspiration des données personnelles), et de contribuer à la richesse d’un écosystème de logiciels libres dont ils bénéficient beaucoup. Cela permet aussi d’encourager des personnes à s’essayer au développement logiciel, facilitant indirectement le recrutement chez Google en augmentant le nombre de candidats. Ces justifications peuvent sembler hypothétiques ou très indirectes, mais elles ont convaincu Google d’attribuer un budget de quelques millions de dollars à ce programme.

Une équipe de Google choisit les projets de logiciel libres participants parmi de nombreuses candidatures. Chaque projet participant propose une liste « d’idées » (un peu sous la forme d’un sujet de stage) et a ensuite la responsabilité de choisir parmi les candidats qui ont répondu à cette offre (en respectant les critères de non-discrimination imposées par Google ainsi que les embargos imposés par les USA), et d’assurer l’encadrement des personnes sélectionnées. Google rémunère les participants, et dédommage les projets participants pour le temps investi.

Cette année les développeurs de Haiku encadrent cinq participants :

Calisto Mathias — Re-design de la fenêtre de recherche de fichiers

Le système de fichier BFS utilisé par Haiku permet l’exécution de requêtes (comme une base de données) exploitant les attributs étendus des fichiers, qui peuvent être indexés.

Ce système permet de faire beaucoup de choses, et la fenêtre de recherche du navigateur de fichier essaie d’en tirer parti. Cependant, l’interface résultante est trop complexe, et peu de personnes prennent le temps de concevoir des requêtes améliorant leur façon de travailler, se cantonnant aux quelques exemples fournis.

L’objectif de ce projet est de refondre l’interface de cette fenêtre pour obtenir quelque chose de plus intuitif, et également d’afficher en temps réel les résultats de la requête dès qu’elle est modifiée, pour encourager les utilisateurs à expérimenter avec des requêtes plus complexes.

Daniel Martin — Virtualisation matérielle accélérée avec NVMM

Haiku n’est pas encore parfait, et certaines tâches nécessitent encore l’utilisation d’autres systèmes d’exploitation. Une partie des utilisateurs ont donc une configuration en double boot, ou bien lancent Haiku dans une machine virtuelle.

L’objectif de ce projet est de permettre d’utiliser Haiku comme système principal, et de lancer les autres systèmes dans des machines virtuelles. Cela sera réalisé à l’aide d’un portage de NVMM, qui a été développé à l’origine par NetBSD et Dragonfly BSD. Cette bibliothèque a l’avantage d’être bien documentée et conçue pour faciliter son adaptation vers d’autres systèmes.

NVMM sera complétée par l’utilisation de QEMU qui pourra fournir un « front-end » à cette mécanique.

Diego Roux — Pilote pour les cartes sons virtuelles VirtIO

Pour les personnes utilisant Haiku dans une machine virtuelle, il est intéressant d’utiliser autant que possible la famille de périphériques VirtIO.

Il s’agit de périphériques virtuels conçus sans s’inspirer de matériel existant, et plutôt pour avoir l’interface la plus simple possible entre la machine virtualisée et son hôte.

Haiku dispose déjà d’un jeu de pilote Virtio relativement complet (réseau, stockage de masse, affichage graphique). Le but de ce projet est de compléter cet ensemble avec un pilote pour les cartes son VirtIO.

trungnt2910 — Portage de GDB

Haiku dispose de son propre débugger (appelé Debugger, de façon assez peu originale). Ce dernier présente une interface graphique confortable, mais une interface en ligne de commande beaucoup plus limitée. Il souffre également de quelques problèmes de performances et d’un manque de prise en charge des fichiers exécutables et bibliothèques compilés avec autre chose que GCC. Il est également incapable de faire du debug à distance ou de s’intégrer dans une interface graphique existante (par exemple au sein d’un IDE).

L’objectif de ce projet est de ressusciter la version de GDB ciblant Haiku. Cette version très ancienne était utilisée avant l’apparition du Debugger natif. Le projet est en bonne voie, le code d’interfaçage a été entièrement réécrit pour s’adapter aux versions modernes de GDB, et plusieurs évolutions et corrections ont été intégrées dans le système de debugging de Haiku (par exemple, pour mettre en pause tous les threads nouvellement créés afin que le debugger puisse les intercepter).

Zardshard — Migration du navigateur web WebPositive vers WebKit2

Le navigateur WebPositive utilise le moteur de rendu webKit. Actuellement, il s’interface avec ce moteur via l’API WebKitLegacy. Cette API exécute tout le moteur de rendu web dans un seul processus, et ne fournit pas les garanties d’isolation nécessaires pour les navigateurs web modernes (que ce soit en termes de sécurité, ou en termes de fiabilité).

L’objectif de ce projet est de reprendre les travaux déjà entamés en 2019 pour migrer WebPositive vers la nouvelle API « WebKit2 », et bénéficier d’une séparation entre l’interface graphique, la communication réseau, et le rendu HTML/CSS/JavaScript dans des applications séparées. Ainsi, un crash d’un de ces composants peut être récupéré de façon transparente sans faire disparaître toute l’application (et les données non enregistrées de l’utilisateur avec).

Le projet est également en bonne voie, un navigateur de test permet déjà d’afficher quelques pages ce qui montre que les bases sont en place. Il reste à régler de nombreux problèmes de rendu de texte, ainsi qu’à implémenter la gestion des entrées (clavier et souris) pour avoir un navigateur web utilisable. Il faudra ensuite migrer WebPositive vers ces nouvelles APIs.

Aller plus loin

  • # Très intéressante cette partie

    Posté par  (site web personnel, Mastodon) . Évalué à 5 (+2/-0).

    Merci beaucoup pour ces dépêches sur Haiku.

    J'ai rajouté les liens vers celle-ci sur les deux autres.

    « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

  • # Je suis inclu

    Posté par  . Évalué à -10 (+5/-12).

    L'écriture inclusive dégueu, c'était vraiment nécessaire ?

    • [^] # Re: Je suis inclu

      Posté par  (site web personnel, Mastodon) . Évalué à 4 (+3/-1). Dernière modification le 27 septembre 2024 à 08:42.

      Quand j'utilise un langage de programmation, je choisis en général la dernière version disponible et j'utilise les nouvelles fonctionnalités lorsque cela me permet d'écrire du code plus clair, précis et concis.

      Il en est de même lorsque j'utilise une langue pour m'adresser à des humains. Je ne vois pas l'intérêt de faire de la rétro-linguistique et de parler le Français de 1924 dans cette dépêche.

      D'ailleurs, le seul endroit ou je me souviens avoir utilisé l'écriture inclusive semble de pas avoir survécu aux éditions d'autres participants ou à la modération de la dépêche (l'information s'est perdue suite au découpage en plusieurs dépêches, je pense).

      Si un ou une modératrice peut corriger cette phrase:

      […] l’embauche d’une deuxième personne si un candidat se présente parmi les personnes contribuant […]

      Il faut bien entendu lire "un ou une candidate", ou autre formulation qui n'implique pas l'absence de contributrices chez Haiku, bien qu'elles soient encore malheureusement en grande minorité.

      • [^] # Re: Je suis inclu

        Posté par  (site web personnel) . Évalué à 5 (+2/-0).

        Corrigé, merci.

        • [^] # Re: Je suis inclu

          Posté par  . Évalué à 3 (+1/-0). Dernière modification le 30 septembre 2024 à 10:46.

          Mais il y a d'autres endroits où il y a candidat, étudiant, participant etc pas mis au féminin alors sauf si c'est voulu parce que dans les autres cas il ne s'agissait effectivement que d'hommes (de personnes de genre masculin), je ne vois pas trop pourquoi juste à un endroit on parle aussi de candidate…

          • [^] # Re: Je suis inclu

            Posté par  (site web personnel, Mastodon) . Évalué à 4 (+2/-0).

            En effet, mais là c'est de ma faute lors de la rédaction.

            Pour le projet Haiku on constate peu de candidates pour le Google Summer of Code. Nous en avions eu beaucoup plus lors de notre participation à Outreachy, cependant, dans le cadre de Outreachy, il faut apporter son propre financement ou sponsor. Actuellement, le projet Haiku n'a pas trouvé de sponsors pour Outreachy et nous avons décidé d'employer l'argent reçu par les dons des utilisateurs plutôt pour embaucher un développeur déjà actif sur le projet.

            La participation à Outreachy est donc mise en veille pour Haiku.

            Du côté du Google Summer of Code plus général, la dernière fois ou l'information a été publiée, c'était en 2018. Il y avait alors un peu plus de 11% de participantes

            https://developers.google.com/open-source/gsoc/resources/stats?hl=fr

            https://opensource.googleblog.com/2018/06/google-summer-of-code-2018-statistics-part-2.html

            Les années suivantes, cette information n'est plus fournie. Il y a uniquement la liste des pays et le nombre de personnes participant pour la première ou la deuxième fois.

      • [^] # Re: Je suis inclu

        Posté par  (site web personnel) . Évalué à 4 (+2/-0).

        Sinon…

        […] l’embauche d’une deuxième personne si une candidature se présente parmi les personnes contribuant […]

        Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

      • [^] # Re: Je suis inclu

        Posté par  (site web personnel, Mastodon) . Évalué à 0 (+1/-2).

        Contrairement à un langage de programmation il n'y a pas une "dernière version" dans une langue parlée mais de multiples versions coexistent et se mélangent. D'ailleurs il est assez courant de revenir en arrière.
        L'écriture inclusive en l'occurrence est un style réservé à une certaine élite (de la France hexagonale) bien pensante mais qui ne perce ni dans la presse ni dans le parlé courant.

        "un ou une candidate" je trouve ce genre d'expression ségrégationiste. Comme s'il y avait d'une part les candidat masculin et de l'autre celle féminines.

        Je milite pour une suppression du féminin de manière général (ou du masculin). Quand "conducteur" est utilisé pour le masculin comme le féminin c'est bien plus simple. Si pour le poste il faut être une femme ou faire plus d'1,80m, et bien on le précise.
        On a au moins le cas "un homme" ou "une personne" qui ne précisent pas le sexe par défaut (sans pour autant renoncer au cas)

        Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.

        • [^] # Re: Je suis inclu

          Posté par  (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 05 octobre 2024 à 11:59.

          "un ou une candidate" je trouve ce genre d'expression ségrégationiste. Comme s'il y avait d'une part les candidat masculin et de l'autre celle féminines.

          ah bien vu :-) (hormis l'accord du pluriel)

          mais tu as loupé le neutre, incluant l'une et l'autre

  • # domaine d'utilisation

    Posté par  (site web personnel, Mastodon) . Évalué à 2 (+2/-1).

    J'aimerai dans une dépêche une explication des points fort/faiblesses de Haïku. Concrètement il est évident que Haïku est bien moins avancé que les distrution Linux, cela va de soit.

    Cependant on peut quand même trouver des raisons de l'utiliser. Je pense pour sa simplicité, son interface, sécurité (dans la mesure où bien peu de virus seront capable de tourner dessus)… As t'on une idée des personnes réellement utilisatrice?

    Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.

  • # Financer une partie spécifique ?

    Posté par  (Mastodon) . Évalué à 2 (+0/-0).

    Dans une des dépêches précédentes, j'ai vu :

    Le pilote pour les WebCams UVC — standard utilisé pour les caméras USB modernes — n’est pas encore au point et n’est pas inclus dans les versions publiées de Haiku.

    Ça me chagrine un peu, parce que j'aime bien jouer avec les webcams, et je pense qu'il y a des choses sympas à faire avec Haiku et les webcams. Est-il possible de faire un don qui servirait à faire avancer les choses dans ce domaine ?

    • [^] # Re: Financer une partie spécifique ?

      Posté par  (site web personnel, Mastodon) . Évalué à 3 (+1/-0).

      Ce n'est pas possible de faire des dons "fléchés" vers une utilisation spécifique via Haiku inc. L'association a été conçue pour isoler les dons des développeurs (ou inversement) et empêcher que quelqu'un puisse "acheter" Haiku par ce moyen.

      Mais on est pas obligé de passer par Haiku inc. Il est possible oe simplement poster un message sur le forum de Haiku annonçant qu'on souhaite offrir des euros au développeur qui implémentera la fonctionalité (ou même à l'association Haiku inc mais une fois le travail complété). Je crois qu'il est également possible de passer par la plateforme Bountysource, si elle existe encore? Mais c'est peu fréquenté,

      Cela prête un peu à débat pour différentes raisons:

      • certain.es des développeurs n'ont pas envie d'être "chasseurs de primes" et préfèrent des offres rémunérées au nombre d'heures de développement plutôt que au résultat accompli.
      • le développement sous Haiku prend souvent des tournants imprévus: par exemple dans ce cas, il est probable que le développeur (ou la développeuse) qui s'y attèle se retrouve à débugger des problèmes dans la gestion de l'usb et/ou dans le Media Kit; àécrire de la documentation pour ces composants, ou toute autre tâche qui se trouverait sur le chemin. Difficile d'évaluer si le montant de la récompense va couvrir le temps passé à investiguer le problème
      • De la même façon, ces travaux préparatoires pourraient être réalisés par une autre personne. Dans ce cas, qui doit toucher la prime? Celle qui a construit toutes les fondations, ou celle qui pose juste la dernière pierre?
      • Parfois les montant proposés sont trop petits pour assurer un paiement correct. Lorsque Haiku inc établit des contrats, c'est pour permettre à quelqu'un de se débarasser (pour plus ou moins longtemps) d'un emploi salarié ou rémunéré par ailleurs, et de maximiser le temps passé à améliorer Haiku. Dans cette vision de; choses, une récompense de quelques dizaines ou quelques centaines d'euros n'aurait pas forcément un grand intérêt (mais ça dépend de la situation de chaque personne qui pourrait répondre à l'offre)

      En bref: il n'y a bas d'infrastructure ou de processus formalisé pour le faire. Mais ça n'est pas forcément un problème, beaucoup de choses dans Haiku sont faites de façon informelle.

      En attendant, il est possible d'utiliser des caméras IP, dont en particulier une application android permettant de transformer un ordiphone en caméra IP.

      • [^] # Re: Financer une partie spécifique ?

        Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0).

        poster un message sur le forum de Haiku annonçant qu'on souhaite offrir des euros au développeur qui implémentera la fonctionnalité.

        A condition d'avoir des moyens "conséquent" cela me semble le moyen le plus raisonnable. Même si cela n'arrive pas au bout, cela peut permettre de dégrossir le travail et de lancer d'autres sur le sujet.
        C'est surtout intéressant pour une entreprise qui souhaiterai pour une raison ou une autre utiliser Haiku (Ou qui aurait des bénéfices a réduire).

        Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.