jour-eco-2025

Le nécessaire pour la présentation aux journées de l'écoconception 2025 - retour accueil

git clone git://bebou.netlib.re/jour-eco-2025
Log | Files | Refs |

prez.slides (8734B)


      1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 					    Y'a-t-il quelque chose après
      9 					    l'écoconception web ? 🍂
     10 
     11 
     12 
     13 › Qui suis-je
     14 
     15 Informaticien de formation
     16 Milieu universitaire au service de la recheche
     17 
     18 Membre de Katzele 😸🖥
     19 
     20 › Une précédente présentation
     21 
     22 Semaine Européenne du Numérique Responsable 2023 (Strasbourg)
     23 
     24 https://numerique-responsable.strasbourg.eu/article/vidc3a9o-5-convivialisons-l-accc3a8s-au-infos-pratiques-d-alsace-1
     25 
     26 Deux temps :
     27 
     28 	1. Derek critique le site des horaires de piscines de la ville
     29 	2. Je propose une version textuelle en dehors du navigateur
     30 
     31 TODO heberger les horaires sur bebou pour montrer
     32 TODO mettre des photos ?
     33 
     34 › Quoi de neuf ?
     35 
     36 En discutant avec Thomas on a décidé de :
     37 
     38 	1. Sauter la première partie (bien documentée)
     39 	2. Reprendre la seconde
     40 	3. Boucler la boucle, Derek fait une partie terminal/TUI de son
     41      point de vue de designer
     42 
     43 › Mais encore ?
     44 
     45 Envie d'aller au delà du mode classique d'interaction terminal+CLI qui est :
     46 
     47 	Y'a une information textuelle quelque part
     48 	Je demande l'information
     49 	Je reçois l'information
     50 	Voilà
     51 
     52 Très bien pour les horaires de piscines - n'importe quel site statique ou qui
     53 devrait être statique.
     54 Mais limité quand on a besoin de plus d'interaction.
     55 
     56 Donc implémentation et démonstration de quelque chose qui serait plutôt un
     57 appli web
     58 
     59 "silent ! feh -F zero.webp bebou.jpeg› La machine de présentation
     60 
     61 Légende : deux photos un peu moches d'un raspberry 3b
     62 		  et d'un raspberry zero W 1. Le 3b est sur le
     63 		  point de tomber à la renverse.
     64 
     65 
     66 › Quizz
     67 
     68 Faisons un petit quizz à propos de la machine
     69 
     70 firefox https://app.wooclap.com/auth/login?lang=fr
     71 
     72 › Frustrant non ?
     73 
     74 Généralement c'est là que l'obsolescence logicielle vous pousse à acheter un
     75 nouvel ordi.
     76 
     77 
     78 
     79 › Comment résoudre ce problème
     80 
     81 Deux logiciels particulièrement importants ici :
     82 
     83 	1. l'application web
     84 	2. le navigateur
     85 
     86 › L'application web
     87 
     88 21 requêtes
     89 11,84 Mo / 3,58 Mo transférés
     90 1258 éléments dans le DOM
     91 
     92 Meilleures perfs que ce à quoi je m'attendais
     93 Quasi inaccessible avec mauvaise co
     94 Accessible uniquement en HTTPS
     95 
     96 › Le navigateur
     97 
     98 Un énorme truc en soit, presque un OS dans un OS
     99 
    100 › Qu'est-ce qu'on garde qu'est-ce qu'on jette ?
    101 
    102 Web :
    103 
    104 	Un client
    105 		Un navigateur
    106 			HTTP
    107 			HTML
    108 			CSS
    109 			JS
    110 	Un serveur
    111 		Serveur web
    112 		Log
    113 › Qu'est-ce qu'on garde qu'est-ce qu'on jette ?
    114 
    115 Web :
    116 
    117 	Un client
    118 		Un navigateur
    119 			HTTP
    120 			 HTML 
    121 			 CSS 
    122 			 JS 
    123 	Un serveur
    124 		Serveur web
    125 		Log
    126 
    127 
    128 › Qu'est-ce qu'on garde qu'est-ce qu'on jette ?
    129 
    130 Web :
    131 
    132 	Un client
    133 		Un navigateur
    134 			HTTP
    135 	Un serveur
    136 		Serveur web
    137 		Log
    138 
    139 › Qu'est-ce qu'on garde qu'est-ce qu'on jette ?
    140 
    141 Web :
    142 
    143 	Un client
    144 		 Un navigateur 
    145 			HTTP
    146 	Un serveur
    147 		Serveur web
    148 		Log
    149 
    150 › Qu'est-ce qu'on garde qu'est-ce qu'on jette ?
    151 
    152 Web :
    153 
    154 	Un client
    155 		HTTP
    156 	Un serveur
    157 		Serveur web
    158 		Log
    159 
    160 › Une histoire à grepper des logs
    161 
    162 Septembre 2022, un homme cherche à sonder sa communauté.
    163 Il n'a pas d'outil pour, "juste" un serveur web
    164 
    165 	"N'ayant pas le temps de créer ou utiliser un outils de sondage, je vous
    166 	propose un "sondage par log": merci de construire (dans votre navigateur
    167 	ou avec curl) l'adresse suivante (qui répondra 404 et c'est normal).
    168 
    169 https://people.u-strasbg.fr/surveydistro/devlog2209/N,P,D,F,H,X,O,E
    170 
    171 › Génial
    172 
    173   1. On profite de l'ubiquité du web plutôt que de se battre contre - pas de
    174 	 "Teste cet outil c'est super mais il te faut un terminal et d'ailleurs
    175 	 est-ce que t'as linux ?"
    176   2. Mais on ne requiert des utilisateurices que le strict minimum. Il est
    177 	 possible pour une part immense des machines de créer et envoyer une
    178 	 requête HTTP.  La barrière d'entrée en puissance de calcul et en
    179 	 logicielle est très très faible.
    180   3. On ne requiert de la personne qui a créé le questionnaire "uniquement" un
    181      serveur web qui créé des logs et de quoi les parser.
    182   4. L'idée est tellement simple que la diversité des implémentations peut être
    183 	 très grande. Très rapide à créer, immédiat à utiliser. L'outil pour
    184 	 répondre peut aller de la requête écrite à la main pipée dans un netcat à
    185 	 la barre url de Chrome.
    186 
    187 › L'entourloupe
    188 
    189 
    190 		T'arrivais pas à me faire sortir du navigateur pour
    191 		que je pratique la ligne de commande donc t'as mis
    192 		la ligne de commande dans mon navigateur ?
    193 
    194 											- Un ami très lucide
    195 
    196 
    197 › qcm
    198 
    199 code                        : http://git.bebou.netlib.re/qcm/file/README.html
    200 article (en fait le readme) : http://arthur.bebou.netlib.re/qcm/index.sh
    201 
    202 Pour résumer :
    203 
    204 	Un script à installer sur le serveur web
    205 	Qui lit des questionnaires écrit dans un certain format (du texte)
    206 	Ecoute en continue les logs du serveur et affiche les résultats
    207 	Nécessite un shell, xargs, sed, mktemp, stdbuf
    208 
    209 › qcm
    210 
    211 code                        : http://git.bebou.netlib.re/qcm/file/README.html
    212 article (en fait le readme) : http://arthur.bebou.netlib.re/qcm/index.sh
    213 
    214 Pour résumer :
    215 
    216 	Un script à installer sur le serveur web
    217 	Qui lit des questionnaires écrit dans un certain format (du texte)
    218 	Ecoute en continue les logs du serveur et affiche les résultats
    219 	Nécessite un shell, xargs, sed, mktemp, stdbuf
    220 		 Que des choses déjà installées par défaut 
    221 		 sur la grande majorité des linux 
    222 		stdbuf : 2009
    223 
    224 
    225 
    226 
    227 › Et si on testait ?
    228 
    229 ssh mbb qcm
    230 
    231 › A quoi ressemble un questionnaire ?
    232 
    233 =======
    234 question: "De quand date ce raspberry ?"
    235 options: 2004~2012~2017~2023
    236 demander
    237 
    238 question: "Et son processeur ?"
    239 type: regex
    240 options: [0-9]+
    241 demander
    242 =======
    243 
    244 ssh mbb '< questionnaire qcm -i joeco -g'
    245 ssh mbb '< q qcm'
    246 
    247 › Les specs
    248 
    249 Raspberry zero W  v1.1 
    250 
    251 1GHz, single-core CPU
    252 512MB RAM
    253 
    254 BCM2835 - ARM1176JZF-S
    255 
    256 qcm: 5,3Ko
    257 "silent ! feh -F 1Ghz-?.png› Une idée de ce que ça représente
    258 
    259 Légende : Un screenshot d'un article publié par Wired datant
    260 		  de 2000 et documentant la sortie du premier processeur
    261 		  cadencé à plus de 1GHz. On y lit que presque personne
    262 		  n'a besoin d'une rapidité aussi froudroyante.
    263 
    264 
    265 › Et les performances ?
    266 
    267 10 qcm
    268 	
    269 	en idle              
    270 		cpu à 1% (usage normal)
    271 	recevant 10 réponses par secondes
    272 		cpu ~ 25/30%
    273 
    274 Pas un problème étant donné le contexte
    275 Ca n'a pas à "scale"
    276 
    277 › Pourquoi ssh ?
    278 
    279 Pour que la personne qui l'utilise ait le
    280 minimum de choses à installer sur son pc
    281 
    282 › Pourquoi ssh ?
    283 
    284 Pour que la personne qui l'utilise ait le
    285 minimum de choses à installer sur son pc
    286 
    287 Reproduire ce que les personnes qui fournissent
    288 des services trouvent alléchant dans le web :
    289 
    290 	Pas d'installation sur les clients
    291 	Gestion des majs plus simples
    292 	...
    293 
    294 
    295 
    296 › Pourquoi ssh ?
    297 
    298 Pour que la personne qui l'utilise ait le
    299 minimum de choses à installer sur son pc
    300 
    301 Reproduire ce que les personnes qui fournissent
    302 des services trouvent alléchant dans le web :
    303 
    304 	Pas d'installation sur les clients
    305 	Gestion des majs plus simples
    306 	...
    307 
    308 Quand tout se passe bien le déploiement du service
    309 consiste simplement à vérifier que le commande
    310 s'exécute bien sur le serveur.
    311 
    312 › En gros
    313 
    314 "C'est accessible en SSH, t'as juste à ouvrir ton terminal"
    315 
    316 est le nouveau
    317 
    318 "C'est accesible sur le site, t'as juste à ouvrir ton navigateur"
    319 
    320 
    321 › Pas une idée nouvelle
    322 
    323 Mettre ici des exemples
    324 
    325 Vieux
    326 demander à marc
    327 
    328 Plus moderne
    329 
    330 pico.sh (vendent même des trucs autour)
    331 
    332 créer un compte :
    333 ssh pico.sh
    334 
    335 poster un pastebin :
    336 ssh mbb 'cat q' | ssh pastes.sh
    337 
    338 Acheter du café
    339 terminal.shop
    340 
    341 telnet mapscii.me
    342 
    343 Ici citation de Marc
    344 
    345 	"en fait avant on disait 'telnet all the things !'"
    346 
    347 › Des exemples plus vieux/encore plus simples
    348 
    349 telnet : 1973
    350 telnet mapscii.me
    351 
    352 nc bebou.netlib.re 2222
    353 echo "c manger" | nc -N bebou.netlib.re 2222
    354 
    355 › Une philosophie pour construire des services
    356 
    357 Le propos n'est pas de  remplacer  toutes les applis webs avec des applis ssh
    358 
    359 L'idée est de diversifier les interfaces et les technologies pour rendre les
    360 services plus facile d'accès et plus résilients
    361 
    362 Suggestion de conduite de projet pour la création d'un service :
    363 
    364   1. Un minimum viable program (pas un POC). Partir sans à priori sur les
    365      outils à mobiliser pour le créer. 
    366   2.  Si besoin , créer des fonctionnalités et interfaces plus complexes  sans
    367      que cela se fasse au détriment des versions plus simples 
    368 
    369 Si c'est bien fait ça ne représente (presque) pas de dev en plus
    370 
    371 Avoir déjà les fonctionnalités et interfaces essentielles en production 
    372 permet de se poser la question du besoin de manière plus équilibrée
    373 puisque l'on pourra plus facilement opposer aux demandes le fait
    374 que l'on a déjà quelque chose qui fait (presque tout) le taf
    375 
    376 
    377 
    378 › Des personnes en discutent
    379 
    380 https://shazow.net/posts/ssh-how-does-it-even/
    381 https://ploum.net/2024-07-21-memoire-commune-numerique.html#soustitre-2