Le site arthur.bebou.netlib.re - retour accueil
git clone git://bebou.netlib.re/arthur.bebou
Log | Files | Refs |
index.sh (7047B)
1 #! page 2 title: Un outil pour la conjugaison 3 author: Arthur Pons 4 description: [Insérer nom ici] est une interface sobre pour consulter les conjugaisons d\'un verbe 5 publication: 2023-02-25 6 sectionmd: main 7 8 > Cet outil ne dispose pas encore d'un nom. Si vous avez une idée je suis 9 > preneur. 10 11 Si vous êtes comme moi vous avez du mal avec les terminaisons des verbes en 12 français. Est-ce qu'il y a un s silencieux, où est l'accent circonflexe, 13 est-ce que ça prend un ou deux l ? Puisque je n'ai pas de Bescherelle sous 14 la main (peut-être devrais-je), je cherche "[verbe] conjugaison" dans un 15 moteur de recherche, je clique généralement sur le premier résultat, je 16 refuse les cookies, la newsletter, je cherche le temps et la personne 17 que je veux avec les yeux. C'est assez long et fastidieux, le site le 18 mieux référencé n'est pas toujours le même et je dois soit chercher celui 19 que je préfère dans la liste des résultats ou m'adapter à une interface 20 différente à chaque fois. Bref, c'est compliqué. 21 22 ## Des interfaces alternatives et leurs usages 23 24 Quelqu'un du projet Bitreich avait pour projet d'interfacer tout un tas de site 25 web. L'idée est de pouvoir obtenir un service similaire voir équivalent mais à 26 travers des interfaces plus sobres, plus respectueuses de la vie privée, plus 27 performantes, plus accessibles. Un exemple est le site 28 [idiotbox](https://codemadness.org/idiotbox) qui interface la recherche youtube. 29 30 J'ai conscience qu'avec une interface pour alléger et simplifier le cas d'usage 31 décrit précédemment on ne s'attaque ni à un symbole du capitalisme de 32 surveillance ni à un grand émetteur de carbone. Cela dit l'implémentation est 33 relativement simple et m'est personnellement utile. Cela en fait, j'espère, un 34 bon exemple pour écrire un article. 35 36 ### Interface web 37 38 Il n'y en a pas. 39 40 ### Interface cli via internet 41 42 L'outil est disponible sur le port 2222 du serveur bebou.netlib.re. Si vous 43 vous y connectez avec netcat en faisant `nc bebou.netlib.re 2222` vous 44 obtiendrez un prompt depuis lequel vous pouvez lancer la commande `conjuguer` 45 ou `c` : 46 47 nc bebou.netlib.re 2222 48 help ou h pour obtenir de l'aide 49 c manger 50 Indicatif Présent je mange 51 Indicatif Présent tu manges 52 Indicatif Présent il mange 53 Indicatif Présent nous mangeons 54 55 Plus de détails dans [cet article](/services-sobres/). 56 57 ### En local 58 59 Pour ne pas dépendre de la disponibilité du service ou le modifier à votre 60 sauce il pourrait être souhaitable d'avoir le même usage via en local. Pour 61 cela vous pouvez télécharger les sources qui permettent de faire fonctionner 62 l'interface web 63 64 git clone git://bebou.netlib.re/conjugaison-light 65 66 Les fichiers contentant les terminaisons sont disponibles dans [cette archive 67 (2,2Mo)](/conjugaison/verbes.tar.gz)[^1]. 68 69 L'usage de l'outil est détaillé dans le README du projet. 70 71 Après avoir modifier le script `cgi` pour y renseigner l'endroit où se trouvent 72 les fichiers des terminaisons nous pouvons, dans une interface en ligne de 73 commande, écrire : 74 75 ./cgi [verbe] [mode] [temps] [personne] 76 77 et ne récupérer que l'information que l'on souhaite. Aucun clique inutile, 78 pas besoin de scanner un trop plein d'information. Par exemple : 79 80 cgi prendre subjonctif présent je 81 Subjonctif Présent que je prenne 82 83 ## Fonctionnement 84 85 Le site [conjugaisonfrancaise](https://conjugaisonfrancaise.com) a été utilisé 86 pour récupérer les données. J'ai scrapé la totalité des verbes. 87 Le format qui en résulte est sous la forme : 88 89 Prendre 90 Indicatif 91 Présent 92 je pr{ends} 93 tu pr{ends} 94 il pr{end} 95 ... 96 97 Ce format a le mérite d'être assez peu redondant. Pour pouvoir le filtrer plus 98 facilement et obtenir un affichage plus lisible le script `cgi` inclu une 99 fonction qui le tabule : 100 101 Indicatif Présent je pr{ends} 102 Indicatif Présent tu pr{ends} 103 Indicatif Présent il pr{end} 104 ... 105 106 Ce peut être facilement filtré si l'on précise les valeur des champs comme vu 107 précédemment avec les interfaces : 108 109 Subjonctif Présent que nous pr{enions} 110 111 Dans la console il est possible d'ajouter une étape pour colorier la 112 terminaison. Chacune de ces étapes est le résultat de l'ingestion de l'étape 113 précédente par un nouveau script. L'outil est donc assez modulaire si vous avez 114 les sources. Vous pouvez ne pas filtrer, conserver la version non tabulée ou 115 faire votre propre script de mise en page. 116 117 ### Sobriété numérique 118 119 #### La taille des pages et la bande passante 120 121 Les pages du site que l'on a choisi sont relativement petites pour les 122 standards du web moderne. Elles vont de 150Ko à 200Ko. Le premier format de 123 donnée que l'on génère avec nos scripts pèse entre 1,6Ko et 2,5Ko. Nous sommes 124 donc sur une diminution de la quantité de donnée d'un facteur 100. Le format 125 tabulé tourne autour du double ou du quadruple entre 3,5Ko et 4Ko. Finalement, 126 le format filtré peut descendre jusqu'à quelques octets selon la finesse de la 127 recherche. Si l'on veut servir les données en HTML cela rajoutera environ 1Ko 128 sur un retour non filtré. Pour la console les séquences d'échappement pour 129 colorier les terminaisons ajouteront 1Ko également. 130 131 La totalité de la base de donnée stockées sous forme de texte au format 132 précédemment décrit comprend 7370 fichiers (verbes), 935991 lignes pour un 133 total de 16Mo. Sa forme compressée dans un tarball avec gzip prend 2,2Mo. 134 Compressée la totalité des données de ce site prennent donc la place de 10/15 135 pages HTML de conjugaisonfrancaise.com. Autrement dit en téléchargeant la 136 totalité de la base en local on amorti notre téléchargement en max 15 requêtes. 137 138 A noter qu'il est possible de faire beaucoup mieux en utilisant l'idée de 139 verbes "modèles". Il suffirait de stockers ces modèles et d'appliquer 140 leurs terminaisons aux radicaux des verbes demandés. Cela dit du développement 141 serait nécessaire. Cette approche pourrait être pertinente dans ces contextes 142 où le stockage est extrêmement contraint et les 16Mo de notre base excessifs. 143 144 #### Soutenabilité et maintenance 145 146 Je trouve ce point plus intéressant que les calculs comptables d'octets. Je ne 147 vais pas rentrer dans les détails ici, je liste donc simplement les points qui 148 me semble pertinents pour cette discussion : 149 150 * nécessite internet ou pas 151 * nombre de dépendances 152 * stabilité de ces dépendances 153 * nombre de lignes de codes de l'outil et des dépendances 154 * nombre de personnes dans les projets de ces dépendances 155 156 En l'occurence le script cgi requiert : 157 158 * un système unix 159 * les versions gnu de : sed, awk, cat, grep, column, tr 160 * dash 161 * netcat-openbsd pour sa version en ligne 162 163 Sans me lancer dedans j'imagine aisément que ma solution performe bien mieux 164 sur l'ensemble des critères que les sites de conjugaison habituels. A voir 165 maintenant ce que cela implique pour un exemple aussi trivial. 166 167 [^1]: `tar xvzf verbes.tar.gz` créera un dossier `verbes` avec tous les fichiers dedans. Attention ça fait 50Mo et 7370 fichiers.