« Réunion du 14-06-2022 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
 
(17 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 ait des bugs.
[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] 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: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] Ubit Umarov : bien sûr, maintenant tout le monde utilise arduino... duhhhh


[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.
Ligne 99 : Ligne 121 :
[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:11] Ubit Umarov : toujours impressionné par le prix de vente des arduinos actuels fabriqués en Chine.
[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 [https://fr.wikipedia.org/wiki/CodeIgniter] 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 [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: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[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 : 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[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] 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[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 : 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 [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: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[https://www.osgrid.org/] 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  [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: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=
* [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: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 : 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 [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: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:12] Vincent.Sylvester @hg.zetaworlds.com:8002: I cleaned up some stuff in there to make more concise queries
[11:12] Andrew Hellershanks: Ubit, they are often ridiculously cheap.
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Bit of a mess with the tables
[11:12] Ubit Umarov: cost less than the cpu
[11:12] Ubit Umarov: if you go bye the parts..
[11:12] Ubit Umarov: buy even ;)
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Originally wanted to reuse the functions for websearch, but that didn't quite work
[11:12] Andrew Hellershanks: Vincent, ok. That is for core search?
[11:13] Motoko.Karu @login.digiworldz.com:8002: I used to poopoo arduinos.. and needed to get a project done for a client, in a hurry.... was able to get something hacked together, with an arduino in a few hours.. <going from zero to production>
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Derived from the one you maintain yes
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Just written in CodeIgniter framework to make it easier
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: But can be easily moved to straight php again
[11:14] Andrew Hellershanks: Vincent, ok. You had me thinking for a moment that there had been some major changes somewhere as I had all those working with the ossearch module.
[11:14] Andrew Hellershanks: Interesting that you saw an empty search query. I never noticed that when I was working on ossearch.
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah no idea where that is coming from yet, I am cleaning up things still since I added lots of logging
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002: Once I can confirm all works I'll comment and document then you can have the code to transplant into plain php again
[11:16] Andrew Hellershanks: Vincent, best to keep it in the code. The core of OS should not be (too) dependant on external pages for its main functionality.
[11:16] Ubit Umarov: guess you 2 are talking about search modules =
[11:16] Ubit Umarov: ?
[11:16] Andrew Hellershanks: Ubit, yes
[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002: Well most of search is just sending the requests to the external thing, people and groups are handled directly, but the other things rely on external stuff
[11:17] Ubit Umarov: well viewers do expect those things as external things
[11:17] Andrew Hellershanks: Vincent, There is a separate table for events. They need to be created using an external web page. There is nothing in the viewer that lets you create them.
[11:17] Ubit Umarov: and some do make sense to be external
[11:17] Ubit Umarov: reason core has no search
[11:17] Ubit Umarov: that is a grid side global thing
[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: It being php means a lot easier to implement a search engine as well
[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: The websearch can do keywords and things
[11:18] Ubit Umarov: well php can mean nothing.. regions so serve some *php urls :)
[11:18] Ubit Umarov: i mean do serve
[11:19] Andrew Hellershanks: The websearch part is tricky. I haven't worked out how to do a search across multiple data types and have the mixed results returned for presentation to the user.
[11:19] Vincent.Sylvester @hg.zetaworlds.com:8002: lots of inner joins in sql
[11:19] Andrew Hellershanks: It would require that. It can get rather messy.
[11:20] Ubit Umarov: well ofc many searchs need data on several dbs
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: Once I figured you cannot mix charsets and collations without massive performance loss it now works rather well
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: You can probably do it in php too just joining arrays
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: Same thing
[11:20] Ubit Umarov: there is something wrong on that
[11:20] Ubit Umarov: possibel mysql and maria are jsut currently bad
[11:21] Ubit Umarov: bc one is suposed to have diferent per table, and latin to be fast
[11:21] Vincent.Sylvester @hg.zetaworlds.com:8002: I been told it's normal, which is hard to believe, but pigs can fly also
[11:21] Ubit Umarov: possible normal for current coders
[11:21] Ubit Umarov: insane what is goign on here and there
[11:21] Andrew Hellershanks: Vincent, that might work. Most search results will come from one database but to include groups that typically will need a separate search as that data is in a different database.
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: They also say subqueries are faster than inner join as well and I don't see a difference
[11:22] Ubit Umarov: duhh the mono release absurd did pop up into mind
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: Latest mariadb release gave me trouble also
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: performance schema migrations failed
[11:22] Ubit Umarov: and the release notes lost the wrong version
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: 10.3 to 10.8 probably was a bit much
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: All resolvable, but you don't catch it unless you check logs
[11:24] Ubit Umarov: fear the days of good opensource code are gone
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: Too many frameworks and grand ideas re-inventing the wheel... badly
[11:24] Andrew Hellershanks: MariaDB is up to version 10.x?
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: 10.8 I think is latest release now
[11:25] Ubit Umarov: had mantis about 10.8 ages ago
[11:25] Andrew Hellershanks: ok. I have two remote machines that are using MariaDB. They are running with an LTS so they have a much older version of Maria. 5.5 something, IIRC.
[11:25] Andrew Hellershanks: My computer still uses MySQL.
[11:26] Vincent.Sylvester @hg.zetaworlds.com:8002: The mariadb versions included in the distro repos are ancient
[11:26] Ubit Umarov: seems tris to use mysql and maria on osgrid just failed
[11:26] Ubit Umarov: using them in multu server mode
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: There is something that is designed for such things
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: If you need distributed setups like that
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: CockroachDB
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: If that works better I got no idea, haven't tried it yet
[11:28] Andrew Hellershanks: I haven't heard of that before today.
[11:28] Vincent.Sylvester @hg.zetaworlds.com:8002: One of these new startup things so who knows how long that'll be around for or who buys them up in the end
[11:28] Ubit Umarov: wel about recent opensim changes, not much
[11:29] Ubit Umarov: o made a try to make fsassets a bit more robust when using several instances
[11:30] Ubit Umarov: fsassets stores assets on a temporary folder and form, and has a thread that periodicly copies that to main folder and removes..
[11:30] Ubit Umarov: there can only be one thread like that running, bc code has no file locking provision, and linux seems to be a big fail
[11:31] Ubit Umarov: some time ago alicia did add code to make sure there is only one thread on a process ( that can fire several instances fo fsassets )
[11:31] Ubit Umarov: i enclosed that on LOCK so make sure tehre is only one
[11:32] Ubit Umarov: then added a ini entry to flag secondary services running on other process, so they don't try to run that threas
[11:32] Ubit Umarov: not a pretty solution.. but lets see
[11:33] Ubit Umarov: this issue may had cause a gird to lose data
[11:33] Vincent.Sylvester @hg.zetaworlds.com:8002: A well placed lock can prevent a lot of trouble hehe
[11:33] Andrew Hellershanks: :)
[11:33] Andrew Hellershanks: :)
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: I have no encountered issues with assets like that having a branching php-based asset server, would think it would show up there too
 
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: Can imagine that there is some permission not being honored
 
[11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: Mono no care about file in use
[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: Ideally you want to run fsassets under it's own user on linux too, makes it easier to maintain in a lot of ways
 
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: Sadly none of the available designs are really working well for CDN. It works on short interval stale data, but that's a pain to setup unless you build the CDN yourself
[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: Most providers don't have the level of control or grab the needed file info
 
[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002: I set it up with a failover, that works the best, but just a workaround not a solution
[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: Someone really smart had the idea to use xml for all this which works great...not
 
[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: I got a few requests this week regarding the inventory checking stuff of people reporting no inventory, seems at least one viewer has that out now already
[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 is useful for data exchange but not the best idea when passing a lot of data back and forth on a frequent basis.
 
[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: It's great if your structure is not fixed and you need to know what a parameter is yes
[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: Otherwise it's more description than data in way too many cases
 
[11:42] Vincent.Sylvester @hg.zetaworlds.com:8002: Plus we convert between sql to xml which probably is slower than just getting straight xml, hence in some cases a document DB might be better suited
[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: Right
 
[11:42] Andrew Hellershanks: Plus the time it takes to parse all the text.
[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: But redoing things like inventory or groups into like mongoDB is... makes my brain hurt
 
[11:43] Ubit Umarov: well some comms btw regions and mysq lare text also
[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: pure sql comands
 
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: It's on my todo list to look into, there is potential there, but also a mountain of work and testing
[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: And coding in the summer heat is infinitely more difficult
 
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: Especially without a pool
[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: Risky coding in the pool. If you nod off the computer might go for a swim. :)
 
[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: computers do not swim well
 
[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: Could fill the pool with oil
[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: then not nice for humans
 
[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: one can actually run a pc on water
 
[11:49] Ubit Umarov: several did it
[11:42] Andrew Hellershanks : Exact
[11:49] Ubit Umarov: just destilated water etc
 
[11:49] Andrew Hellershanks: 12 minutes before the top of the hour. I have a question. I heard that llSensor should be able to detect NPCs by using the value OS_NPC. However I've been told that only works with XEngine and not Y. I haven't confirmed that yet. Should there be any difference with llSensor based on the scripting engine in use?
[11:42] Andrew Hellershanks : Plus le temps nécessaire à l'analyse de tout le texte.
[11:49] Ubit Umarov: destilated water with little impurities is relative isolator
 
[11:50] Ubit Umarov: ofc i would not dare to put the psu on water no matter what kind of water :)
[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... run it on water. FOr a moment I pictured a laptop floating on water.
 
[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: That should work on Y as well
[11:43] Ubit Umarov : bien, quelques communications entre les régions et le mysql lare text aussi.
[11:50] Ubit Umarov: ohh linus did that to cooldown a mac
 
[11:51] Ubit Umarov: basicly jsut did run it with back on water :)
[11:43] Ubit Umarov : commandes sql pures
[11:51] Ubit Umarov: to find out it was also power throttled.. so no real gain
 
[11:51] Andrew Hellershanks: Vincent, That's what I thought. It is always possible it is a scripting error. I tried to track down where OS_NPC is used to verify that is the correct value to detect an NPC. I found where the value is defined but I couldn't track down where it was used in the llSensor code.
[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:52] Ubit Umarov: no wonder M1 could bet intel cpus on suck macs
 
[11:52] Ubit Umarov: the poor intel cpus where just not allowed to run, with either thermal or power throttle
= Les ordinateurs et l'eau =
[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: I think the visitor logger I got keeps logging the greeter npc I have, think that uses a sensor
 
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: Should be easy to test
[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: If you pastebin the script I can take a look at it in a few see if I can spot what might be wrong
 
[11:56] Ubit Umarov: think OS_NPC has a issue
[11:44] Vincent.Sylvester @hg.zetaworlds.com:8002 : Surtout sans piscine
[11:57] Ubit Umarov: there are actually 2 falgs
 
[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: guess that is the one for sensros
 
[11:59] Ubit Umarov: public const int OS_NPC = 0x01000000;
[11:45] Ubit Umarov : yeak
[11:59] Andrew Hellershanks: Vincent, It isn't my script but I could get a hold of the person who has the problem with the script.
 
[11:59] Ubit Umarov: not in use :)
[11:45] Ubit Umarov : les ordinateurs ne savent pas nager.
[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002: Always easier to debug something with code at hand to see where the issue is
 
[12:01] Andrew Hellershanks: Yes.
[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002 : On pourrait remplir la piscine d'huile
[12:01] Ubit Umarov: don't remember what aht OS_NPC was suposed to be
 
[12:01] Andrew Hellershanks: It did seem odd to me the difference in engine supposedly makes a difference.
[11:47] Ubit Umarov : alors pas agréable pour les humains
[12:02] Andrew Hellershanks: I don't even know where they read about using OS_NPC.
 
[12:02] Ubit Umarov: ahh was to be a form of TYPW
[11:47] Ubit Umarov: :)  
[12:02] Ubit Umarov: TYPE
 
[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah think that was for isNPC and such
[11:48] Ubit Umarov : il est possible de faire fonctionner un
[12:03] Ubit Umarov: on detect parameters
ordinateur sur de l'eau.
[12:03] Ubit Umarov: but that is now 0x20
 
[12:03] Ubit Umarov: if((obj.colliderType & 0x21) != 0) // avatar or npc+
[11:49] Ubit Umarov : plusieurs l'ont fait.
[12:04] Andrew Hellershanks: I found the sense as agent option in the code. It appears you need to set that flag when creating the NPC.
 
[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: so that OS_NPC seems just obsolete.. there just because
 
[12:06] Andrew Hellershanks nods
[12:05] Ubit Umarov : Donc OS_NPC semble juste obsolète... juste parce que...
[12:06] Andrew Hellershanks: I just pulled up the web page about osNpcCreate. It says that for sense as agent to work there is an ini setting that needs to be enabled.
 
[12:07] Andrew Hellershanks: That gives me a couple of things I can follow up on with the person reporting the problem.I won't be surprised to find they aren't passing the flag when crating the NPC and that the ini setting isn't enabled.
[12:06] Andrew Hellershanks hoche la tête.
[12:08] Andrew Hellershanks: Thanks for the information.
 
[12:08] Ubit Umarov: by default a npc should not be sense as a agent
[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: unless told to do so on npc_create
 
[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: Yes, I think that is part of the problem they are running in to. The reason for being able to detect NPCs is to make sure they are removed from the scene when no longer needed.
 
[12:09] Vincent.Sylvester @hg.zetaworlds.com:8002: I have a npc killer script somewhere
[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, if you find it send me a copy and I'll pass it along as another option for them to use. Not all grids will have the feature enabled in the ini.
 
[12:11] Andrew Hellershanks: Vincent, That's simple enough.
osGetAvatarList();[http://opensimulator.org/wiki/OsGetAvatar]
[12:11] Vincent.Sylvester @hg.zetaworlds.com:8002: From there you have the npc key and can just nuke them
 
[12:11] Andrew Hellershanks: Right.
[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: You can fetch the agent params via the key too to see if it's the one you want to remove
 
[12:13] Andrew Hellershanks: Vincent, I'll pass that info along was well. ty
[12:11] Andrew Hellershanks : Vincent, c'est assez simple.
[12:13] Andrew Hellershanks: We are now an extra 15 minutes past the hour. Any final items for todays meeting before we wrap things up?
 
[12:14] Andrew Hellershanks: I dont see anyone typing so I will take that as a no.
[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: That will do it for another week. Thank you all for coming. See you again next week.
[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

[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

[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.