« Réunion du 14-06-2022 » : différence entre les versions
(13 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 12 : | Ligne 12 : | ||
[11:02] Ubit Umarov : :) | [11:02] Ubit Umarov : :) | ||
= Suivi de bogues= | = Suivi de bogues = | ||
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il ne s'est pas passé grand chose cette semaine, je continue à suivre les problèmes qui ont fait de leur mieux pour ne pas me donner de numéros de ligne sur les stacktraces. | [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il ne s'est pas passé grand chose cette semaine, je continue à suivre les problèmes qui ont fait de leur mieux pour ne pas me donner de numéros de ligne sur les stacktraces. | ||
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je reçois plus de rapports de problèmes dernièrement après la dernière version de mono, ce qui me fait craindre qu'il y | [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je reçois plus de rapports de problèmes dernièrement après la dernière version de mono, ce qui me fait craindre qu'il y aurait des bugs. | ||
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Difficile de tester de telles choses | [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Difficile de tester de telles choses | ||
= Microcontrôleur = | |||
* Note de traduction : en raison d'une conversation croisée, j'ai divisé les dialogues en deux chapitre. Voir les sources pour suivre le cour normal de la réunion. | |||
* Microcontrôleur : https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur | |||
* https://fr.wikipedia.org/wiki/PIC_de_la_famille_16C_ou_16F | |||
* Arduino : https://fr.wikipedia.org/wiki/Arduino | |||
[11:03] Ubit Umarov : ces dernières semaines j'ai été plus occupé à faire des bugs asm pic16f. | [11:03] Ubit Umarov : ces dernières semaines j'ai été plus occupé à faire des bugs asm pic16f. | ||
Ligne 82 : | Ligne 90 : | ||
[11:09] Ubit Umarov : correction de fautes de frappe : donc 1822/23/24 pour les petits projets, c'est génial :) | [11:09] Ubit Umarov : correction de fautes de frappe : donc 1822/23/24 pour les petits projets, c'est génial :) | ||
[11:09] Ubit Umarov : avant j'ai utilisé le 684 :) | [11:09] Ubit Umarov : avant j'ai utilisé le 684 :) | ||
Ligne 90 : | Ligne 96 : | ||
[11:10] Ubit Umarov : et bf bien sûr f84 | [11:10] Ubit Umarov : et bf bien sûr f84 | ||
[11:11] Ubit Umarov : bien sûr, maintenant tout le monde utilise arduino... duhhhh | |||
[11:11] Ubit Umarov : toujours impressionné par le prix de vente des arduinos actuels fabriqués en Chine. | |||
[11:12] Andrew Hellershanks : Ubit, ils sont souvent ridiculement bon marché. | |||
[11:12] Ubit Umarov : le coût est inférieur à celui du processeur. | |||
[11:12] Ubit Umarov : si on va acheter les pièces... | |||
[11:13] Motoko.Karu @login.digiworldz.com:8002 : J'avais l'habitude de poopoo arduinos... et j'avais besoin de faire un projet pour un client, dans l'urgence.... j'ai pu obtenir quelque chose de bricolé, avec un arduino en quelques heures.... <pour passer de zéro à la production> | |||
= Module de recherche = | |||
* OpenSimSearch(en) : http://opensimulator.org/index.php?title=OpenSimSearch | |||
* Base de données (en) : http://opensimulator.org/wiki/Database:Documentation | |||
[11:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Andrew, j'ai presque terminé le truc de la recherche maintenant, il ne reste que quelques cas limites étranges qui font que la recherche se lance sans raison. Il semble que le viewer envoie une chaîne de recherche vide pour vérifier si c'est disponible ou quelque chose, je ne suis pas sûr de ce qui se passe alors, mais je continue à obtenir des erreurs de termes de recherche invalides juste en restant sur une région. | |||
[11:10] Andrew Hellershanks : Vincent, sur quelles recherches as-tu travaillé ? | [11:10] Andrew Hellershanks : Vincent, sur quelles recherches as-tu travaillé ? | ||
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les lieux, les ventes de terrains et les petites annonces fonctionnent correctement maintenant. | [11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les lieux, les ventes de terrains et les petites annonces fonctionnent correctement maintenant. | ||
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Pour Événements, je n'ai encore rien à tester car la procédure est manquante donc rien dans la table pour le moment. | [11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Pour Événements, je n'ai encore rien à tester car la procédure est manquante donc rien dans la table pour le moment. | ||
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai nettoyé quelques trucs là-dedans pour rendre les requêtes plus concises. | [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai nettoyé quelques trucs là-dedans pour rendre les requêtes plus concises. | ||
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : Un peu de désordre avec les tables | [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : Un peu de désordre avec les tables | ||
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : A l'origine, je voulais réutiliser les fonctions pour la recherche web, mais cela n'a pas fonctionné. | [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : A l'origine, je voulais réutiliser les fonctions pour la recherche web, mais cela n'a pas fonctionné. | ||
[11:12] Andrew Hellershanks : Vincent, ok. C'est pour la recherche de base ? | [11:12] Andrew Hellershanks : Vincent, ok. C'est pour la recherche de base ? | ||
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Dérivé de celui que vous maintenez oui | [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Dérivé de celui que vous maintenez oui | ||
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Simplement écrit avec le framework CodeIgniter pour le rendre plus accessible. | [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Simplement écrit avec le framework CodeIgniter [https://fr.wikipedia.org/wiki/CodeIgniter] pour le rendre plus accessible. | ||
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mais cela peut être facilement | [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mais cela peut être facilement transféré à nouveau vers du php normal. | ||
[11:14] Andrew Hellershanks : Vincent, ok. Tu m'as fait craindre pendant un moment qu'il y avait eu des changements majeurs quelque part car il y a tous ceux qui utilisent le module ossearch. | [11:14] Andrew Hellershanks : Vincent, ok. Tu m'as fait craindre pendant un moment qu'il y avait eu des changements majeurs quelque part car il y a tous ceux qui utilisent le module ossearch. | ||
Ligne 129 : | Ligne 141 : | ||
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, je ne sais pas encore d'où ça vient, je suis en train de nettoyer les choses depuis que j'ai ajouté beaucoup de logs. | [11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, je ne sais pas encore d'où ça vient, je suis en train de nettoyer les choses depuis que j'ai ajouté beaucoup de logs. | ||
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que je peux confirmer que tout fonctionne, je vais commenter et documenter alors vous | [11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que je peux confirmer que tout fonctionne, je vais commenter et documenter alors vous pourrez avoir le code à transférer dans le php simple à nouveau. | ||
[11:16] Andrew Hellershanks : Vincent, le mieux est de le garder dans le code. Le cœur du système d'exploitation ne devrait pas être (trop) dépendant de pages externes pour sa fonctionnalité principale. | [11:16] Andrew Hellershanks : Vincent, le mieux est de le garder dans le code. Le cœur du système d'exploitation ne devrait pas être (trop) dépendant de pages externes pour sa fonctionnalité principale. | ||
Ligne 143 : | Ligne 155 : | ||
[11:17] Ubit Umarov : les viewers s'attendent à ce que ces choses soient des choses externes. | [11:17] Ubit Umarov : les viewers s'attendent à ce que ces choses soient des choses externes. | ||
[11:17] Andrew Hellershanks : Vincent, il y a une table séparée pour les événements. Ils doivent être créés en utilisant une page web externe. Il n'y a rien dans le viewer qui | [11:17] Andrew Hellershanks : Vincent, il y a une table séparée pour les événements. Ils doivent être créés en utilisant une page web externe. Il n'y a rien dans le viewer qui permet de les créer. | ||
[11:17] Ubit Umarov : et pour certaines c'est logique que ce soit externe. | [11:17] Ubit Umarov : et pour certaines c'est logique que ce soit externe. | ||
Ligne 159 : | Ligne 171 : | ||
[11:19] Andrew Hellershanks : La partie recherche web est délicate. Je n'ai pas encore trouvé comment faire une recherche sur plusieurs types de données et retourner les résultats mixtes pour les présenter à l'utilisateur. | [11:19] Andrew Hellershanks : La partie recherche web est délicate. Je n'ai pas encore trouvé comment faire une recherche sur plusieurs types de données et retourner les résultats mixtes pour les présenter à l'utilisateur. | ||
[11:19] Vincent.Sylvester @hg.zetaworlds.com:8002 : beaucoup de inner join dans sql. | [11:19] Vincent.Sylvester @hg.zetaworlds.com:8002 : beaucoup de INNER JOIN [https://sql.sh/cours/jointures/inner-join] dans sql[https://fr.wikipedia.org/wiki/Structured_Query_Language]. | ||
[11:19] Andrew Hellershanks : C'est nécessaire. Cela peut devenir assez compliqué. | [11:19] Andrew Hellershanks : C'est nécessaire. Cela peut devenir assez compliqué. | ||
Ligne 165 : | Ligne 177 : | ||
[11:20] Ubit Umarov : bien sûr, beaucoup de recherches ont besoin de données sur plusieurs bases de données. | [11:20] Ubit Umarov : bien sûr, beaucoup de recherches ont besoin de données sur plusieurs bases de données. | ||
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que j'ai compris qu'on ne peut pas mélanger charsets et collations sans perte massive de performance, cela fonctionne plutôt bien maintenant. | [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que j'ai compris qu'on ne peut pas mélanger charsets[https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res] et collations (?) sans perte massive de performance, cela fonctionne plutôt bien maintenant. | ||
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut probablement le faire en php aussi en joignant simplement des tableaux. | [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut probablement le faire en php aussi en joignant simplement des tableaux. | ||
Ligne 173 : | Ligne 185 : | ||
[11:20] Ubit Umarov : il y a quelque chose qui ne va pas avec ça. | [11:20] Ubit Umarov : il y a quelque chose qui ne va pas avec ça. | ||
[11:20] Ubit Umarov : il est possible que mysql et maria ne fonctionnent pas bien pour le moment. | [11:20] Ubit Umarov : il est possible que mysql[https://fr.wikipedia.org/wiki/MySQL] et maria [https://fr.wikipedia.org/wiki/MariaDB] ne fonctionnent pas bien pour le moment. | ||
[11:21] Ubit Umarov : parce que l'on est supposé avoir des tables différentes, et le latin pour être rapide. | [11:21] Ubit Umarov : parce que l'on est supposé avoir des tables différentes, et le latin pour être rapide. | ||
Ligne 185 : | Ligne 197 : | ||
[11:21] Andrew Hellershanks : Vincent, cela pourrait fonctionner. La plupart des résultats de recherche proviennent d'une base de données, mais pour inclure des groupes, il faut généralement effectuer une recherche séparée, car ces données se trouvent dans une autre base de données. | [11:21] Andrew Hellershanks : Vincent, cela pourrait fonctionner. La plupart des résultats de recherche proviennent d'une base de données, mais pour inclure des groupes, il faut généralement effectuer une recherche séparée, car ces données se trouvent dans une autre base de données. | ||
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ils disent aussi que les sous-requêtes sont plus rapides que les | [11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ils disent aussi que les sous-requêtes sont plus rapides que les INNER JOIN et je ne vois pas de différence. | ||
[11:22] Ubit Umarov : duhh la version absurde de | [11:22] Ubit Umarov : duhh la version absurde de Mono[https://fr.wikipedia.org/wiki/Mono_(logiciel)] me vient à l'esprit. | ||
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : La dernière version de mariadb m'a également posé des problèmes | [11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : La dernière version de mariadb m'a également posé des problèmes | ||
Ligne 197 : | Ligne 209 : | ||
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : 10.3 à 10.8 était probablement un peu trop. | [11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : 10.3 à 10.8 était probablement un peu trop. | ||
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : | [11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut tout résoudre, mais on ne s'en rend pas compte si on ne vérifie pas les logs. | ||
[11:24] Ubit Umarov : je crains que les jours du bon code opensource soient révolus. | [11:24] Ubit Umarov : je crains que les jours du bon code opensource soient révolus. | ||
Ligne 205 : | Ligne 217 : | ||
[11:24] Andrew Hellershanks : MariaDB est à la version 10.x ? | [11:24] Andrew Hellershanks : MariaDB est à la version 10.x ? | ||
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je pense que 10.8 est la dernière version maintenant. | [11:24] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je pense que 10.8 est la dernière version maintenant. [Note de traduction : 10.10.0 (23 juin 2022)] | ||
[11:25] Ubit Umarov : j'ai eu une mantis sur 10.8 il y a longtemps | [11:25] Ubit Umarov : j'ai eu une mantis sur 10.8 il y a longtemps | ||
[11:25] Andrew Hellershanks : ok. J'ai deux machines distantes qui utilisent MariaDB. Elles fonctionnent avec une LTS donc elles ont une version beaucoup plus ancienne de Maria. 5.5 quelque chose, si je me souviens bien. | [11:25] Andrew Hellershanks : ok. J'ai deux machines distantes qui utilisent MariaDB. Elles fonctionnent avec une LTS [https://fr.wikipedia.o] donc elles ont une version beaucoup plus ancienne de Maria. 5.5 quelque chose, si je me souviens bien. | ||
[11:25] Andrew Hellershanks : Mon ordinateur utilise toujours MySQL. | [11:25] Andrew Hellershanks : Mon ordinateur utilise toujours MySQL. | ||
Ligne 215 : | Ligne 227 : | ||
[11:26] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les versions de mariadb incluses dans les dépôts de la distro sont anciennes. | [11:26] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les versions de mariadb incluses dans les dépôts de la distro sont anciennes. | ||
[11:26] Ubit Umarov : il semble que les tentatives d'utiliser mysql et maria sur osgrid ont échoué. | [11:26] Ubit Umarov : il semble que les tentatives d'utiliser mysql et maria sur osgrid[https://www.osgrid.org/] ont échoué. | ||
[11:26] Ubit Umarov : je les utilise en mode multi-serveur. | [11:26] Ubit Umarov : je les utilise en mode multi-serveur. | ||
Ligne 223 : | Ligne 235 : | ||
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si on a besoin de configurations distribuées comme ça | [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si on a besoin de configurations distribuées comme ça | ||
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : CockroachDB | [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : CockroachDB [https://www.cockroachlabs.com/] | ||
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Est-ce que ça marche mieux ? Je n'en ai aucune idée, je ne l'ai pas encore essayé. | [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Est-ce que ça marche mieux ? Je n'en ai aucune idée, je ne l'ai pas encore essayé. | ||
Ligne 231 : | Ligne 243 : | ||
[11:28] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une de ces nouvelles startups, donc qui sait combien de temps elles vont rester ou qui les rachètera à la fin ? | [11:28] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une de ces nouvelles startups, donc qui sait combien de temps elles vont rester ou qui les rachètera à la fin ? | ||
= Changement récent d'OpenSim= | = Changement récent d'OpenSim : fsassets= | ||
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim] | |||
* [http://opensimulator.org/mantis/my_view_page.php Mantis : suivi de bogues] | |||
[11:28] Ubit Umarov : bien sur les changements récents d'opensim, pas grand chose. | [11:28] Ubit Umarov : bien sur les changements récents d'opensim, pas grand chose. | ||
[11:29] Ubit Umarov : j'ai essayé de rendre fsassets un peu plus robuste quand on utilise plusieurs instances. | [11:29] Ubit Umarov : j'ai essayé de rendre fsassets[http://opensimulator.org/wiki/FSAsse] un peu plus robuste quand on utilise plusieurs instances. | ||
[11:30] Ubit Umarov : fsassets stocke les assets dans un dossier et un dossier temporaire, et un thread les copie périodiquement dans le dossier principal et les supprime... | [11:30] Ubit Umarov : fsassets stocke les assets dans un dossier et un dossier temporaire, et un thread les copie périodiquement dans le dossier principal et les supprime... | ||
Ligne 244 : | Ligne 259 : | ||
[11:31] Ubit Umarov : j'ai enfermé cela sur LOCK pour être sûr qu'il n'y en ait qu'un seul. | [11:31] Ubit Umarov : j'ai enfermé cela sur LOCK pour être sûr qu'il n'y en ait qu'un seul. | ||
[11:32] Ubit Umarov : puis j'ai ajouté une entrée ini pour signaler les services secondaires fonctionnant sur d'autres processus, afin qu'ils n'essaient pas de les exécuter. | [11:32] Ubit Umarov : puis j'ai ajouté une entrée ini [http://opensimulator.org/wiki/Configuring] pour signaler les services secondaires fonctionnant sur d'autres processus, afin qu'ils n'essaient pas de les exécuter. | ||
[11:32] Ubit Umarov : ce n'est pas une belle solution... mais voyons voir... | [11:32] Ubit Umarov : ce n'est pas une belle solution... mais voyons voir... | ||
[11:33] Ubit Umarov: | [11:33] Ubit Umarov : ce problème peut causer la perte de données pour une grille. | ||
[11:33] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:33] Vincent.Sylvester @hg.zetaworlds.com:8002 : Un cadenas bien placé peut éviter beaucoup de problèmes hehe. | |||
[11:33] Andrew Hellershanks: :) | [11:33] Andrew Hellershanks: :) | ||
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: Mono | [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je n'ai pas rencontré de problèmes avec les assets de ce type en ayant un serveur d'assets de type php branché, j'aurais pensé qu'ils apparaîtraient là aussi. | ||
[11:35] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut imaginer qu'une permission n'est pas respectée. | ||
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mono ne se charge pas des fichiers en cours d'utilisation | ||
[11:39] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:35] Vincent.Sylvester @hg.zetaworlds.com:8002 : Idéalement, il est préférable de mettre fsassets sous son propre utilisateur[https://doc.ubuntu-fr.org/utilisateur] sous linux également, ce qui facilite la maintenance à bien des égards. | ||
[11:41] Andrew Hellershanks: XML | |||
[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:37] Vincent.Sylvester @hg.zetaworlds.com:8002 : Malheureusement, aucune des conceptions disponibles ne fonctionne vraiment bien pour le CDN[https://fr.wikipedia.org/wiki/R%C3%A9seau_de_diffusion_de_contenu]. Il fonctionne sur des données périmées à court intervalle, mais c'est une douleur à mettre en place à moins que vous construisiez le CDN vous-même. | ||
[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:42] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:37] Vincent.Sylvester @hg.zetaworlds.com:8002 : La plupart des hébergeurs n'ont pas le niveau de contrôle ou ne récupèrent pas les informations nécessaires sur les fichiers. | ||
[11:42] Andrew Hellershanks: | |||
[11:42] Andrew Hellershanks: Plus | [11:38] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je l'ai configuré avec un failover[https://fr.wikipedia.org/wiki/B], c'est ce qui fonctionne le mieux, mais c'est juste une solution de contournement, pas une véritable solution. | ||
[11:43] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:43] Ubit Umarov: | [11:39] Vincent.Sylvester @hg.zetaworlds.com:8002 : Quelqu'un de très intelligent a eu l'idée d'utiliser le XML [https://fr.wikipedia.org/wiki/Extensible_Markup_Language] pour tout cela, ce qui fonctionne très bien... pas très bien. | ||
[11:43] Ubit Umarov: | |||
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:40] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai reçu quelques demandes cette semaine concernant la vérification de l'inventaire des personnes qui ne signalaient ne plus avoir d'inventaire, il semble qu'au moins un spectateur ait déjà procédé à la vérification. | ||
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:41] Andrew Hellershanks : XML est utile pour l'échange de données, mais ce n'est pas la meilleure idée lorsqu'il s'agit de transmettre beaucoup de données dans les deux sens de manière fréquente. | ||
[11:45] Andrew Hellershanks: | |||
[11:45] Ubit Umarov: yeak | [11:41] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est génial si votre structure n'est pas fixe et que vous avez besoin de savoir à quoi correspond un paramètre oui. | ||
[11:45] Ubit Umarov: | |||
[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:41] Vincent.Sylvester @hg.zetaworlds.com:8002 : Sinon, c'est plus de la description que des données dans beaucoup trop de cas. | ||
[11:47] Ubit Umarov: | |||
[11:47] Ubit Umarov: :) | [11:42] Vincent.Sylvester @hg.zetaworlds.com:8002 : De plus, nous convertissons sql en xml, ce qui est probablement plus lent que d'obtenir directement du xml, donc dans certains cas, une base de données de documents pourrait être mieux adaptée. | ||
[11:48] Ubit Umarov: | |||
[11:49] Ubit Umarov: | [11:42] Andrew Hellershanks : Exact | ||
[11:49] Ubit Umarov: | |||
[11:49] | [11:42] Andrew Hellershanks : Plus le temps nécessaire à l'analyse de tout le texte. | ||
[11:50] Ubit Umarov: | [11:43] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mais refaire des choses comme l'inventaire ou les groupes en mongoDB [https://fr.wikipedia.org/wiki/MongoDB], ça me fait mal au cerveau... | ||
[11:50] Andrew Hellershanks: hehe... | |||
[11:43] Ubit Umarov : bien, quelques communications entre les régions et le mysql lare text aussi. | |||
[11:50] Ubit Umarov: ohh linus | |||
[11:51] Ubit Umarov: | [11:43] Ubit Umarov : commandes sql pures | ||
[11:51] Ubit Umarov: | |||
[11: | [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est sur ma liste de choses à faire, il y a du potentiel, mais aussi une montagne de travail et de tests. | ||
[11: | |||
[11: | = Les ordinateurs et l'eau = | ||
[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : Et coder dans la chaleur de l'été est infiniment plus difficile. | ||
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[11:56] Ubit Umarov: | [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : Surtout sans piscine | ||
[11:57] Ubit Umarov: | |||
[11:58] Ubit Umarov: OS_NPC_SENSE_AS_AGENT | [11:45] Andrew Hellershanks : Codage risqué dans la piscine. Si tu t'endors, l'ordinateur risque de se baigner :) | ||
[11:58] Ubit Umarov: | |||
[11:59] Ubit Umarov: public const int OS_NPC = 0x01000000; | [11:45] Ubit Umarov : yeak | ||
[11:59] Andrew Hellershanks: Vincent, | |||
[11:59] Ubit Umarov: | [11:45] Ubit Umarov : les ordinateurs ne savent pas nager. | ||
[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[12:01] Andrew Hellershanks: | [11:46] Vincent.Sylvester @hg.zetaworlds.com:8002 : On pourrait remplir la piscine d'huile | ||
[12:01] Ubit Umarov: | |||
[12:01] Andrew Hellershanks: | [11:47] Ubit Umarov : alors pas agréable pour les humains | ||
[12:02] Andrew Hellershanks: | |||
[12:02] Ubit Umarov: ahh | [11:47] Ubit Umarov: :) | ||
[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002: | [11:48] Ubit Umarov : il est possible de faire fonctionner un | ||
[12:03] Ubit Umarov: | ordinateur sur de l'eau. | ||
[12:03] Ubit Umarov: | |||
[12:03] Ubit Umarov: if((obj.colliderType & 0x21) != 0) // avatar | [11:49] Ubit Umarov : plusieurs l'ont fait. | ||
[12:04] Andrew Hellershanks: | |||
[11:49] Ubit Umarov : juste de l'eau distillée, etc. | |||
[11:49] Ubit Umarov : l'eau distillée avec peu d'impuretés est un isolant relatif. | |||
[11:50] Ubit Umarov : bien sûr, je n'oserais pas mettre le psu sur l'eau, quel que soit le type d'eau :) | |||
[11:50] Andrew Hellershanks : hehe... le faire fonctionner sur l'eau. Pendant un instant, j'ai imaginé un ordinateur portable flottant sur l'eau. | |||
[11:50] Ubit Umarov : ohh linus a fait ça pour refroidir un mac. | |||
[11:51] Ubit Umarov : en gros, je l'ai fait tourner avec le fond sur l'eau :) | |||
[11:51] Ubit Umarov : pour découvrir qu'il était aussi réduit en puissance... donc aucun gain réel. | |||
[11:52] Ubit Umarov : pas étonnant que M1 pouvait mettre des cpus intel sur des macs pourris. | |||
[11:52] Ubit Umarov : les pauvres processeurs intel n'avaient pas le droit de fonctionner, soit à cause de la température, soit à cause de la limitation de la puissance. | |||
= Détection des NPC avec llSensor= | |||
[11:49] Andrew Hellershanks : 12 minutes avant le début de l'heure. J'ai une question. J'ai entendu dire que llSensor[https://wiki.secondlife.com/wiki/LlSensor] devrait être capable de détecter les NPC[http://opensimulator.org/wiki/NPC] en utilisant la valeur OS_NPC [http://opensimulator.org/wiki/OSSL_Constants] . Cependant, on m'a dit que cela ne fonctionne qu'avec XEngine [http://opensimulator.org/wiki/Xengine] et non YEngine (Y). Je n'ai pas encore confirmé cela. Devrait-il y avoir une différence avec llSensor en fonction du moteur de script utilisé ? | |||
[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cela devrait fonctionner avec Y également | |||
[11:51] Andrew Hellershanks : Vincent, c'est ce que je pensais. Il est toujours possible que ce soit une erreur de script. J'ai essayé de trouver où OS_NPC est utilisé pour vérifier que c'est la bonne valeur pour détecter un NPC. J'ai trouvé où la valeur est définie mais je n'ai pas pu trouver où elle était utilisée dans le code llSensor. | |||
[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je pense que mon détecteur de visiteurs continue à enregistrer le npc de l'accueil, je pense qu'il utilise un sensor. | |||
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cela devrait être facile à tester | |||
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si tu mets le script en ligne, je peux y jeter un coup d'oeil et voir si je peux trouver ce qui ne va pas. | |||
[11:56] Ubit Umarov : Je pense que OS_NPC a un problème. | |||
[11:57] Ubit Umarov : Il y a en fait 2 flags. | |||
[11:58] Ubit Umarov : OS_NPC_SENSE_AS_AGENT [http://opensimulator.org/wiki/OSSL_Constants] | |||
[11:58] Ubit Umarov : Je suppose que c'est celui pour les sensors. | |||
[11:59] Ubit Umarov : public const int OS_NPC = 0x01000000 ; | |||
[11:59] Andrew Hellershanks : Vincent, ce n'est pas mon script mais je pourrais contacter la personne qui a le problème avec le script. | |||
[11:59] Ubit Umarov : non utilisé :) | |||
[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il est toujours plus facile de déboguer quelque chose avec du code à portée de main pour voir où se situe le problème. | |||
[12:01] Andrew Hellershanks : Oui. | |||
[12:01] Ubit Umarov : Je ne me rappelle pas ce que OS_NPC était censé être. | |||
[12:01] Andrew Hellershanks : Il me semblait étrange que le changement de moteur fasse une différence. | |||
[12:02] Andrew Hellershanks : Je ne sais même pas où ils ont lu qu'ils utilisaient OS_NPC. | |||
[12:02] Ubit Umarov : ahh c'était une forme de TYPE. | |||
[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, je pense que c'était pour isNPC [http://opensimulator.org/wiki/OsIsNpc] et d'autres choses. | |||
[12:03] Ubit Umarov : sur les paramètres de détection. | |||
[12:03] Ubit Umarov : mais c'est maintenant 0x20. | |||
[12:03] Ubit Umarov : if((obj.colliderType & 0x21) != 0) // avatar ou npc+. | |||
[12:04] Andrew Hellershanks : J'ai trouvé SENSE_AS_AGENT comme option dans le code. Il semble qu'on doive activer ce flag lors de la création du NPC. | |||
[12:04] Ubit Umarov: colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs | [12:04] Ubit Umarov: colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs | ||
[12:05] Ubit Umarov: | |||
[12:06] Andrew Hellershanks | [12:05] Ubit Umarov : Donc OS_NPC semble juste obsolète... juste parce que... | ||
[12:06] Andrew Hellershanks: | |||
[12:07] Andrew Hellershanks: | [12:06] Andrew Hellershanks hoche la tête. | ||
[12:08] Andrew Hellershanks: | |||
[12:08] Ubit Umarov: | [12:06] Andrew Hellershanks : Je viens de regarder la page web sur osNpcCreate [http://opensimulator.org/wiki/OsNpcCreate]. Il est dit que pour que SENSE_AS_AGENT fonctionne, il y a un paramètre ini qui doit être activé. | ||
[12:08] Ubit Umarov: | |||
[12:07] Andrew Hellershanks : Je ne serais pas surpris qu'ils ne passent pas le flag lors de la création du NPC et que le paramètre ini ne soit pas activé. | |||
[12:08] Andrew Hellershanks : Merci pour l'information. | |||
[12:08] Ubit Umarov : Par défaut un NPC ne devrait pas être détecté comme un agent. | |||
[12:08] Ubit Umarov : Sauf si on demande de le faire dans npc_create. | |||
[12:09] Ubit Umarov: rivate LSL_Key NpcCreate( | [12:09] Ubit Umarov: rivate LSL_Key NpcCreate( | ||
string firstname, string lastname, LSL_Vector position, string notecard, bool owned, bool senseAsAgent, bool hostGroupID) | string firstname, string lastname, LSL_Vector position, string notecard, bool owned, bool senseAsAgent, bool hostGroupID) | ||
[12:09] Andrew Hellershanks: | |||
[12:09] Vincent.Sylvester @hg.zetaworlds.com:8002: | [12:09] Andrew Hellershanks : Oui, je pense que c'est une partie du problème qu'ils rencontrent. La raison pour laquelle il est possible de détecter les NPC est de s'assurer qu'ils sont retirés de la scène lorsqu'ils ne sont plus nécessaires. | ||
[12:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai un script pour tuer les NPC quelque part. | |||
[12:10] Vincent.Sylvester @hg.zetaworlds.com:8002: list inRegion=osGetAvatarList(); osIsNpc(llList2Key(inRegion,i)) | [12:10] Vincent.Sylvester @hg.zetaworlds.com:8002: list inRegion=osGetAvatarList(); osIsNpc(llList2Key(inRegion,i)) | ||
[12:10] Andrew Hellershanks: Vincent, | |||
[12:11] Andrew Hellershanks: Vincent, | osGetAvatarList();[http://opensimulator.org/wiki/OsGetAvatar] | ||
[12:11] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[12:11] Andrew Hellershanks: | [12:10] Andrew Hellershanks : Vincent, si tu le trouves, envoie-moi une copie et je la transmettrai une autre option à utiliser. Toutes les grilles n'auront pas cette fonctionnalité activée dans l'ini. | ||
[12:12] Vincent.Sylvester @hg.zetaworlds.com:8002: | |||
[12:13] Andrew Hellershanks: Vincent, | [12:11] Andrew Hellershanks : Vincent, c'est assez simple. | ||
[12:13] Andrew Hellershanks: | |||
[12:14] Andrew Hellershanks: | [12:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : A partir de là, tu as la clé du npc et tu peux les atomiser. | ||
[12:14] Ubit Umarov: :) | |||
[12:14] Andrew Hellershanks: | [12:11] Andrew Hellershanks : C'est ça. | ||
[12:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut également récupérer les paramètres de l'agent via la clé pour voir si c'est celui qu'on veut supprimer. | |||
[12:13] Andrew Hellershanks : Vincent, je vais transmettre cette information. | |||
= Conclusion= | |||
[12:13] Andrew Hellershanks : L'heure est passée de 15 minutes. Y a-t-il une dernière remarque à faire avant de conclure la réunion d'aujourd'hui ? | |||
[12:14] Andrew Hellershanks : Je ne vois personne en train de taper, donc je vais considérer que c'est un non. | |||
[12:14] Ubit Umarov : :) | |||
[12:14] Andrew Hellershanks : C'est tout pour une autre semaine. Merci à tous d'être venus. Nous vous verrons la semaine prochaine. |
Dernière version du 28 juin 2022 à 19:19
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-06-14
Introduction
[11:00] Ubit Umarov : oh andrew est arrivé exactement à l'heure.
[11:00] Andrew Hellershanks : Bonjour, tout le monde.
[11:01] Ubit Umarov : motoko sous une forme plus humaine, si on ignore les yeux et les oreilles rouges.
[11:01] Motoko.Karu @login.digiworldz.com:8002 : motoko occasionnelle aujourd'hui :)
[11:02] Ubit Umarov : :)
Suivi de bogues
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il ne s'est pas passé grand chose cette semaine, je continue à suivre les problèmes qui ont fait de leur mieux pour ne pas me donner de numéros de ligne sur les stacktraces.
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je reçois plus de rapports de problèmes dernièrement après la dernière version de mono, ce qui me fait craindre qu'il y aurait des bugs.
[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : Difficile de tester de telles choses
Microcontrôleur
- Note de traduction : en raison d'une conversation croisée, j'ai divisé les dialogues en deux chapitre. Voir les sources pour suivre le cour normal de la réunion.
- Microcontrôleur : https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur
- https://fr.wikipedia.org/wiki/PIC_de_la_famille_16C_ou_16F
- Arduino : https://fr.wikipedia.org/wiki/Arduino
[11:03] Ubit Umarov : ces dernières semaines j'ai été plus occupé à faire des bugs asm pic16f.
[11:03] Motoko.Karu @login.digiworldz.com:8002 : ohhh.. o_o pic microchip... sympa...
[11:04] Ubit Umarov : un petit 16f1823 dans ce cas :)
[11:04] Motoko.Karu @login.digiworldz.com:8002 : j'espère que ce n'est pas le 16f84 :)
[11:04] Andrew Hellershanks : Ubit, les miracles se produisent ;)
[11:04] Ubit Umarov : En gros, ça marche.
[11:04] Ubit Umarov : f84 c'était super.
[11:05] Andrew Hellershanks : Bah, PIC. AVR, FTW ;)
[11:05] Ubit Umarov : 1823 14 est un dérivé moderne ... enfin pas si moderne que ça maintenant.
[11:05] Andrew Hellershanks : Bonjour, Selby.
[11:05] Motoko.Karu @login.digiworldz.com:8002 : c'était bien pour les choses simples... avec a2d... c'est devenu ridicule.
[11:05] Selby.Evans @grid.kitely.com:8002 : bonjour à tous.
[11:05] Ubit Umarov : petit boîtier 14pin etc.
[11:05] Motoko.Karu @login.digiworldz.com:8002 : J'ai fini par en trouver un qui avait intégré a2d.
[11:05] Motoko.Karu @login.digiworldz.com:8002 : plus tard déplacé vers avr
[11:05] Ubit Umarov : salut selby.Evans
[11:05] Motoko.Karu @login.digiworldz.com:8002 : le changement de banque m'a toujours eu...
[11:05] Ubit Umarov : bien avr est aussi microchip maintenant
[11:06] Ubit Umarov : oui c'est une douleur, source de beaucoup de bogues.
[11:06] Andrew Hellershanks : Le changement de banque est l'une des choses qui m'ont fait renoncer aux PICs.
[11:06] Ubit Umarov : aussi des pages de rom effrayantes.
[11:06] Ubit Umarov : mais pas de problème sur le 1823... toutes les roms tiennent sur une seule page.
[11:07] Ubit Umarov : 24 également si je me souviens bien.
[11:07] Ubit Umarov : J'ai détesté la 508.
[11:07] Ubit Umarov : quand j'ai été obligé de l'utiliser...
[11:08] Andrew Hellershanks : Il n'y a pas beaucoup de monde aujourd'hui. Je vais attendre encore quelques minutes avant de commencer.
[11:08] Ubit Umarov : Je voulais utiliser l'avr... mais le client voulait 12f508 au maximum 509.
[11:08] Motoko.Karu @login.digiworldz.com:8002 : Je n'ai jamais beaucoup joué avec les 12F.
[11:09] Ubit Umarov : 171822/23/24 pour des petits projets, c'est génial :)
[11:09] Motoko.Karu @login.digiworldz.com:8002 : je voulais passer à 18F... puisque beaucoup avaient des options multiples...
[11:09] Ubit Umarov : oops
[11:09] Ubit Umarov : correction de fautes de frappe : donc 1822/23/24 pour les petits projets, c'est génial :)
[11:09] Ubit Umarov : avant j'ai utilisé le 684 :)
[11:09] Ubit Umarov : modèles similaires
[11:10] Ubit Umarov : et bf bien sûr f84
[11:11] Ubit Umarov : bien sûr, maintenant tout le monde utilise arduino... duhhhh
[11:11] Ubit Umarov : toujours impressionné par le prix de vente des arduinos actuels fabriqués en Chine.
[11:12] Andrew Hellershanks : Ubit, ils sont souvent ridiculement bon marché.
[11:12] Ubit Umarov : le coût est inférieur à celui du processeur.
[11:12] Ubit Umarov : si on va acheter les pièces...
[11:13] Motoko.Karu @login.digiworldz.com:8002 : J'avais l'habitude de poopoo arduinos... et j'avais besoin de faire un projet pour un client, dans l'urgence.... j'ai pu obtenir quelque chose de bricolé, avec un arduino en quelques heures.... <pour passer de zéro à la production>
Module de recherche
- OpenSimSearch(en) : http://opensimulator.org/index.php?title=OpenSimSearch
- Base de données (en) : http://opensimulator.org/wiki/Database:Documentation
[11:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Andrew, j'ai presque terminé le truc de la recherche maintenant, il ne reste que quelques cas limites étranges qui font que la recherche se lance sans raison. Il semble que le viewer envoie une chaîne de recherche vide pour vérifier si c'est disponible ou quelque chose, je ne suis pas sûr de ce qui se passe alors, mais je continue à obtenir des erreurs de termes de recherche invalides juste en restant sur une région.
[11:10] Andrew Hellershanks : Vincent, sur quelles recherches as-tu travaillé ?
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les lieux, les ventes de terrains et les petites annonces fonctionnent correctement maintenant.
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : Pour Événements, je n'ai encore rien à tester car la procédure est manquante donc rien dans la table pour le moment.
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai nettoyé quelques trucs là-dedans pour rendre les requêtes plus concises.
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : Un peu de désordre avec les tables
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : A l'origine, je voulais réutiliser les fonctions pour la recherche web, mais cela n'a pas fonctionné.
[11:12] Andrew Hellershanks : Vincent, ok. C'est pour la recherche de base ?
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Dérivé de celui que vous maintenez oui
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Simplement écrit avec le framework CodeIgniter [1] pour le rendre plus accessible.
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mais cela peut être facilement transféré à nouveau vers du php normal.
[11:14] Andrew Hellershanks : Vincent, ok. Tu m'as fait craindre pendant un moment qu'il y avait eu des changements majeurs quelque part car il y a tous ceux qui utilisent le module ossearch.
[11:14] Andrew Hellershanks : Intéressant que tu aies vu une requête de recherche vide. Je n'ai jamais remarqué cela lorsque je travaillais avec Ossearch.
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, je ne sais pas encore d'où ça vient, je suis en train de nettoyer les choses depuis que j'ai ajouté beaucoup de logs.
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que je peux confirmer que tout fonctionne, je vais commenter et documenter alors vous pourrez avoir le code à transférer dans le php simple à nouveau.
[11:16] Andrew Hellershanks : Vincent, le mieux est de le garder dans le code. Le cœur du système d'exploitation ne devrait pas être (trop) dépendant de pages externes pour sa fonctionnalité principale.
[11:16] Ubit Umarov : Je suppose que vous parlez tous les deux des modules de recherche.
[11:16] Ubit Umarov : ?
[11:16] Andrew Hellershanks : Ubit, oui
[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002 : La plupart des recherches ne font qu'envoyer les requêtes vers des choses externes. Les personnes et les groupes sont gérés directement, mais les autres choses dépendent de choses externes.
[11:17] Ubit Umarov : les viewers s'attendent à ce que ces choses soient des choses externes.
[11:17] Andrew Hellershanks : Vincent, il y a une table séparée pour les événements. Ils doivent être créés en utilisant une page web externe. Il n'y a rien dans le viewer qui permet de les créer.
[11:17] Ubit Umarov : et pour certaines c'est logique que ce soit externe.
[11:17] Ubit Umarov : c'est la raison pour laquelle le noyau n'a pas de recherche.
[11:17] Ubit Umarov : c'est une chose globale côté grille.
[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002 : Le fait qu'il s'agisse de php signifie qu'il est beaucoup plus facile d'implémenter un moteur de recherche.
[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002 : La recherche web peut faire des mots-clés et d'autres choses
[11:18] Ubit Umarov : eh bien php peut ne rien vouloir dire... les régions servent des urls *php :)
[11:19] Andrew Hellershanks : La partie recherche web est délicate. Je n'ai pas encore trouvé comment faire une recherche sur plusieurs types de données et retourner les résultats mixtes pour les présenter à l'utilisateur.
[11:19] Vincent.Sylvester @hg.zetaworlds.com:8002 : beaucoup de INNER JOIN [2] dans sql[3].
[11:19] Andrew Hellershanks : C'est nécessaire. Cela peut devenir assez compliqué.
[11:20] Ubit Umarov : bien sûr, beaucoup de recherches ont besoin de données sur plusieurs bases de données.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une fois que j'ai compris qu'on ne peut pas mélanger charsets[4] et collations (?) sans perte massive de performance, cela fonctionne plutôt bien maintenant.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut probablement le faire en php aussi en joignant simplement des tableaux.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Même chose
[11:20] Ubit Umarov : il y a quelque chose qui ne va pas avec ça.
[11:20] Ubit Umarov : il est possible que mysql[5] et maria [6] ne fonctionnent pas bien pour le moment.
[11:21] Ubit Umarov : parce que l'on est supposé avoir des tables différentes, et le latin pour être rapide.
[11:21] Vincent.Sylvester @hg.zetaworlds.com:8002 : On m'a dit que c'était normal, ce qui est difficile à croire, mais les cochons peuvent aussi voler.
[11:21] Ubit Umarov : possiblement normal pour les codeurs actuels.
[11:21] Ubit Umarov : c'est fou ce qui se passe ici et là.
[11:21] Andrew Hellershanks : Vincent, cela pourrait fonctionner. La plupart des résultats de recherche proviennent d'une base de données, mais pour inclure des groupes, il faut généralement effectuer une recherche séparée, car ces données se trouvent dans une autre base de données.
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ils disent aussi que les sous-requêtes sont plus rapides que les INNER JOIN et je ne vois pas de différence.
[11:22] Ubit Umarov : duhh la version absurde de Mono[7] me vient à l'esprit.
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : La dernière version de mariadb m'a également posé des problèmes
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : les migrations de schéma de performance ont échoué.
[11:22] Ubit Umarov : et les notes de version ont perdu la mauvaise version.
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : 10.3 à 10.8 était probablement un peu trop.
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut tout résoudre, mais on ne s'en rend pas compte si on ne vérifie pas les logs.
[11:24] Ubit Umarov : je crains que les jours du bon code opensource soient révolus.
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002 : Trop de cadres et de grandes idées qui réinventent la roue... mal.
[11:24] Andrew Hellershanks : MariaDB est à la version 10.x ?
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je pense que 10.8 est la dernière version maintenant. [Note de traduction : 10.10.0 (23 juin 2022)]
[11:25] Ubit Umarov : j'ai eu une mantis sur 10.8 il y a longtemps
[11:25] Andrew Hellershanks : ok. J'ai deux machines distantes qui utilisent MariaDB. Elles fonctionnent avec une LTS [8] donc elles ont une version beaucoup plus ancienne de Maria. 5.5 quelque chose, si je me souviens bien.
[11:25] Andrew Hellershanks : Mon ordinateur utilise toujours MySQL.
[11:26] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les versions de mariadb incluses dans les dépôts de la distro sont anciennes.
[11:26] Ubit Umarov : il semble que les tentatives d'utiliser mysql et maria sur osgrid[9] ont échoué.
[11:26] Ubit Umarov : je les utilise en mode multi-serveur.
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il y a quelque chose qui est conçu pour ce genre de choses
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si on a besoin de configurations distribuées comme ça
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : CockroachDB [10]
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Est-ce que ça marche mieux ? Je n'en ai aucune idée, je ne l'ai pas encore essayé.
[11:28] Andrew Hellershanks : Je n'en avais jamais entendu parler avant aujourd'hui.
[11:28] Vincent.Sylvester @hg.zetaworlds.com:8002 : Une de ces nouvelles startups, donc qui sait combien de temps elles vont rester ou qui les rachètera à la fin ?
Changement récent d'OpenSim : fsassets
[11:28] Ubit Umarov : bien sur les changements récents d'opensim, pas grand chose.
[11:29] Ubit Umarov : j'ai essayé de rendre fsassets[11] un peu plus robuste quand on utilise plusieurs instances.
[11:30] Ubit Umarov : fsassets stocke les assets dans un dossier et un dossier temporaire, et un thread les copie périodiquement dans le dossier principal et les supprime...
[11:30] Ubit Umarov : il ne peut y avoir qu'un seul thread comme ça, car le code n'a pas de provision pour le verrouillage des fichiers, et linux semble être un gros échec.
[11:31] Ubit Umarov : il y a quelque temps, Alicia a ajouté du code pour s'assurer qu'il n'y a qu'un seul thread sur un processus (qui peut lancer plusieurs instances de fsassets).
[11:31] Ubit Umarov : j'ai enfermé cela sur LOCK pour être sûr qu'il n'y en ait qu'un seul.
[11:32] Ubit Umarov : puis j'ai ajouté une entrée ini [12] pour signaler les services secondaires fonctionnant sur d'autres processus, afin qu'ils n'essaient pas de les exécuter.
[11:32] Ubit Umarov : ce n'est pas une belle solution... mais voyons voir...
[11:33] Ubit Umarov : ce problème peut causer la perte de données pour une grille.
[11:33] Vincent.Sylvester @hg.zetaworlds.com:8002 : Un cadenas bien placé peut éviter beaucoup de problèmes hehe.
[11:33] Andrew Hellershanks: :)
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je n'ai pas rencontré de problèmes avec les assets de ce type en ayant un serveur d'assets de type php branché, j'aurais pensé qu'ils apparaîtraient là aussi.
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut imaginer qu'une permission n'est pas respectée.
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mono ne se charge pas des fichiers en cours d'utilisation
[11:35] Vincent.Sylvester @hg.zetaworlds.com:8002 : Idéalement, il est préférable de mettre fsassets sous son propre utilisateur[13] sous linux également, ce qui facilite la maintenance à bien des égards.
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002 : Malheureusement, aucune des conceptions disponibles ne fonctionne vraiment bien pour le CDN[14]. Il fonctionne sur des données périmées à court intervalle, mais c'est une douleur à mettre en place à moins que vous construisiez le CDN vous-même.
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002 : La plupart des hébergeurs n'ont pas le niveau de contrôle ou ne récupèrent pas les informations nécessaires sur les fichiers.
[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je l'ai configuré avec un failover[15], c'est ce qui fonctionne le mieux, mais c'est juste une solution de contournement, pas une véritable solution.
[11:39] Vincent.Sylvester @hg.zetaworlds.com:8002 : Quelqu'un de très intelligent a eu l'idée d'utiliser le XML [16] pour tout cela, ce qui fonctionne très bien... pas très bien.
[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai reçu quelques demandes cette semaine concernant la vérification de l'inventaire des personnes qui ne signalaient ne plus avoir d'inventaire, il semble qu'au moins un spectateur ait déjà procédé à la vérification.
[11:41] Andrew Hellershanks : XML est utile pour l'échange de données, mais ce n'est pas la meilleure idée lorsqu'il s'agit de transmettre beaucoup de données dans les deux sens de manière fréquente.
[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est génial si votre structure n'est pas fixe et que vous avez besoin de savoir à quoi correspond un paramètre oui.
[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002 : Sinon, c'est plus de la description que des données dans beaucoup trop de cas.
[11:42] Vincent.Sylvester @hg.zetaworlds.com:8002 : De plus, nous convertissons sql en xml, ce qui est probablement plus lent que d'obtenir directement du xml, donc dans certains cas, une base de données de documents pourrait être mieux adaptée.
[11:42] Andrew Hellershanks : Exact
[11:42] Andrew Hellershanks : Plus le temps nécessaire à l'analyse de tout le texte.
[11:43] Vincent.Sylvester @hg.zetaworlds.com:8002 : Mais refaire des choses comme l'inventaire ou les groupes en mongoDB [17], ça me fait mal au cerveau...
[11:43] Ubit Umarov : bien, quelques communications entre les régions et le mysql lare text aussi.
[11:43] Ubit Umarov : commandes sql pures
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est sur ma liste de choses à faire, il y a du potentiel, mais aussi une montagne de travail et de tests.
Les ordinateurs et l'eau
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : Et coder dans la chaleur de l'été est infiniment plus difficile.
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : Surtout sans piscine
[11:45] Andrew Hellershanks : Codage risqué dans la piscine. Si tu t'endors, l'ordinateur risque de se baigner :)
[11:45] Ubit Umarov : yeak
[11:45] Ubit Umarov : les ordinateurs ne savent pas nager.
[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002 : On pourrait remplir la piscine d'huile
[11:47] Ubit Umarov : alors pas agréable pour les humains
[11:47] Ubit Umarov: :)
[11:48] Ubit Umarov : il est possible de faire fonctionner un ordinateur sur de l'eau.
[11:49] Ubit Umarov : plusieurs l'ont fait.
[11:49] Ubit Umarov : juste de l'eau distillée, etc.
[11:49] Ubit Umarov : l'eau distillée avec peu d'impuretés est un isolant relatif.
[11:50] Ubit Umarov : bien sûr, je n'oserais pas mettre le psu sur l'eau, quel que soit le type d'eau :)
[11:50] Andrew Hellershanks : hehe... le faire fonctionner sur l'eau. Pendant un instant, j'ai imaginé un ordinateur portable flottant sur l'eau.
[11:50] Ubit Umarov : ohh linus a fait ça pour refroidir un mac.
[11:51] Ubit Umarov : en gros, je l'ai fait tourner avec le fond sur l'eau :)
[11:51] Ubit Umarov : pour découvrir qu'il était aussi réduit en puissance... donc aucun gain réel.
[11:52] Ubit Umarov : pas étonnant que M1 pouvait mettre des cpus intel sur des macs pourris.
[11:52] Ubit Umarov : les pauvres processeurs intel n'avaient pas le droit de fonctionner, soit à cause de la température, soit à cause de la limitation de la puissance.
Détection des NPC avec llSensor
[11:49] Andrew Hellershanks : 12 minutes avant le début de l'heure. J'ai une question. J'ai entendu dire que llSensor[18] devrait être capable de détecter les NPC[19] en utilisant la valeur OS_NPC [20] . Cependant, on m'a dit que cela ne fonctionne qu'avec XEngine [21] et non YEngine (Y). Je n'ai pas encore confirmé cela. Devrait-il y avoir une différence avec llSensor en fonction du moteur de script utilisé ?
[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cela devrait fonctionner avec Y également
[11:51] Andrew Hellershanks : Vincent, c'est ce que je pensais. Il est toujours possible que ce soit une erreur de script. J'ai essayé de trouver où OS_NPC est utilisé pour vérifier que c'est la bonne valeur pour détecter un NPC. J'ai trouvé où la valeur est définie mais je n'ai pas pu trouver où elle était utilisée dans le code llSensor.
[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je pense que mon détecteur de visiteurs continue à enregistrer le npc de l'accueil, je pense qu'il utilise un sensor.
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cela devrait être facile à tester
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si tu mets le script en ligne, je peux y jeter un coup d'oeil et voir si je peux trouver ce qui ne va pas.
[11:56] Ubit Umarov : Je pense que OS_NPC a un problème.
[11:57] Ubit Umarov : Il y a en fait 2 flags.
[11:58] Ubit Umarov : OS_NPC_SENSE_AS_AGENT [22]
[11:58] Ubit Umarov : Je suppose que c'est celui pour les sensors.
[11:59] Ubit Umarov : public const int OS_NPC = 0x01000000 ;
[11:59] Andrew Hellershanks : Vincent, ce n'est pas mon script mais je pourrais contacter la personne qui a le problème avec le script.
[11:59] Ubit Umarov : non utilisé :)
[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il est toujours plus facile de déboguer quelque chose avec du code à portée de main pour voir où se situe le problème.
[12:01] Andrew Hellershanks : Oui.
[12:01] Ubit Umarov : Je ne me rappelle pas ce que OS_NPC était censé être.
[12:01] Andrew Hellershanks : Il me semblait étrange que le changement de moteur fasse une différence.
[12:02] Andrew Hellershanks : Je ne sais même pas où ils ont lu qu'ils utilisaient OS_NPC.
[12:02] Ubit Umarov : ahh c'était une forme de TYPE.
[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, je pense que c'était pour isNPC [23] et d'autres choses.
[12:03] Ubit Umarov : sur les paramètres de détection.
[12:03] Ubit Umarov : mais c'est maintenant 0x20.
[12:03] Ubit Umarov : if((obj.colliderType & 0x21) != 0) // avatar ou npc+.
[12:04] Andrew Hellershanks : J'ai trouvé SENSE_AS_AGENT comme option dans le code. Il semble qu'on doive activer ce flag lors de la création du NPC.
[12:04] Ubit Umarov: colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
[12:05] Ubit Umarov : Donc OS_NPC semble juste obsolète... juste parce que...
[12:06] Andrew Hellershanks hoche la tête.
[12:06] Andrew Hellershanks : Je viens de regarder la page web sur osNpcCreate [24]. Il est dit que pour que SENSE_AS_AGENT fonctionne, il y a un paramètre ini qui doit être activé.
[12:07] Andrew Hellershanks : Je ne serais pas surpris qu'ils ne passent pas le flag lors de la création du NPC et que le paramètre ini ne soit pas activé.
[12:08] Andrew Hellershanks : Merci pour l'information.
[12:08] Ubit Umarov : Par défaut un NPC ne devrait pas être détecté comme un agent.
[12:08] Ubit Umarov : Sauf si on demande de le faire dans npc_create.
[12:09] Ubit Umarov: rivate LSL_Key NpcCreate(
string firstname, string lastname, LSL_Vector position, string notecard, bool owned, bool senseAsAgent, bool hostGroupID)
[12:09] Andrew Hellershanks : Oui, je pense que c'est une partie du problème qu'ils rencontrent. La raison pour laquelle il est possible de détecter les NPC est de s'assurer qu'ils sont retirés de la scène lorsqu'ils ne sont plus nécessaires.
[12:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai un script pour tuer les NPC quelque part.
[12:10] Vincent.Sylvester @hg.zetaworlds.com:8002: list inRegion=osGetAvatarList(); osIsNpc(llList2Key(inRegion,i))
osGetAvatarList();[25]
[12:10] Andrew Hellershanks : Vincent, si tu le trouves, envoie-moi une copie et je la transmettrai une autre option à utiliser. Toutes les grilles n'auront pas cette fonctionnalité activée dans l'ini.
[12:11] Andrew Hellershanks : Vincent, c'est assez simple.
[12:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : A partir de là, tu as la clé du npc et tu peux les atomiser.
[12:11] Andrew Hellershanks : C'est ça.
[12:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : On peut également récupérer les paramètres de l'agent via la clé pour voir si c'est celui qu'on veut supprimer.
[12:13] Andrew Hellershanks : Vincent, je vais transmettre cette information.
Conclusion
[12:13] Andrew Hellershanks : L'heure est passée de 15 minutes. Y a-t-il une dernière remarque à faire avant de conclure la réunion d'aujourd'hui ?
[12:14] Andrew Hellershanks : Je ne vois personne en train de taper, donc je vais considérer que c'est un non.
[12:14] Ubit Umarov : :)
[12:14] Andrew Hellershanks : C'est tout pour une autre semaine. Merci à tous d'être venus. Nous vous verrons la semaine prochaine.