Aller au contenu

« Réunion du 26-07-2022 » et « Réunion du 02-08-2022 » : différence entre les pages

De OSWiki
(Différence entre les pages)
Page créée avec « Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-26 =Introduction= [11:01] '''Jamie.Jordan @grid.kitely.com:8002''' : Bonjour à tous [11:02] '''Andrew Hellershanks''' : Bonjour, tout le monde. [11:02] '''Kayaker Magic''' : Je ne suis pas très content d'Ubuntu [https://fr.wikipedia.org/wiki/Ubuntu_(syst%C3%A8me_d%27exploitation)] : Les pilotes de son sont terribles, le plug-and-pray [https://fr.wikipedia.org/wiki/Plug_and_play] n... »
 
Page créée avec « Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-08-02 = Introduction= [11:00] '''Andrew Hellershanks''' : Bonjour, tout le monde. [11:01] '''Andrew Hellershanks''' : Bonjour, Kayaker. [11:01] '''Andrew Hellershanks''' : Bonjour, Selby. [11:01] '''Kayaker Magic''' : Cette citation représente environ 15% de notre cerveau, basé sur 0% de science. [11:02] '''Selby.Evans @grid.kitely.com:8002''' : salut tout le monde. [11:02] '''... »
 
Ligne 1 : Ligne 1 :
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-26
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-08-02


=Introduction=
= Introduction=


[11:01] '''Jamie.Jordan @grid.kitely.com:8002''' : Bonjour à tous
[11:00] '''Andrew Hellershanks''' : Bonjour, tout le monde.


[11:02] '''Andrew Hellershanks'''  : Bonjour, tout le monde.
[11:01] '''Andrew Hellershanks'''  : Bonjour, Kayaker.


[11:02] '''Kayaker Magic'''  : Je ne suis pas très content d'Ubuntu [https://fr.wikipedia.org/wiki/Ubuntu_(syst%C3%A8me_d%27exploitation)] : Les pilotes de son sont terribles, le plug-and-pray [https://fr.wikipedia.org/wiki/Plug_and_play] n'arrête pas de changer mes choix de périphériques de son, la configuration des icônes sur l'écran est une plaie.
[11:01] '''Andrew Hellershanks'''  : Bonjour, Selby.


[11:02] '''Andrew Hellershanks'''  : Les pilotes de son posent problème depuis le début de Pulse Audio [https://fr.wikipedia.org/wiki/PulseAudio].
[11:01] '''Kayaker Magic'''  : Cette citation représente environ 15% de notre cerveau, basé sur 0% de science.


[11:02] '''Ubit Umarov'''  : aucune idée, je n'ai pas de machine pour essayer un linux.
[11:02] '''Selby.Evans @grid.kitely.com:8002'''  : salut tout le monde.


[11:03] '''Ubit Umarov'''  : il y a environ 2 ans, j'avais debian[https://fr.wikipedia.org/wiki/Debian] 10 sur une machine, et ça marchait bien.
[11:02] '''Kayaker Magic'''  : Bonjour à tous !


[11:03] '''Ubit Umarov'''  : ensuite la machine est morte.
[11:02] '''Ubit Umarov'''  : Bonjour.


[11:03] '''Ubit Umarov'''  : bahh
[11:02] '''Ubit Umarov'''  : 15% c'est beaucoup ?


[11:03] '''Kayaker Magic''' : Oh et sur Ubuntu il y a un truc d'interface appelé Snap[https://fr.wikipedia.org/wiki/Snap_(gestionnaire_de_paquets)] que la moitié des programmes utilisent, il crée un nouveau périphérique logique pour chaque application, remplissant ma liste de périphériques réels.
[11:02] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je ne pense pas qu'il y ait eu de changements cette semaine, à part des choses faites sur les bibliothèques utilisées par OpenSim. Continuer à suivre les problèmes pour déterminer les causes et la canicule qui rend tout le monde somnolent.


[11:04] '''Andrew Hellershanks'''  : Kayaker, j'ai laissé tomber Ubuntu quand ils ont ajouté Unity[https://fr.wikipedia.org/wiki/Unity_(logiciel)] pour leur bureau.
[11:02] '''Kayaker Magic'''  : Eh bien, peut-être basé sur l'observation de beaucoup de gens....


[11:05] '''Andrew Hellershanks''' : Unity?  Hm... ce n'est peut-être pas le bon nom.
[11:03] '''Ubit Umarov''' : oui, j'ai joué un peu avec le code natif[https://fr.wikipedia.org/wiki/Code_natif] de ubode.


= Changements dans OpenSim cette semaine =
[11:03] '''Ubit Umarov'''  : j'ai finalement réussi à faire fonctionner le code compilé avec un ancien gcc [https://fr.wikipedia.org/wiki/GNU_Compiler_Collection].
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim]
* [http://opensimulator.org/mantis/my_view_page.php Mantis : suivi de bogues]
* Bogue : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-05/fr#Bug_de_plantage


[11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Pas beaucoup de changements dans OpenSim ces derniers temps. Des trucs mineurs dans libomv[https://bitbucket.org/opensimulator/libopenmetaverse/src/master/] car nous sommes à la recherche de ce qui pourrait clocher dans le crash de TryParse [https://dev-dot.net/differences-entre-parse-et-tryparse/]. Bien sûr, en testant sur la dernière version de mono [https://fr.wikipedia.org/wiki/Mono_(logiciel)], aucune des régions qui plantaient auparavant ne l'a fait, donc je suis de retour à la case départ sur ce point. Je vais probablement revenir à la dernière version et voir ce qui se passe, il doit y avoir autre chose que des scripts qui causent cela, peut-être des gens.
[11:03] '''Ubit Umarov''' : il a commencé à s'embrouiller avec certaines choses du code légal...........


= Installer OpenSim 0.8.2 dans unsystème configuré pour OpenSim 0.9.X =
= Frameworks =  
* Compilation : [http://opensimulator.org/wiki/Build_Instructions/fr] voir aussi dans le code source le fichier  BUILDING.md
* Microsoft .NET :  
* heartbeat (battement de cœur) : signal périodique généré par le matériel ou le logiciel pour indiquer un fonctionnement normal ou pour synchroniser d'autres parties d'un système informatique.
** https://fr.wikipedia.org/wiki/Microsoft_.NET
** FAQ .NET : https://dotnet.developpez.com/faq/dotnet/


[11:05] '''Kayaker Magic'''  : J'ai une question à propos d'OpenSim : J'ai reçu une demande pour faire tourner OpenSim 0.8.2 sur une région. Je l'ai récupéré dans les archives, il plante et ne fonctionne pas. Probablement un problème avec mono. Quelqu'un a-t-il une idée de ce que je peux essayer ?
* Mono : https://fr.wikipedia.org/wiki/Mono_(logiciel)
La version 4.0 a été la première version qui incorpore le code source original de Microsoft qui a été publié par Microsoft dans le cadre du projet .NET Core.


[11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Sur quoi se bloque-t-il ?
Depuis le 14 janvier 2021, Mono prend en charge toutes les fonctionnalités de .NET 4.7, à l'exception de Windows Presentation Foundation (WPF) (que l'équipe Mono ne prévoit pas de prendre en charge en raison de la quantité de travail que cela nécessiterait) et de Windows Workflow Foundation (WF), et avec un support limité pour Windows Communication Foundation (WCF) et la pile asynchrone ASP.NET. Cependant, System.Web et WCF sont des candidats pour un portage " presque immédiat " de la source de référence .NET vers Mono. Certaines parties manquantes du Framework .NET sont en cours de développement dans un sous-projet Mono expérimental appelé Olive.[https://en.wikipedia.org/wiki/Mono_(software)#Current_status_and_roadmap Source]


[11:06] '''Kayaker Magic'''  : Attends, je regarde ça.
* Projet Net.Core : https://fr.wikipedia.org/wiki/.NET_Core [https://en.wikipedia.org/wiki/.NET Version en anglais plus complète]


[11:07] '''Andrew Hellershanks''' : Si tu utilises la 0.8.2 [http://opensimulator.org/wiki/0.8.2.0_Release/fr] sur une région, quelle version d'OS les autres régions utilisent-elles ?
== Situation actuelle de Mono ==
[11:04] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': J'ai eu une discussion amusante avec les gars responsables de Mono sur leur discord [https://discord.com/invite/HSuhTyG], confirmant essentiellement ce que nous savions déjà qu'ils ne se soucient pas vraiment de continuer le travail sur Mono. Heureusement, étant donné qu'il s'agit d'un logiciel libre [https://fr.wikipedia.org/wiki/Logiciel_libre], la communauté qui s'en préoccupe peut continuer le travail, donc pas de raison de s'inquiéter.


[11:08] '''Kayaker Magic''' : J'utilise un Yeti [http://opensimulator.org/wiki/0.9.2.1_Release/fr] maître assez récent sur le reste, tous connectés à OSGrid [https://www.osgrid.org/].
[11:04] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Microsoft : Acheter, vider, tuer comme d'habitude


[11:08] '''Kayaker Magic'''  : Voilà l'erreur :
[11:05] '''Ubit Umarov'''  : on s'y attendait un peu, ce sont eux qui poussent pour .net7 aussi.


[11:08] '''Kayaker Magic''' :  
[11:05] '''Ubit Umarov''' : :)
2022-07-23 06:18:59,121 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Failed on region Esses Workshop with exception Object reference not set to an instance of an object  at OpenSim.Region.Framework.Scenes.SceneGraph.UpdatePreparePhysics () [0x00006] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0
  at OpenSim.Region.Framework.Scenes.Scene.Update (System.Int32 frames) [0x00140] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0
2022-07-23 06:18:59,124 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Application [APPLICATION]: ^M
APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs^M
^M
[11:09] '''Kayaker Magic'''  : Utilisation de XEngine [http://opensimulator.org/wiki/Xengine/fr], ubODE


[11:09] '''Andrew Hellershanks'''  : Je ne pense pas que ce message d'erreur soit très utile.
[11:05] '''Ubit Umarov'''  : aucune idée de ce qui est arrivé aux anciens responsables  mono.


[11:09] '''Andrew Hellershanks''' : Kayaker, quelle version de mono utilises-tu ?
[11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': J'avais très peu de respect pour Microsoft (MS) et ses employés, mais ils ont atteint de nouveaux sommets.


[11:10] '''Kayaker Magic'''  : Mais c'est ce que je pense de tous les messages d'erreur d'opensim ! Aucun d'entre eux n'est très utile !
[11:05] '''Ubit Umarov'''  : je suppose qu'ils ont reçu de bons revenus et qu'ils n'ont pas pris sa retraite ?


[11:10] '''Kayaker Magic'''  : J'utilise mono 6.12.
[11:05] '''Ubit Umarov'''  : aucune idée.


[11:10] '''Andrew Hellershanks'''  : Eh bien, certains d'entre eux sont plus utiles que d'autres.
[11:06] '''Kayaker Magic'''  : J'ai entendu dire qu'ils ont tous été engagés par MicroSquishy.


[11:11] '''Andrew Hellershanks'''  : Jusqu'où va-t-il dans le processus de démarrage de la région avant que l'erreur n'apparaisse ?
[11:06] '''Ubit Umarov'''  : fautes de frappe.


[11:11] '''Kayaker Magic''' : On dirait que ça va commencer, il est écrit "Started tracking thread Heartbeat".
[11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Probablement, juste après avoir mis MS sur le CV pour obtenir un joli salaire de consultant.


[11:12] '''Kayaker Magic'''  : La région est toute nouvelle, pas de prims, pas de scripts, une île ronde.
[11:06] '''Ubit Umarov'''  : "J'imagine qu'ils ont reçu beaucoup d'argent et qu'ils se sont retirés ?"


[11:12] '''Ubit Umarov'''  : c'est quoi la version 0.8.2 ?
[11:08] '''Ubit Umarov'''  : mais bon, mono fonctionne toujours.


[11:12] '''Ubit Umarov''' : ;)
[11:08] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Le dépôt apt[https://fr.wikipedia.org/wiki/Advanced_Packaging_Tool] qu'ils maintiennent est un peu plus désordonné que je ne le pensais car il ne se nettoie pas , donc tout le code déprécié est laissé sur les machines nécessitant soit une réinstallation soit un nettoyage manuel des vieux trucs, parce que si vous ne le faites pas, il fait de son mieux pour les recharger.


[11:12] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : C'est tout ce qu'il y a ? Peux-tu coller les parties restantes et peut-être quelques lignes avant cela. As-tu essayé une autre combinaison de moteur de scripts et de physique ?
== Fork NGC d'OpenSim ==
[11:09] '''Kayaker Magic''' : Ce fork NGC d'OpenSim [https://github.com/OpenSim-NGC/OpenSim.NGC], ils ont réussi à le compiler et à le faire fonctionner avec .net sur des serveurs MicroSquishy, mais pas avec .net sur des serveurs linux.


[11:13] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Les versions sont marquées dans git donc tu peux aussi compiler à partir des sources [https://github.com/mono/mono] sous un mono plus récent pour voir si cela aide.
[11:09] '''Ubit Umarov'''  : non, ce n'est pas cela.


[11:13] '''Kayaker Magic'''  : Voici quelques lignes (tout semble bon) avant le crash :
[11:10] '''Ubit Umarov'''  : c'est .net 4.8


[11:13] '''Kayaker Magic''' :
[11:10] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': L'obtention de la compilation et son exécution correcte sont des mondes à part. J'ai réussi à le compiler sur ReactOS[https://fr.wikipedia.org/wiki/ReactOSil y a quelque temps, mais il a explosé au moment de l'exécution.
2022-07-23 06:18:58,795 DEBUG (1) - OpenSim.Data.MySQL.MySQLSimulationData [REGION DB]: Loaded 0 objects using 0 prims
2022-07-23 06:18:58,801 DEBUG (1) - OpenSim.Data.MySQL.MySQLSimulationData [REGION DB]: Loaded inventory from 0 objects
2022-07-23 06:18:58,802 INFO  (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Loaded 0 objects from the datastore
  2022-07-23 06:18:58,803 DEBUG (1) - OpenSim.Region.CoreModules.Framework.UserManagement.UserManagementModule [USER MANAGEMENT MODULE]: Caching creators' data from Esses Workshop (0 objects)...
2022-07-23 06:18:58,806 INFO  (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Loading land objects from storage
2022-07-23 06:18:58,932 DEBUG (1) - OpenSim.Services.GridService.GridService [GRID SERVICE]: Region Esses Workshop (9b145e2a-5c81-4803-ab84-381904b61f69, 256x256) registered at 2294,9495 with flags RegionOnline
2022-07-23 06:18:59,114 INFO  (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Initializing script instances in Esses Workshop


[11:13] '''Kayaker Magic''' :  
[11:10] '''Ubit Umarov'''  : aucune idée de ce qu'ils ont changé par rapport à notre code, à part le nom.
2022-07-23 06:18:59,114 INFO  (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Initialized 0 script instances in Esses Workshop
2022-07-23 06:18:59,115 DEBUG (1) - OpenSim.Framework.Monitoring.Watchdog [WATCHDOG]: Started tracking thread Heartbeat-(Esses_Workshop), ID 42


[11:13] '''Andrew Hellershanks'''  : Si tu m'avais demandé la semaine dernière, j'aurais encore une copie de la 0.8.2 sur ma machine pour l'essayer car j'ai mono 6.12 installé.
[11:11] '''Ubit Umarov'''  : et ils ont plusieurs projets.


[11:14] '''Kayaker Magic'''  : Non, je n'ai pas essayé YEngine[http://opensimulator.org/wiki/YEngine/fr] et autres combinaisons....
[11:11] '''Ubit Umarov'''  : l'un d'eux est vraiment de passer à Dotnet.


[11:14] '''Kayaker Magic''' : Y avait-il un YEngine à l'époque ?
[11:12] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Maintenir un fork sur de simples correctifs ou modules ne mène généralement à rien, la charge de travail est beaucoup plus élevée que ce que la plupart des gens anticipent.


[11:15] '''Andrew Hellershanks'''  : Pas de YEngine dans la 0.8.2
[11:13] '''Andrew Hellershanks'''  : Bonjour, Michael


[11:15] '''Ubit Umarov''' : non
[11:13] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': La fusion rétroactive avec le noyau demande beaucoup trop d'efforts je trouve.


[11:15] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Eh bien, il se bloque sur la physique, donc essayer Bullet [http://opensimulator.org/wiki/BulletSim] serait un début.
[11:13] '''MichaelOmega ChristopherGeode''' : bonjour.


[11:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : En plus de cela, je pense que cette version était encore compilée sur mono 2.10, donc c'est un grand saut.
[11:13] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Ajouter des choses par dessus est beaucoup plus facile


[11:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : En cas de doute, compile à partir des sources
[11:13] '''MichaelOmega ChristopherGeode''' : j'ai abandonné et créé un avatar sur OSgrid[https://www.osgrid.org/] pour arriver ici, je ne sais toujours pas comment le faire depuis ossc grid :)


[11:16] '''Kayaker Magic'''  : J'ai essayé de compiler à partir des sources, j'ai eu 21 avertissements, puis j'ai exécuté cette copie, même erreur.
[11:14] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': De plus, il y a les structures de modules[http://opensimulator.org/wiki/New_Region_Modules/fr] pour tout ce qu'on veut ajouter et qui ne nécessite pas de changements profonds.
[11:17] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : L'échec Heartbeat  ne devrait pas entraîner la fin de l'application, à moins qu'il n'y ait un autre problème.


[11:18] '''Andrew Hellershanks'''  : Tu as vérifié deux fois la configuration de la région pour t'assurer qu'il ne s'agit pas d'une erreur de frappe dans un fichier INI[http://opensimulator.org/wiki/Configuring_Scripting#Relevant_ini_files] ?
[11:14] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Ces modules peuvent même écraser la plupart des modules intégrés, mais pas tous.


[11:18] '''Kayaker Magic''' : Si je passe à Yeti master, elle se lance bien avec un fichier INI  presque identique.
[11:14] '''MichaelOmega ChristopherGeode''' : et salut vincent et andrew, ça fait trop longtemps lol


[11:20] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Compiler en mode débogage pour obtenir les numéros de ligne et démarrer directement afin de pouvoir récupérer la Stacktrace[https://fr.wikipedia.org/wiki/Trace_d'appels] complète pour voir où ça ne va pas, les erreurs du journal ne sont pas toujours assez explicites.
[11:14] '''Andrew Hellershanks''' : Michael, content que tu sois là.


[11:20] '''Andrew Hellershanks''' : C'est l'erreur "Object reference not set to an instance of an object"(La référence de l'objet ne correspond pas à une instance d'un objet.)  qui est préoccupante.
[11:15] '''MichaelOmega ChristopherGeode''' : merci.


[11:21] '''Andrew Hellershanks'''  : Une chose qui m'est venue à l'esprit est qu'il pourrait y avoir une erreur  dans une chaîne de configuration de la base de données.
== Développement depuis Mono ==


[11:21] '''Kayaker Magic''' : Il y a une trace de pile dans le journal après cette erreur, dois-je la mettre ici ?
* mkbundle  : génère un programme exécutable qui contiendra des copies statiques des assemblies listés dans la ligne de commande. Par défaut, seuls les assemblies spécifiés dans la ligne de commande seront inclus dans le paquetage.


[11:22] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La partie sous le stacktrace contrôlée qui pointe vers le code directement, saute le dump de la mémoire.
[11:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Le développement, quel qu'il soit, est une bonne chose, mieux que la stagnation, il crée au moins un dialogue... en quelque sorte...


[11:23] '''Kayaker Magic''' : Je veux dire plus de choses dans le journal après ce message d'erreur, je vais le coller ici :
[11:18] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': J'ai fait du développement en partant de zéro sur Mono, mais je ne vois pas ce qui est supposé être mauvais à son sujet. Il est en fait assez facile de faire démarrer une application et de la faire fonctionner sur plusieurs plateformes. On peut compiler avec msbuild [https://fr.wikipedia.org/wiki/MSBuild] et elle fonctionnera avec Mono ou .net ou on peut simplement mkbundle Mono dans l'application et elle devient entièrement portable sans aucune dépendance.


[11:23] '''Kayaker Magic''' :
[11:20] '''Andrew Hellershanks'''  : C'est bon de savoir qu'il y a des gens qui s'intéressent encore à Mono et qui sont prêts à continuer à y travailler.
2022-07-23 06:18:59,124 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Application [APPLICATION]: ^M
APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs^M
^M
  Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at OpenSim.Region.Framework.Scenes.Scene.get_TimeDilation () [0x0000b] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0
  at OpenSim.Region.Framework.Scenes.Scene.Update (System.Int32 frames) [0x0050e] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0
  at OpenSim.Region.Framework.Scenes.Scene.Heartbeat () [0x0000c] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <de882a77e7c14f8ba5d298093dde82b2>:0
 
[11:23] '''Kayaker Magic''' : 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <de882a77e7c14f8ba5d298093dde82b2>:0 ^M
^M
Application is terminating: True^M


[11:24] '''Andrew Hellershanks'''  : Est-ce que tu compiles le code comme une version ? Tu dois l'exécuter compilé en mode débogage pour obtenir une trace de la pile avec les numéros de colonne et de ligne.
[11:21] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Les choses faites avec cela fonctionnent, pour .net vers Mono, on ne peut jamais vraiment savoir, mais Mono vers .net  a tendance à fonctionner, ce qui rend les choses plus agréables à écrire.


[11:24] '''Andrew Hellershanks''' : Pourquoi quelqu'un veut-il encore utiliser la 0.8.2 si le reste des régions sont en 0.9.x ? Est-ce que la personne a un script qui ne fonctionne pas en 0.9 ?
[11:21] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Moins de prise de tête pour savoir si les choses vont casser au moment de l'exécution, même les choses comme le système de fichiers sont étonnamment faciles à gérer.


[11:25] '''Kayaker Magic'''  : Je pensais que la compilation par défaut était déboguée. J'ai juste fait ./runprebuild.sh et xbuild.
== Microsoft et Mono ==
* CLR [https://fr.wikipedia.org/wiki/Common_Language_Runtime] : Common Language Runtime (CLR) - Le CLR vous permet de choisir le langage de programmation avec lequel vous préférez travailler, et il peut interagir avec le code écrit dans tout autre langage CLR. Par exemple, vous pouvez écrire une classe en C#, en hériter en VB.NET et l'utiliser en Eiffel. Vous pouvez choisir d'écrire du code dans Mono dans une variété de langages de programmation.[https://www.mono-project.com/docs/about-mono/ source]


[11:26] '''Kayaker Magic'''  : La personne pense que le téléchargement de mesh fonctionne différemment dans la 0.8, elle n'a pas été réceptive à " laisse-moi t'apprendre la bonne façon de télécharger un mesh ".
[11:21] '''Ubit Umarov'''  : seul un ensemble limité d'"univers" .net fonctionne sous mono.


[11:26] '''Andrew Hellershanks'''  : Ah, ok.
[11:22] '''Ubit Umarov'''  : et un lt n'a été corrigé que lorsque ms est entré, dans la version 6.


[11:27] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je ne voudrais pas même discuter de ce niveau de stupidité, en appuyant sur le fait que ce n'est pas la voie à suivre.
[11:22] '''MichaelOmega ChristopherGeode''' : Bonjour Ubit, je ne t'avais pas vu, je crois.


[11:27] '''Kayaker Magic'''  : Maintenant que j'y pense, elle se souvient probablement que Bullet créait des modèles physiques. ( gros doute sur la traduction :-) ).  
[11:22] '''Ubit Umarov'''  : bien sûr, ms a fait ça pour l'utiliser comme noyau de dotnet pour linux.


[11:28] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Donc pour télécharger un mauvais mesh et polluer tout avec des données potentiellement corrompues causant même  le crash d'autres régions, amusant.
[11:23] '''Ubit Umarov''' : nommé en tant que monoCLR ici.


[11:30] '''Andrew Hellershanks''' : Il y a eu des migrations de bases de données entre la 0.8.2 et la 0.9, ce qui peut aussi poser problème.
[11:23] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Acheter Mono, le vider de ses bons éléments, puis le laisser mourir dans la foulée, MS se comporte en MS.


[11:30] '''Kayaker Magic'''  : OK, ça me donne quelques idées à essayer : Lui donner 0.9 avec Bullet, la forcer à écouter les suggestions de téléchargement de mesh...
[11:23] '''Ubit Umarov'''  : ils ont aussi arrêté .net4.8.


[11:31] '''Kayaker Magic'''  : Essayez de remonter sa simulation 0.8 avec Bullet... Assez parlé de ça aujourd'hui. J'ai d'autres questions !
[11:24] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Les arts électroniques des logiciels d'entreprise


[11:31] '''Ubit Umarov''' : (au téléphone..)
[11:24] '''Misterblue Waves''' : Je pense que les principales choses qui empêchent OS de se convertir à Dotnet sont les bibliothèques dépendantes (libomv [https://bitbucket.org/opensimulator/libopenmetaverse/src/master/], ...).


[11:31] '''Andrew Hellershanks'''  : Ce serait une meilleure idée que d'essayer de faire fonctionner une région 0.8 dans une grille fonctionnant principalement en 0.9.
[11:24] '''Ubit Umarov'''  : et c'est une grande partie d'opensim :p


[11:33] '''Andrew Hellershanks'''  : D'autres questions, Kayaker ?
[11:24] '''Ubit Umarov'''  : et nous avons perdu xengine[http://opensimulator.org/wiki/XEngine], etc...


= Stockage des assets : où, quand, comment ? =
[11:24] '''Andrew Hellershanks'''  hoche la tête


[11:35] '''Kayaker Magic'''  : J'essaie de comprendre quand les choses sont écrites dans le cache d'assets [https://fr.wikipedia.org/wiki/M%C3%A9moire_cache] [http://opensimulator.org/wiki/AssetCache/fr] de la région. Si je rezze (créer, déposer au sol)  un objet dans une région, je ne le vois pas dans ce cache. Quand est-ce que cela se produit ? Seulement après une récupération réussie depuis le fsassets [http://opensimulator.org/wiki/FSAssets_Service/fr] principal ?
[11:25] '''Andrew Hellershanks'''  : Comme nous avons occasionnellement (en plaisantant) parlé de réécrire OpenSim dans un langage autre que C#[https://fr.wikipedia.org/wiki/C_sharp].


[11:36] '''Andrew Hellershanks''' : Cela ressemble à une question pour Ubit, une fois qu'il aura raccroché le téléphone.
[11:26] '''Misterblue Waves''' : c'est un travail gigantesque, mais si nous l'avions commencé il y a 10 ans quand nous en avons parlé pour la première fois, il serait plus que terminé maintenant :)


[11:37] '''Kayaker Magic''' : Et si on rezzait deux copies d'un objet, chacune aura son propre UUID [https://fr.wikipedia.org/wiki/Universally_unique_identifier] , n'est-ce pas ?
== Yengine et dotnet : le code dynamique ==
* libgdiplus [https://github.com/mono/libgdiplus] : Libgdiplus est la bibliothèque Mono qui fournit une API compatible avec GDI+ sur les systèmes d'exploitation non Windows. Notre mise en œuvre utilise Cairo pour effectuer la plupart des tâches difficiles.[https://www.mono-project.com/docs/gui/libgdiplus/ source]
* Baking : pré-calul de rendu d'une image


[11:39] '''Kayaker Magic'''  : mais chaque objet doit avoir des UUIDs d'assets pour toutes ses textures, sont-elles mises en cache dans l'assetcache par leurs UUIDs d'assets ?
[11:25] '''Ubit Umarov'''  : pas sûr que Yengine [http://opensimulator.org/wiki/YEngine] fonctionne aussi.


[11:39] '''Andrew Hellershanks'''  : oui pour les deux.
[11:26] '''Ubit Umarov'''  : tout ce qui est en dehors de ce que l'équipe de MS considère comme une application normale... quoi que ce soit, est persona non grata.  


[11:39] '''Ubit Umarov''' : l'uuid est l'identifiant de tout asset.
[11:26] '''Misterblue Waves''' : qu'est-ce que yengine utilise qui n'est pas dans dotnet ?


[11:40] '''Kayaker Magic''' : par UUID d'asset je veux dire l'UUID dans fsassets, est-ce qu'une texture est mise en cache dans assetcache avec le même UUID ?
[11:26] '''Misterblue Waves''': ?


[11:42] '''Ubit Umarov'''  : comme je l'ai dit l'identifiant d'un objet est seulement son UUID.
[11:27] '''Ubit Umarov'''  : le code dynamique [http://opensimulator.org/wiki/OSSL_Implemented#Prim_Drawing_.2F_Dynamic_Texture]


[11:43] '''Kayaker Magic'''  : Ce que je veux savoir c'est,  si je regarde dans la base de données region [http://opensimulator.org/wiki/Regions_(database_table)], je vois un objet stocké avec son UUID rezzé, mais est-ce que la seule chose stockée dans le assetcache sont les éléments de base stockés dans fsasset via des UUIDs ?
[11:27] '''Ubit Umarov'''  : ce n'est pas "l'utilisation normale des applications".


[11:44] '''Ubit Umarov'''  : un objet perd les uuids des textures (matériaux etc) qu'il utilise.
[11:28] '''Ubit Umarov'''  : sur un blog quelqu'un a vérifié l'utilisation du code image sur les applications normales, et a constaté qu'il n'était pas utilisé, sauf sur quelques trucs pour générer des QR codes..."


[11:44] '''Ubit Umarov''' : fait un list
[11:28] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Il faudrait effectivement créer une sorte de virtualisation pour "exécuter" les choses et à ce stade, on revient à un runtime, ce qu'est Mono, donc on réinvente la roue...


[11:45] '''Ubit Umarov'''  : un objet peut aussi être stocké en tant qu'asset, bien sûr.
[11:29] '''Ubit Umarov'''  : donc... l'image ne fait pas partie des applications normales, donc elle n'est pas supportée.


[11:45] '''Ubit Umarov'''  : ce stacktrace est étrange.
[11:29] '''Ubit Umarov'''  : :p


[11:45] '''Kayaker Magic''' : Si je crée un nouvel objet, disons à partir de deux cubes, est-ce que cet objet est déjà dans  fsasset ? Quand est-ce qu'il est sauvegardé la première fois ?
[11:29] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': C'est la généralisation abusive du siècle  lol


[11:46] '''Ubit Umarov'''  : il y a quelque chose de très bizarre avec cette région.
[11:29] '''Ubit Umarov'''  : pour être honnête, le problème majeur qu'ils ont avec lui est libgdi++.


[11:46] '''Ubit Umarov'''  : non, la différence entre les objets est qu'ils sont sur la base de données de la région [http://opensimulator.org/wiki/Database:Documentation] seulement (format propre).
[11:29] '''Ubit Umarov'''  : le hack mono pour remplacer le vrai gdi[https://fr.wikipedia.org/wiki/Graphics_Device_Interface] de windows


[11:46] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Les Prims ne sont pas des assets, les textures, mesh, animations, scripts, etc. sont des assets [http://opensimulator.org/wiki/Assets]. On ne peut pas créer un asset en rezzant une prim.
[11:30] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': C# est assez couramment utilisé pour le code dynamique en fait. Je me souviens avoir écrit des plugins C# pour certains jeux qui se chargeaient dynamiquement dès qu'on sauvegardait le code, ce qui rend le développement vraiment facile.


[11:47] '''Ubit Umarov'''  : '''ils deviennent un asset lorsqu'ils sont mis dans l'inventaire.'''[NDLR: Object ]
[11:30] '''Ubit Umarov'''  : cela dépend de beaucoup d'autres bibliothèques linux comme pango [https://fr.wikipedia.org/wiki/Pango].


[11:47] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Yep
[11:30] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Certains moteurs de jeu sont construits avec cela aussi.


[11:48] '''Ubit Umarov'''  : simplement pour des raisons d'implémentation, dans une région il y a des parties de scène et des groupes d'objets de scène :)
[11:30] '''Ubit Umarov'''  : en fait il y a au moins une incompatibilité sur la façon dont l'alpha est géré par pango.


[11:48] '''Kayaker Magic'''  : '''Donc si je rezze un cube, rien ne se passe dans fsassets ou assetcache, si je mets une nouvelle texture dessus, la texture vient de fsassets, et est sauvegardée dans assetcache.'''
[11:31] '''Ubit Umarov'''  : j'ai eu un petit conflit avec cela sur les textures Dyn.


[11:48] '''Ubit Umarov'''  : qui ont leur propre stockage sur les dbs.
[11:31] '''Ubit Umarov'''  : et comme vous vous rappelez, pour l'alpha [https://fr.wikipedia.org/wiki/Alpha_blending], linux faisait le contraire de windows.


[11:48] '''Ubit Umarov'''  : oui
[11:31] '''Ubit Umarov'''  : en fait quelque chose comme ça :)


[11:48] '''Kayaker Magic'''  : OK, je pense que j'ai compris l'idée.
[11:32] '''Ubit Umarov'''  : donc oui libgdi++ a toujours eu des problèmes.


[11:49] '''Ubit Umarov''' : '''à l'opposé, les textures sont directement téléchargées dans la grille (fsassets).'''
[11:32] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Si ce code était facile à modifier ou à changer, nous aurions déjà des textures dynamiques sur des textures existantes, les mélangeant ensemble, mais oh là là, ce code est un spaghetti.


[11:49] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si ce ne sont pas des textures de la bibliothèque que chaque région fournit, alors il faudrait probablement utiliser une texture téléchargée par toi-même.
[11:32] '''Ubit Umarov''' : donc ils refusent juste d'essayer de le maintenir.


[11:49] '''Ubit Umarov''' : (sauf les textures dynamiques).
[11:32] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Une de ces choses qu'il faut écrire d'un seul coup en étant sous l'emprise de boissons énergisantes et de café.


[11:49] '''Kayaker Magic'''  : je vois
[11:33] '''Ubit Umarov'''  : et donc pas de code Imagor pour linux.


[11:49] '''Ubit Umarov'''  : donc quand nous en appliquons une sur un visage, le viewer va la demander.
[11:33] '''Ubit Umarov'''  : entre-temps, ils l'ont réintroduit, sous Windows seulement.


[11:49] '''Ubit Umarov'''  : via le service [http://opensimulator.org/wiki/Services/fr] des assets.
[11:33] '''Ubit Umarov'''  : donc 99% des ordinateurs sont heureux :p


[11:50] '''Ubit Umarov''' : avec la version 0.9.2 via ViewerAsset cap [http://opensimulator.org/wiki/CAPS/fr][http://opensimulator.org/wiki/Capabilities/fr] .
[11:33] '''MichaelOmega ChristopherGeode''' : rofl@boissons énergétiques et café - la partie café est trop faible, elle ne fait que vous ralentir ;)


[11:50] '''Ubit Umarov''' : en fait, depuis une certaine 0.9 où j'ai ajouté le support cap).
[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Les textures dynamiques, idéalement comme les bakes, devraient être faites sur le viewer, recevant juste les appels. Le
viewer a généralement un GPU[https://fr.wikipedia.org/wiki/Processeur_graphique]... vous savez... une unité de traitement graphique... mais autant demander  aux nuages dans le ciel.


[11:51] '''Ubit Umarov'''  : les objets ont aussi leurs propres chemins vers le viewer.
==Compatibilité APIs Dotnet et .net ==


[11:51] '''Kayaker Magic'''  : Pas de problème, j'utilise toujours la version 0.9.x à moins d'être ramené de force en arrière...
[11:35] '''Ubit Umarov'''  : j'ai aussi trouvé quelques différences sur les APIs [https://fr.wikipedia.org/wiki/Interface_de_programmation]  de Dotnet.


[11:51] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : le cache d'objets du viewer , cette chose amusante.
[11:35] '''Misterblue Waves''' : J'aimerais toujours trouver le temps de faire une libomv-lite qui pourrait être faite en dotnet. Il y a beaucoup de choses dans cette bibliothèque que OS n'utilise pas.


[11:51] '''Ubit Umarov'''  : protocole spécial pour envoyer les "objets" au viewer en tant que tel...
[11:35] '''Ubit Umarov'''  : censé être identique à .net... mais pas vraiment.


[11:52] '''Ubit Umarov'''  : en effet, les porotocoles,... le cache d'objet du viewer  utilise un autre protocole udp [https://fr.wikipedia.org/wiki/User_Datagram_Protocol], pourrait-on dire...
[11:35] '''Ubit Umarov'''  : rappelez-vous que .net core 1 a été clairement présenté comme un changement majeur.


[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oui, n'utilisez pas de vieux viewers, vous allez passer un mauvais moment lol.
[11:36] '''Ubit Umarov''' : comme une nouvelle chose courageuse.


[11:53] '''Ubit Umarov''' : les objets à l'intérieur d'autres objets sont des assets, bien sûr.
[11:36] '''Misterblue Waves''' : puis j'aimerais commencer à retravailler OS  juste pour dotnet-6.


[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : primitems [http://opensimulator.org/wiki/Primitems] pointe vers les assets.
[11:36] '''Ubit Umarov''' : je suppose qu'il a fallu que la direction de ms intervienne et les force.


= Nouvelle version de Firestorm =
[11:36] '''Ubit Umarov'''  : donc dans Core 3 on a fait un effort majeur pour retrouver une certaine compatibilité.


[11:53] '''Ubit Umarov''' : A propos, fs (Firstorm)  a publié une nouvelle version [https://www.firestormviewer.org/firestorm-release-6-5-6-66221/].
[11:37] '''Misterblue Waves''' remarque que "dotnet-6" est trop proche de "deep 6 "ing ;-)


[11:54] '''Kayaker Magic'''  : ENFIN !
[11:37] '''Ubit Umarov'''  : c'était au point qu'ils ont été obligés de le renommer .Net5.


[11:54] '''Ubit Umarov'''  : pas tant de changements que ça.
[11:37] '''Andrew Hellershanks'''  sourit à Misterblue.


[11:54] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : le bouton "grid status" fonctionne maintenant.
[11:37] '''Ubit Umarov''' : disant que c'était juste un changement de nom lol


[11:54] '''Kayaker Magic''' : Le correctif de Vivox [https://en.wikipedia.org/wiki/Vivox] était nécessaire pour éviter un plantage lors d'un téléport HG [http://opensimulator.org/wiki/Hypergrid/fr] entre certaines grilles.  
[11:37] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Peu importe que je ne sois pas convaincu que même MS sache où ils veulent aller... où est la "oh si grande Entreprise .NET " qu'ils étaient sensés construire... ouais, il faut attendre qu'ils se décident à envoyer la voiture dans le mur avant d'engager quelque chose d'aussi grand qu'OpenSim dans ce sens.  


[11:54] '''Ubit Umarov'''  : maintenant la bibliothèque utilise ses propres caps [http://opensimulator.org/wiki/Capabilities/fr].
[11:37] '''Ubit Umarov'''  : nahh c'était pour essayer d'effacer l'idée que Core était un changement majeur et une rupture.


[11:55] '''Ubit Umarov'''  : j'avais ajouté ces caps vers 2018 puis je les ai retirés car aucun viewer ne les utilisait.
[11:38] '''Ubit Umarov'''  : si vous lisez les premiers documents de Core, c'était simplement quelque chose de nouveau et de courageux ... aujourd'hui c'est une mise à jour de .net.


[11:55] '''Ubit Umarov'''  : alchemy [https://www.alchemyviewer.org/ (site oblsolète)] [https://git.alchemyviewer.org/alchemy/alchemy-next/-/packages (git)] [https://git.alchemyviewer.org/alchemy/alchemy-next/-/packages/472] m'a demandé de les remettre, alors j'y ai travaillé, maintenant c'est aussi le cas pour fs.
[11:39] '''Ubit Umarov'''  : mais beaucoup ont été exclus.  


[11:55] '''Ubit Umarov'''  : pas de grande différence.
[11:39] '''Ubit Umarov'''  : et beaucoup de choses se ressemblent, mais sont différentes...


[11:56] '''Ubit Umarov''' : sauf que quand tous les viewers le font, le code de région peut être simplifié.
[11:39] '''Ubit Umarov''' : bahh


[11:56] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le code est un peu plus propre aussi, c'est bien, mais il y a tellement de domaines qui ont besoin d'être revus.
[11:39] '''Ubit Umarov''' : bien sûr, pas impossible à convertir.


[11:56] '''Ubit Umarov'''  : enlever le hack d'une bibliothèque donnée sur le CAPS normal d'inventaire.
[11:40] '''Ubit Umarov'''  : encore plusieurs mois de travail non rémunéré sans raison valable...


[11:57] '''Ubit Umarov'''  : Je ne sais pas si j'ai manqué une question.
[11:40] '''Ubit Umarov'''  : avec un débogage difficile


[11:57] '''Ubit Umarov'''  : le téléphone a dû sonner juste au début de la réunion, bien sûr.
[11:40] '''Ubit Umarov'''  : vous voyez ?


[11:58] '''Kayaker Magic'''  : J'ai eu des réponses pertinentes à mes deux questions.
== Tout redévelopper est une perte de temps ==


[11:58] '''Kayaker Magic''' : Encore beaucoup de temps ! Merci les gars !
[11:40] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je me demande qui a pensé à ça en premier lieu. Je pense qu'il est assez clair aujourd'hui que la plupart des gens préfèrent garder les choses héritées plutôt que de passer du temps à les développer à nouveau, à moins qu'il n'y ait un avantage clair qui peut être quantifié en argent.


[11:58] '''Ubit Umarov''' : ahh
[11:40] '''Ubit Umarov''' : et cela ne peut pas être un changement partiel.


[11:58] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu peux aller sur irc [http://opensimulator.org/wiki/IRC/fr] si tu as besoin d'aide, n'attends pas que la réunion ait lieu.
[11:40] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Les banques fonctionnent toujours sur des systèmes des années 70.


[11:59] '''Andrew Hellershanks'''  : Vincent, mais de quoi parlerions-nous si toutes les questions étaient traitées sur IRC pendant la semaine ? :)
[11:41] '''Ubit Umarov'''  : il faudra beaucoup de corrections de code, avant que tout recommence à fonctionner.


= Bogue de compilation avec GCC =
[11:41] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Même SAP[https://fr.wikipedia.org/wiki/SAP_(progiciel)] a encore des tonnes de code écrit avant ma naissance.
* ubOde : OpenSim/Region/PhysicsModules/ubOde


[11:59] '''Ubit Umarov'''  : J'ai fait plusieurs changements (inutiles) sur ubode et j'ai fait un commit[https://git-scm.com/docs/git-commit/fr] [http://opensimulator.org/viewgit/?a=shortlog&p=opensim] sur git.
[11:41] '''Ubit Umarov'''  : le vieux code est bon.


[11:59] '''Ubit Umarov'''  : mais actuellement c'est un peu cassé :p
[11:41] '''Ubit Umarov'''  : Le CERN [https://fr.wikipedia.org/wiki/Organisation_europ%C3%A9enne_pour_la_recherche_nucl%C3%A9aire] est resté en fortran[https://fr.wikipedia.org/wiki/Fortran] pour cette raison.


[11:59] '''Ubit Umarov'''  : d'une manière ou d'une autre, la vieille gcc [https://fr.wikipedia.org/wiki/GNU_Compiler_Collection] que j'utilisais génère du code qui ne permet pas de faire des raycasts.
[11:41] '''Andrew Hellershanks'''  : :)


[12:00] '''Ubit Umarov'''  : pour compilé sur win et debian11 gcc , fonctionne bien.
[11:42] '''Ubit Umarov'''  : ils avaient des tonnes et des tonnes du meilleur code mathématique qui existe.


[12:00] '''Ubit Umarov''' : c'est un beau bug... impossible de le trouver.
[11:42] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Réinventer la roue juste pour pouvoir épeler roue avec un e en moins n'est pas vraiment une bonne utilisation du temps et des ressources.


[12:00] '''Ubit Umarov'''  : gcc est devenu fou.
[11:42] '''Ubit Umarov'''  : perdre tout ça juste parce que des langages sans intérêt changent ??


[12:00] '''Ubit Umarov'''  : duhhhh
[11:42] '''Ubit Umarov'''  : les vrais bons programmeurs sont une chose rare...


[12:00] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : est la source pour cela ? Je voulais demander
[11:43] '''Ubit Umarov''' : la plupart du code est une pure ordure... cela fait des choses...


[12:01] '''Ubit Umarov'''  : opensim-libs [https://bitbucket.org/opensimulator/opensim-libs/src/master/]
[11:43] '''Ubit Umarov'''  : on n'envoie pas à la poubelle du code fait par de vrais bons codeurs...


[12:01] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Peut-être que j'obtiendrai une erreur cryptique complètement différente... connaissant ma chance...
[11:43] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': La différence quantifiable est la clé, se contenter de mettre à niveau vers des normes plus récentes quand cela revient à faire les mêmes choses dans le même temps est une perte d'énergie.


[12:01] '''Andrew Hellershanks'''  : Wow. Quel drôle de bug.
[11:43] '''Ubit Umarov'''  : spécialement sur du code mathématique pas facile, avec gestion des erreurs, etc.


[12:01] '''Ubit Umarov'''  : pas d'erreur.
[11:44] '''Kayaker Magic'''  : J'ai un dicton : "Un mauvais programmeur peut écrire du FORTRAN dans n'importe quel langage".


[12:01] '''Ubit Umarov'''  : juste les raycasts échouent.
[11:44] '''Andrew Hellershanks'''  : hehe


[12:01] '''Ubit Umarov'''  : pas d'erreur ... rien...
[11:44] '''Ubit Umarov'''  : Au passage fortran parce que c'était vraiment le meilleur pour produire du code optimisé.


[12:02] '''Ubit Umarov''' : les raycasts sont utilisés en interne pour les collisions avec le terrain, ils fonctionnent jusqu'à ce qu'ils ne fonctionnent plus :9
[11:45] '''Misterblue Waves''' : la partie d'OS qui me fait peur, c'est toute cette plomberie modulaire que mel et diva ont mise en place pour toutes les versions de hg[http://opensimulator.org/wiki/Hypergrid/fr]/robust[http://opensimulator.org/wiki/ROBUST/fr]/etc... c'est un enchevêtrement de dlls[https://fr.wikipedia.org/wiki/Dynamic_Link_Library] interconnectées, à chargement dynamique avec juste assez d'exceptions pour la "performance".


[12:02] '''Ubit Umarov'''  : alors la prim a des collisions bizarres.
[11:45] '''Ubit Umarov'''  : sa structure rigide permettait aux compilateurs de faire moins d'"erreurs".


[12:02] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : N'avons-nous pas eu un problème avec ça il y a quelque temps ?
[11:45] '''Ubit Umarov''' : ouais ces modules... enfin...


[12:02] '''Ubit Umarov''' : gcc a simplement perdu un chemin de code.
= Statistiques  =
== Logiciels de monitoring==
[11:46] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je cherchais des trucs de monitoring [https://fr.wikipedia.org/wiki/Surveillance_(informatique)], quelque chose pour montrer la moyenne de charge et la mémoire, j'ai continué à obtenir des résultats pour toutes sortes de projets, la plupart utilisant graphana[https://fr.wikipedia.org/wiki/Grafana] qui est une douleur dans le cou pour obtenir un fonctionnement correct en natif. rrdtool [https://fr.wikipedia.org/wiki/RRDTool] et collectd [http://opensimulator.org/wiki/Collectd] [https://en.wikipedia.org/wiki/Collectd](en)  sont anciens par rapport aux normes d'aujourd'hui, mais fonctionnent très bien pour montrer les données et sont légers.


[12:03] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il tue le cpu
[11:46] '''Ubit Umarov''' : nous avons toujours besoin de postPostPostInit ?


[12:03] '''Ubit Umarov''' : un init raté, il faisait... une référence perdue... aucune idée...
[11:46] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Regardez Gitlab[https://fr.wikipedia.org/wiki/GitLab], qui a commencé comme un remplacement pour bitbucket[https://fr.wikipedia.org/wiki/Bitbucket] et github[https://fr.wikipedia.org/wiki/GitHub), bloqués et lents, et qui est maintenant lui-même à la limite du blocage qui devient lent et fastidieux à gérer.


[12:03] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Peut-être qu'il l'optimise
== Systèmes de statistiques ==
[11:46] '''Misterblue Waves''' : OS a plus d'un système de statistiques LOL


[12:03] '''Ubit Umarov'''  : sur un gcc récent, même code... pas de problème.
[11:47] '''Ubit Umarov'''  : rappelez-vous qu'OS a été conçu comme un framework[https://fr.wikipedia.org/wiki/Framework].


[12:04] '''Ubit Umarov''' : mais je ne peux pas le compiler sur une toute dernière gcc, sinon beaucoup ne pourront pas l'exécuter.
[11:47] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': J'ai étendu jsonsimstats[http://opensimulator.org/wiki/UXSimStatus/fr][http://opensimulator.org/wiki/FAQ/fr#Statistiques_de_la_r.C3.A9gion_sur_une_page_Web] un peu en fait, donc les autres sont presque inutiles maintenant.


[12:04] '''Ubit Umarov'''  : donc... duhhh un peu coincé pour le moment :)
[11:47] '''Ubit Umarov'''  : en fait, il ne devrait même pas être exécuté.


[12:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Revenir à la version de travail puis procéder étape par étape, cela prend du temps mais c'est probablement le moyen le plus simple.
[11:47] '''Ubit Umarov''' : nous l'avons indiqué dans certaines documentations...


=Conclusion =
[11:48] '''Ubit Umarov''' : seulement quelques développeurs fous ont décidé qu'opensim devrait essayer de faire quelque chose :p
[12:04] '''Jamie.Jordan @grid.kitely.com:8002''' : Bonne semaine à tous


[12:05] '''Andrew Hellershanks'''  : ok, Jamie. Merci d'être venu. On se revoit la semaine prochaine.
[11:48] '''Ubit Umarov'''  : ( l'auteur de ces documents l'a aussi fait ).


[12:05] '''Ubit Umarov''' : trop tard :)
[11:49] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': C'est quand même beaucoup plus facile à manipuler que d'autres codes qui font beaucoup moins de choses.


[12:05] '''Selby.Evans @grid.kitely.com:8002'''  : au revoir à tous.
[11:49] '''Ubit Umarov'''  : sur les modules, la situation la plus irritante pour moi maintenant est la connexion à la grille.


[12:05] '''Andrew Hellershanks'''  : ok, Selby. On se voit la semaine prochaine.
[11:49] '''Ubit Umarov'''  : il n'y en a pas.


[12:05] '''Ubit Umarov'''  : amuse-toi bien, sleby.
[11:49] '''Andrew Hellershanks'''  : Vincent, j'aimerais pouvoir consulter les statistiques sans avoir à analyser mentalement le code json [https://fr.wikipedia.org/wiki/JavaScript_Object_Notation].


[12:06] '''Ubit Umarov''' : et selby
[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Eh bien, les données sous forme json ne sont pas vraiment utiles pour tout ce qui concerne les statistiques car elles ne sont pas encore fiables.


[12:06] '''Andrew Hellershanks''' : Nous venons de passer l'heure. S'il n'y a pas de points de dernière minute pour aujourd'hui, nous pouvons conclure la réunion d'aujourd'hui.
[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Le nombre de scripts n'arrête pas de sauter à des nombres bizarres.


[12:06] '''Ubit Umarov'''  : Oui, j'ai aussi un RL qui m'attend.
[11:50] '''Ubit Umarov'''  : une région n'est vérifiée que si elle est autorisée lorsque tout est chargé, même la carte téléchargée.


[12:07] '''Andrew Hellershanks''' : ok, dans ce cas je vais mettre fin à cette réunion. J'ai aussi deux ou trois choses à faire.
[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je n'ai toujours pas trouvé ce qui cloche avec ça.


[12:07] '''Ubit Umarov'''  : Passez une bonne semaine.
[11:50] '''Ubit Umarov'''  : et nous ne pouvons pas le faire aussi tôt.


[12:07] '''Andrew Hellershanks'''  : Merci à tous d'être venus. Nous vous reverrons la semaine prochaine.
[11:51] '''Ubit Umarov'''  : parce que la région n'a pas de modules de communication chargés jusqu'à cette étape, principalement.
 
[11:51] '''Ubit Umarov'''  : parce que les modules cooms sont comme tous les autres.
 
[11:51] '''Andrew Hellershanks'''  : pourquoi jsonsimstats ne récupère-t-il pas ses données à partir du ou des lieux d'échantillonnage utilisés par webstats [http://opensimulator.org/wiki/FAQ/fr#Statistiques_de_la_r.C3.A9gion_sur_une_page_Web]?
 
[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je pense que c'est en grande partie le cas, le comptage des scripts est cassé quelque part en interne, car les statuts des sims dans lsl [https://fr.wikipedia.org/wiki/Second_Life][https://wiki.secondlife.com/wiki/LSL_Portal] donnent les mêmes chiffres erronés.
 
[11:52] '''Ubit Umarov'''  : comme MB l'a dit, nous avons plusieurs moteurs de statistiques.
 
[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je n'ai pas commencé à creuser trop profondément car ce n'est pas une chose critique, juste une statistique.
 
[11:53] '''Ubit Umarov'''  : allez... opensim n'a pas de doigts,... comment peut-il compter les scripts ?
 
== Le décompte des avatars intègre les NPC ==
 
[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Le compte d'avatar lit aussi les NPC [http://opensimulator.org/wiki/NPC/fr] et je ne suis pas sûr de savoir pourquoi.
 
[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Je me souviens de la correction de ce problème, mais elle n'était peut-être pas suffisante ou il manquait un flag.
 
[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Si la journée avait 48 heures, je pourrais le faire.
 
[11:54] '''Andrew Hellershanks'''  : Cela montre que le nombre de NPC devrait être disponible comme une statistique séparée. On dirait qu'un flag n'est pas vérifié quelque part dans le comptage des avatars.
 
[11:54] '''MichaelOmega ChristopherGeode''' : Il n'y a tout simplement pas assez d'heures dans la journée.
 
[11:54] '''Misterblue Waves''' : jsonsimstats a été construit pour que l'on puisse avoir une page web scriptée pour afficher les statistiques (JS[https://fr.wikipedia.org/wiki/JavaScript] qui lit le JSON et construit des tableaux pour l'affichage).
 
[11:54] '''Ubit Umarov'''  : je pense que certains développeurs ont considéré que nous ne devrions pas voir de différence entre les npcs et les avatars.
 
[11:55] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Andrew, c'est fait maintenant, mais quelque chose ne fonctionne toujours pas comme prévu.
 
[11:55] '''Ubit Umarov'''  : donc nous n'avons pas besoin de tracer tous les endroits où il devrait y avoir une différence.
 
[11:55] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': J'ai changé cela il y a presque deux ans maintenant, je pense.
 
[11:55] '''Ubit Umarov'''  : rappelez-vous que les NPCs ont été ajoutés pour la même raison que les bots[https://wiki.secondlife.com/wiki/Bot](en) dans SL.
 
[11:55] '''Ubit Umarov'''  : pour faire croire que les régions avaient des visiteurs.
 
[11:55] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Il vérifie les NPC évidents, mais je soupçonne que s'ils sont marqués pour être traités comme des avatars, ils sont quand même comptés, quelque chose comme ça...
 
[11:56] '''Ubit Umarov'''  : et bien ils sont comptés différemment dans la plupart des endroits maintenant.
 
[11:56] '''Ubit Umarov'''  : (parce qu'un développeur est arrivé qui déteste les NPC comme remplacements humains :P )
 
[11:57] '''Andrew Hellershanks'''  hoche la tête.
 
[11:58] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Pour faire quoi ? Introduire plus de couches de problèmes  ?
 
[11:58] '''Andrew Hellershanks'''  : Le code des statistiques ne devrait pas avoir à travailler sur la façon de compter les avatars/NPC car il devrait y avoir une fonction centrale pouvant être appelée qui renverrait les informations de correction (nécessitant éventuellement un flag pour dire s'il faut inclure les NPC ou non).
 
[11:58] '''Selby.Evans @grid.kitely.com:8002'''  : Doit partir -- Au revoir tout le monde
 
[11:58] '''MichaelOmega ChristopherGeode''' : au revoir Selby !
 
[11:58] '''Ubit Umarov'''  : salut !
 
[11:59] '''Misterblue Waves''' : au revoir, Selby !
 
[11:59] '''Andrew Hellershanks'''  : Au revoir, Selby
 
[11:59] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Andrew, c'est la partie la plus facile à corriger, j'imagine, étant donné que nous suivons cela correctement, mais je pense que le code des statistiques saisit simplement les mauvaises données ou quelque chose comme ça. Le plus gros problème est celui des scripts actifs qui peuvent être partout, même négatifs pour certaines raisons.
 
= Système de stockage des assets basé sur S3 =
[11:57] '''Misterblue Waves''' : sur un autre sujet... quelqu'un se souvient-il de quelqu'un qui a construit un système de stockage d'assets[http://opensimulator.org/wiki/Database:Assets] basé sur S3 [https://fr.wikipedia.org/wiki/Amazon_S3]?
 
[11:58] '''Ubit Umarov'''  : s3 ?
 
[11:58] '''MichaelOmega ChristopherGeode''' : je sais que quelqu'un a parlé d'un système S3 à un moment donné - je ne sais pas s'il a été construit par quelqu'un d'autre.
 
[11:59] '''Misterblue Waves''' : une base de données interfacée avec S3 -- il y a beaucoup de services de stockage S3 qui sont BEAUCOUP moins chers que Amazon.
 
[11:59] '''Ubit Umarov'''  : amazon s3 ?
 
[11:59] '''MichaelOmega ChristopherGeode''' : ubit - oui
 
[12:00] '''Ubit Umarov''' : comme ce que SL utilise ?
 
[12:00] '''Ubit Umarov'''  : Peut-être que kitely[https://www.kitely.com/] utilise quelque chose comme ça aussi.
 
[12:00] '''Ubit Umarov'''  : amusant SL maintenant est aussi peu sécurisé que ce que MOSES[https://en.wikipedia.org/wiki/Military_Open_Simulator_Enterprise_Strategy](en) disait d'opensim.
 
[12:00] '''Ubit Umarov''' : LOL
 
[12:01] '''MichaelOmega ChristopherGeode''': lol
 
[12:01] '''Ubit Umarov'''  : le passage à des systèmes de ce type rend tous les assets publics et non sécurisés.
 
[12:01] '''Ubit Umarov'''  : enfin des implémentations réelles sont utilisées.
 
[12:02] '''Ubit Umarov'''  : bien sûr, dans notre cas, cela tue aussi les assets locaux comme les textures dyn.
 
[12:02] '''MichaelOmega ChristopherGeode''' : parce que le chiffrement prend trop de temps/ressources pour utiliser quelque chose de réellement sécurisé ?
 
[12:02] '''Ubit Umarov'''  : non, n'importe qui peut les récupérer même sans login.
 
[12:02] '''Jamie.Jordan @grid.kitely.com:8002''' : Bonne semaine à tous
 
[12:03] '''MichaelOmega ChristopherGeode''' : toi aussi jamie
 
[12:03] '''Andrew Hellershanks'''  : Toi aussi, Jamie.
 
[12:03] '''Andrew Hellershanks'''  : Nous avons un peu dépassé l'heure. Des dernières questions/commentaires pour aujourd'hui ?
 
[12:03] '''Ubit Umarov'''  : lisez le vieux truc de MOSES sur la sécurité d'osgrid... maintenant, ça concerne aussi SL  :P
 
[12:04] '''Ubit Umarov'''  : ils ont gardé quelques trucs sur LLUDP [http://opensimulator.org/wiki/LLUDP_ClientStack/fr] donc c'est toujours sûr.
 
[12:04] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': Sécurité par l'obscurité, mais pas entièrement
 
[12:05] '''Ubit Umarov'''  : c'est le seul qui fonctionne vraiment.
 
[12:05] '''Ubit Umarov'''  : LOL
 
[12:05] '''Ubit Umarov'''  : mais rien sur l'obscurité
 
[12:06] '''Ubit Umarov'''  : c'est le contrôle d'accès... ou l'absence de contrôle.
 
= Conclusion =
 
[12:07] '''Andrew Hellershanks'''  : S'il n'y a pas d'autres questions/commentaires pour aujourd'hui, je vais mettre un terme à cette réunion. Mon chat en sera heureux. Il cherche à attirer mon attention :)
 
[12:07] '''Andrew Hellershanks'''  : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.
 
[12:07] '''Kayaker Magic'''  : Au revoir à tous !
 
[12:07] '''MichaelOmega ChristopherGeode''' : Je pense que je suis bon - beaucoup de pensées/projets mais rien de prêt à partager pour le moment.
 
[12:07] '''MichaelOmega ChristopherGeode''' : au revoir tout le monde !

Dernière version du 30 novembre 2024 à 10:42

Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-08-02

Introduction

[11:00] Andrew Hellershanks  : Bonjour, tout le monde.

[11:01] Andrew Hellershanks  : Bonjour, Kayaker.

[11:01] Andrew Hellershanks  : Bonjour, Selby.

[11:01] Kayaker Magic  : Cette citation représente environ 15% de notre cerveau, basé sur 0% de science.

[11:02] Selby.Evans @grid.kitely.com:8002  : salut tout le monde.

[11:02] Kayaker Magic  : Bonjour à tous !

[11:02] Ubit Umarov  : Bonjour.

[11:02] Ubit Umarov  : 15% c'est beaucoup ?

[11:02] Vincent.Sylvester @hg.zetaworlds.com:8002: Je ne pense pas qu'il y ait eu de changements cette semaine, à part des choses faites sur les bibliothèques utilisées par OpenSim. Continuer à suivre les problèmes pour déterminer les causes et la canicule qui rend tout le monde somnolent.

[11:02] Kayaker Magic  : Eh bien, peut-être basé sur l'observation de beaucoup de gens....

[11:03] Ubit Umarov  : oui, j'ai joué un peu avec le code natif[1] de ubode.

[11:03] Ubit Umarov  : j'ai finalement réussi à faire fonctionner le code compilé avec un ancien gcc [2].

[11:03] Ubit Umarov  : il a commencé à s'embrouiller avec certaines choses du code légal...........

Frameworks

La version 4.0 a été la première version qui incorpore le code source original de Microsoft qui a été publié par Microsoft dans le cadre du projet .NET Core.

Depuis le 14 janvier 2021, Mono prend en charge toutes les fonctionnalités de .NET 4.7, à l'exception de Windows Presentation Foundation (WPF) (que l'équipe Mono ne prévoit pas de prendre en charge en raison de la quantité de travail que cela nécessiterait) et de Windows Workflow Foundation (WF), et avec un support limité pour Windows Communication Foundation (WCF) et la pile asynchrone ASP.NET. Cependant, System.Web et WCF sont des candidats pour un portage " presque immédiat " de la source de référence .NET vers Mono. Certaines parties manquantes du Framework .NET sont en cours de développement dans un sous-projet Mono expérimental appelé Olive.Source

Situation actuelle de Mono

[11:04] Vincent.Sylvester @hg.zetaworlds.com:8002: J'ai eu une discussion amusante avec les gars responsables de Mono sur leur discord [3], confirmant essentiellement ce que nous savions déjà qu'ils ne se soucient pas vraiment de continuer le travail sur Mono. Heureusement, étant donné qu'il s'agit d'un logiciel libre [4], la communauté qui s'en préoccupe peut continuer le travail, donc pas de raison de s'inquiéter.

[11:04] Vincent.Sylvester @hg.zetaworlds.com:8002: Microsoft : Acheter, vider, tuer comme d'habitude

[11:05] Ubit Umarov  : on s'y attendait un peu, ce sont eux qui poussent pour .net7 aussi.

[11:05] Ubit Umarov : :)

[11:05] Ubit Umarov  : aucune idée de ce qui est arrivé aux anciens responsables mono.

[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002: J'avais très peu de respect pour Microsoft (MS) et ses employés, mais ils ont atteint de nouveaux sommets.

[11:05] Ubit Umarov  : je suppose qu'ils ont reçu de bons revenus et qu'ils n'ont pas pris sa retraite ?

[11:05] Ubit Umarov  : aucune idée.

[11:06] Kayaker Magic  : J'ai entendu dire qu'ils ont tous été engagés par MicroSquishy.

[11:06] Ubit Umarov  : fautes de frappe.

[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Probablement, juste après avoir mis MS sur le CV pour obtenir un joli salaire de consultant.

[11:06] Ubit Umarov  : "J'imagine qu'ils ont reçu beaucoup d'argent et qu'ils se sont retirés ?"

[11:08] Ubit Umarov  : mais bon, mono fonctionne toujours.

[11:08] Vincent.Sylvester @hg.zetaworlds.com:8002: Le dépôt apt[5] qu'ils maintiennent est un peu plus désordonné que je ne le pensais car il ne se nettoie pas , donc tout le code déprécié est laissé sur les machines nécessitant soit une réinstallation soit un nettoyage manuel des vieux trucs, parce que si vous ne le faites pas, il fait de son mieux pour les recharger.

Fork NGC d'OpenSim

[11:09] Kayaker Magic  : Ce fork NGC d'OpenSim [6], ils ont réussi à le compiler et à le faire fonctionner avec .net sur des serveurs MicroSquishy, mais pas avec .net sur des serveurs linux.

[11:09] Ubit Umarov  : non, ce n'est pas cela.

[11:10] Ubit Umarov  : c'est .net 4.8

[11:10] Vincent.Sylvester @hg.zetaworlds.com:8002: L'obtention de la compilation et son exécution correcte sont des mondes à part. J'ai réussi à le compiler sur ReactOS[7] il y a quelque temps, mais il a explosé au moment de l'exécution.

[11:10] Ubit Umarov  : aucune idée de ce qu'ils ont changé par rapport à notre code, à part le nom.

[11:11] Ubit Umarov  : et ils ont plusieurs projets.

[11:11] Ubit Umarov  : l'un d'eux est vraiment de passer à Dotnet.

[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Maintenir un fork sur de simples correctifs ou modules ne mène généralement à rien, la charge de travail est beaucoup plus élevée que ce que la plupart des gens anticipent.

[11:13] Andrew Hellershanks  : Bonjour, Michael

[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: La fusion rétroactive avec le noyau demande beaucoup trop d'efforts je trouve.

[11:13] MichaelOmega ChristopherGeode : bonjour.

[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Ajouter des choses par dessus est beaucoup plus facile

[11:13] MichaelOmega ChristopherGeode : j'ai abandonné et créé un avatar sur OSgrid[8] pour arriver ici, je ne sais toujours pas comment le faire depuis ossc grid :)

[11:14] Vincent.Sylvester @hg.zetaworlds.com:8002: De plus, il y a les structures de modules[9] pour tout ce qu'on veut ajouter et qui ne nécessite pas de changements profonds.

[11:14] Vincent.Sylvester @hg.zetaworlds.com:8002: Ces modules peuvent même écraser la plupart des modules intégrés, mais pas tous.

[11:14] MichaelOmega ChristopherGeode : et salut vincent et andrew, ça fait trop longtemps lol

[11:14] Andrew Hellershanks  : Michael, content que tu sois là.

[11:15] MichaelOmega ChristopherGeode : merci.

Développement depuis Mono

  • mkbundle  : génère un programme exécutable qui contiendra des copies statiques des assemblies listés dans la ligne de commande. Par défaut, seuls les assemblies spécifiés dans la ligne de commande seront inclus dans le paquetage.

[11:16] Vincent.Sylvester @hg.zetaworlds.com:8002: Le développement, quel qu'il soit, est une bonne chose, mieux que la stagnation, il crée au moins un dialogue... en quelque sorte...

[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: J'ai fait du développement en partant de zéro sur Mono, mais je ne vois pas ce qui est supposé être mauvais à son sujet. Il est en fait assez facile de faire démarrer une application et de la faire fonctionner sur plusieurs plateformes. On peut compiler avec msbuild [10] et elle fonctionnera avec Mono ou .net ou on peut simplement mkbundle Mono dans l'application et elle devient entièrement portable sans aucune dépendance.

[11:20] Andrew Hellershanks  : C'est bon de savoir qu'il y a des gens qui s'intéressent encore à Mono et qui sont prêts à continuer à y travailler.

[11:21] Vincent.Sylvester @hg.zetaworlds.com:8002: Les choses faites avec cela fonctionnent, pour .net vers Mono, on ne peut jamais vraiment savoir, mais Mono vers .net a tendance à fonctionner, ce qui rend les choses plus agréables à écrire.

[11:21] Vincent.Sylvester @hg.zetaworlds.com:8002: Moins de prise de tête pour savoir si les choses vont casser au moment de l'exécution, même les choses comme le système de fichiers sont étonnamment faciles à gérer.

Microsoft et Mono

  • CLR [11] : Common Language Runtime (CLR) - Le CLR vous permet de choisir le langage de programmation avec lequel vous préférez travailler, et il peut interagir avec le code écrit dans tout autre langage CLR. Par exemple, vous pouvez écrire une classe en C#, en hériter en VB.NET et l'utiliser en Eiffel. Vous pouvez choisir d'écrire du code dans Mono dans une variété de langages de programmation.source

[11:21] Ubit Umarov  : seul un ensemble limité d'"univers" .net fonctionne sous mono.

[11:22] Ubit Umarov  : et un lt n'a été corrigé que lorsque ms est entré, dans la version 6.

[11:22] MichaelOmega ChristopherGeode : Bonjour Ubit, je ne t'avais pas vu, je crois.

[11:22] Ubit Umarov  : bien sûr, ms a fait ça pour l'utiliser comme noyau de dotnet pour linux.

[11:23] Ubit Umarov  : nommé en tant que monoCLR ici.

[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: Acheter Mono, le vider de ses bons éléments, puis le laisser mourir dans la foulée, MS se comporte en MS.

[11:23] Ubit Umarov  : ils ont aussi arrêté .net4.8.

[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: Les arts électroniques des logiciels d'entreprise

[11:24] Misterblue Waves : Je pense que les principales choses qui empêchent OS de se convertir à Dotnet sont les bibliothèques dépendantes (libomv [12], ...).

[11:24] Ubit Umarov  : et c'est une grande partie d'opensim :p

[11:24] Ubit Umarov  : et nous avons perdu xengine[13], etc...

[11:24] Andrew Hellershanks hoche la tête

[11:25] Andrew Hellershanks  : Comme nous avons occasionnellement (en plaisantant) parlé de réécrire OpenSim dans un langage autre que C#[14].

[11:26] Misterblue Waves : c'est un travail gigantesque, mais si nous l'avions commencé il y a 10 ans quand nous en avons parlé pour la première fois, il serait plus que terminé maintenant :)

Yengine et dotnet : le code dynamique

  • libgdiplus [15] : Libgdiplus est la bibliothèque Mono qui fournit une API compatible avec GDI+ sur les systèmes d'exploitation non Windows. Notre mise en œuvre utilise Cairo pour effectuer la plupart des tâches difficiles.source
  • Baking : pré-calul de rendu d'une image

[11:25] Ubit Umarov  : pas sûr que Yengine [16] fonctionne aussi.

[11:26] Ubit Umarov  : tout ce qui est en dehors de ce que l'équipe de MS considère comme une application normale... quoi que ce soit, est persona non grata.

[11:26] Misterblue Waves : qu'est-ce que yengine utilise qui n'est pas dans dotnet ?

[11:26] Misterblue Waves: ?

[11:27] Ubit Umarov  : le code dynamique [17]

[11:27] Ubit Umarov  : ce n'est pas "l'utilisation normale des applications".

[11:28] Ubit Umarov  : sur un blog quelqu'un a vérifié l'utilisation du code image sur les applications normales, et a constaté qu'il n'était pas utilisé, sauf sur quelques trucs pour générer des QR codes..."

[11:28] Vincent.Sylvester @hg.zetaworlds.com:8002: Il faudrait effectivement créer une sorte de virtualisation pour "exécuter" les choses et à ce stade, on revient à un runtime, ce qu'est Mono, donc on réinvente la roue...

[11:29] Ubit Umarov  : donc... l'image ne fait pas partie des applications normales, donc elle n'est pas supportée.

[11:29] Ubit Umarov  : :p

[11:29] Vincent.Sylvester @hg.zetaworlds.com:8002: C'est la généralisation abusive du siècle lol

[11:29] Ubit Umarov  : pour être honnête, le problème majeur qu'ils ont avec lui est libgdi++.

[11:29] Ubit Umarov  : le hack mono pour remplacer le vrai gdi[18] de windows

[11:30] Vincent.Sylvester @hg.zetaworlds.com:8002: C# est assez couramment utilisé pour le code dynamique en fait. Je me souviens avoir écrit des plugins C# pour certains jeux qui se chargeaient dynamiquement dès qu'on sauvegardait le code, ce qui rend le développement vraiment facile.

[11:30] Ubit Umarov  : cela dépend de beaucoup d'autres bibliothèques linux comme pango [19].

[11:30] Vincent.Sylvester @hg.zetaworlds.com:8002: Certains moteurs de jeu sont construits avec cela aussi.

[11:30] Ubit Umarov  : en fait il y a au moins une incompatibilité sur la façon dont l'alpha est géré par pango.

[11:31] Ubit Umarov  : j'ai eu un petit conflit avec cela sur les textures Dyn.

[11:31] Ubit Umarov  : et comme vous vous rappelez, pour l'alpha [20], linux faisait le contraire de windows.

[11:31] Ubit Umarov  : en fait quelque chose comme ça :)

[11:32] Ubit Umarov  : donc oui libgdi++ a toujours eu des problèmes.

[11:32] Vincent.Sylvester @hg.zetaworlds.com:8002: Si ce code était facile à modifier ou à changer, nous aurions déjà des textures dynamiques sur des textures existantes, les mélangeant ensemble, mais oh là là, ce code est un spaghetti.

[11:32] Ubit Umarov  : donc ils refusent juste d'essayer de le maintenir.

[11:32] Vincent.Sylvester @hg.zetaworlds.com:8002: Une de ces choses qu'il faut écrire d'un seul coup en étant sous l'emprise de boissons énergisantes et de café.

[11:33] Ubit Umarov  : et donc pas de code Imagor pour linux.

[11:33] Ubit Umarov  : entre-temps, ils l'ont réintroduit, sous Windows seulement.

[11:33] Ubit Umarov  : donc 99% des ordinateurs sont heureux :p

[11:33] MichaelOmega ChristopherGeode : rofl@boissons énergétiques et café - la partie café est trop faible, elle ne fait que vous ralentir ;)

[11:35] Vincent.Sylvester @hg.zetaworlds.com:8002: Les textures dynamiques, idéalement comme les bakes, devraient être faites sur le viewer, recevant juste les appels. Le viewer a généralement un GPU[21]... vous savez... une unité de traitement graphique... mais autant demander aux nuages dans le ciel.

Compatibilité APIs Dotnet et .net

[11:35] Ubit Umarov  : j'ai aussi trouvé quelques différences sur les APIs [22] de Dotnet.

[11:35] Misterblue Waves : J'aimerais toujours trouver le temps de faire une libomv-lite qui pourrait être faite en dotnet. Il y a beaucoup de choses dans cette bibliothèque que OS n'utilise pas.

[11:35] Ubit Umarov  : censé être identique à .net... mais pas vraiment.

[11:35] Ubit Umarov  : rappelez-vous que .net core 1 a été clairement présenté comme un changement majeur.

[11:36] Ubit Umarov  : comme une nouvelle chose courageuse.

[11:36] Misterblue Waves : puis j'aimerais commencer à retravailler OS juste pour dotnet-6.

[11:36] Ubit Umarov  : je suppose qu'il a fallu que la direction de ms intervienne et les force.

[11:36] Ubit Umarov  : donc dans Core 3 on a fait un effort majeur pour retrouver une certaine compatibilité.

[11:37] Misterblue Waves remarque que "dotnet-6" est trop proche de "deep 6 "ing ;-)

[11:37] Ubit Umarov  : c'était au point qu'ils ont été obligés de le renommer .Net5.

[11:37] Andrew Hellershanks sourit à Misterblue.

[11:37] Ubit Umarov  : disant que c'était juste un changement de nom lol

[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: Peu importe que je ne sois pas convaincu que même MS sache où ils veulent aller... où est la "oh si grande Entreprise .NET " qu'ils étaient sensés construire... ouais, il faut attendre qu'ils se décident à envoyer la voiture dans le mur avant d'engager quelque chose d'aussi grand qu'OpenSim dans ce sens.

[11:37] Ubit Umarov  : nahh c'était pour essayer d'effacer l'idée que Core était un changement majeur et une rupture.

[11:38] Ubit Umarov  : si vous lisez les premiers documents de Core, c'était simplement quelque chose de nouveau et de courageux ... aujourd'hui c'est une mise à jour de .net.

[11:39] Ubit Umarov  : mais beaucoup ont été exclus.

[11:39] Ubit Umarov  : et beaucoup de choses se ressemblent, mais sont différentes...

[11:39] Ubit Umarov : bahh

[11:39] Ubit Umarov  : bien sûr, pas impossible à convertir.

[11:40] Ubit Umarov  : encore plusieurs mois de travail non rémunéré sans raison valable...

[11:40] Ubit Umarov  : avec un débogage difficile

[11:40] Ubit Umarov  : vous voyez ?

Tout redévelopper est une perte de temps

[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: Je me demande qui a pensé à ça en premier lieu. Je pense qu'il est assez clair aujourd'hui que la plupart des gens préfèrent garder les choses héritées plutôt que de passer du temps à les développer à nouveau, à moins qu'il n'y ait un avantage clair qui peut être quantifié en argent.

[11:40] Ubit Umarov  : et cela ne peut pas être un changement partiel.

[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: Les banques fonctionnent toujours sur des systèmes des années 70.

[11:41] Ubit Umarov  : il faudra beaucoup de corrections de code, avant que tout recommence à fonctionner.

[11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: Même SAP[23] a encore des tonnes de code écrit avant ma naissance.

[11:41] Ubit Umarov  : le vieux code est bon.

[11:41] Ubit Umarov  : Le CERN [24] est resté en fortran[25] pour cette raison.

[11:41] Andrew Hellershanks  : :)

[11:42] Ubit Umarov  : ils avaient des tonnes et des tonnes du meilleur code mathématique qui existe.

[11:42] Vincent.Sylvester @hg.zetaworlds.com:8002: Réinventer la roue juste pour pouvoir épeler roue avec un e en moins n'est pas vraiment une bonne utilisation du temps et des ressources.

[11:42] Ubit Umarov  : perdre tout ça juste parce que des langages sans intérêt changent ??

[11:42] Ubit Umarov  : les vrais bons programmeurs sont une chose rare...

[11:43] Ubit Umarov  : la plupart du code est une pure ordure... cela fait des choses...

[11:43] Ubit Umarov  : on n'envoie pas à la poubelle du code fait par de vrais bons codeurs...

[11:43] Vincent.Sylvester @hg.zetaworlds.com:8002: La différence quantifiable est la clé, se contenter de mettre à niveau vers des normes plus récentes quand cela revient à faire les mêmes choses dans le même temps est une perte d'énergie.

[11:43] Ubit Umarov  : spécialement sur du code mathématique pas facile, avec gestion des erreurs, etc.

[11:44] Kayaker Magic  : J'ai un dicton : "Un mauvais programmeur peut écrire du FORTRAN dans n'importe quel langage".

[11:44] Andrew Hellershanks  : hehe

[11:44] Ubit Umarov  : Au passage fortran parce que c'était vraiment le meilleur pour produire du code optimisé.

[11:45] Misterblue Waves : la partie d'OS qui me fait peur, c'est toute cette plomberie modulaire que mel et diva ont mise en place pour toutes les versions de hg[26]/robust[27]/etc... c'est un enchevêtrement de dlls[28] interconnectées, à chargement dynamique avec juste assez d'exceptions pour la "performance".

[11:45] Ubit Umarov  : sa structure rigide permettait aux compilateurs de faire moins d'"erreurs".

[11:45] Ubit Umarov  : ouais ces modules... enfin...

Statistiques

Logiciels de monitoring

[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: Je cherchais des trucs de monitoring [29], quelque chose pour montrer la moyenne de charge et la mémoire, j'ai continué à obtenir des résultats pour toutes sortes de projets, la plupart utilisant graphana[30] qui est une douleur dans le cou pour obtenir un fonctionnement correct en natif. rrdtool [31] et collectd [32] [33](en) sont anciens par rapport aux normes d'aujourd'hui, mais fonctionnent très bien pour montrer les données et sont légers.

[11:46] Ubit Umarov  : nous avons toujours besoin de postPostPostInit ?

[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: Regardez Gitlab[34], qui a commencé comme un remplacement pour bitbucket[35] et github[https://fr.wikipedia.org/wiki/GitHub), bloqués et lents, et qui est maintenant lui-même à la limite du blocage qui devient lent et fastidieux à gérer.

Systèmes de statistiques

[11:46] Misterblue Waves : OS a plus d'un système de statistiques LOL

[11:47] Ubit Umarov  : rappelez-vous qu'OS a été conçu comme un framework[36].

[11:47] Vincent.Sylvester @hg.zetaworlds.com:8002: J'ai étendu jsonsimstats[37][38] un peu en fait, donc les autres sont presque inutiles maintenant.

[11:47] Ubit Umarov  : en fait, il ne devrait même pas être exécuté.

[11:47] Ubit Umarov  : nous l'avons indiqué dans certaines documentations...

[11:48] Ubit Umarov  : seulement quelques développeurs fous ont décidé qu'opensim devrait essayer de faire quelque chose :p

[11:48] Ubit Umarov  : ( l'auteur de ces documents l'a aussi fait ).

[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002: C'est quand même beaucoup plus facile à manipuler que d'autres codes qui font beaucoup moins de choses.

[11:49] Ubit Umarov  : sur les modules, la situation la plus irritante pour moi maintenant est la connexion à la grille.

[11:49] Ubit Umarov  : il n'y en a pas.

[11:49] Andrew Hellershanks  : Vincent, j'aimerais pouvoir consulter les statistiques sans avoir à analyser mentalement le code json [39].

[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: Eh bien, les données sous forme json ne sont pas vraiment utiles pour tout ce qui concerne les statistiques car elles ne sont pas encore fiables.

[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: Le nombre de scripts n'arrête pas de sauter à des nombres bizarres.

[11:50] Ubit Umarov  : une région n'est vérifiée que si elle est autorisée lorsque tout est chargé, même la carte téléchargée.

[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: Je n'ai toujours pas trouvé ce qui cloche avec ça.

[11:50] Ubit Umarov  : et nous ne pouvons pas le faire aussi tôt.

[11:51] Ubit Umarov  : parce que la région n'a pas de modules de communication chargés jusqu'à cette étape, principalement.

[11:51] Ubit Umarov  : parce que les modules cooms sont comme tous les autres.

[11:51] Andrew Hellershanks  : pourquoi jsonsimstats ne récupère-t-il pas ses données à partir du ou des lieux d'échantillonnage utilisés par webstats [40]?

[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: Je pense que c'est en grande partie le cas, le comptage des scripts est cassé quelque part en interne, car les statuts des sims dans lsl [41][42] donnent les mêmes chiffres erronés.

[11:52] Ubit Umarov  : comme MB l'a dit, nous avons plusieurs moteurs de statistiques.

[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: Je n'ai pas commencé à creuser trop profondément car ce n'est pas une chose critique, juste une statistique.

[11:53] Ubit Umarov  : allez... opensim n'a pas de doigts,... comment peut-il compter les scripts ?

Le décompte des avatars intègre les NPC

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: Le compte d'avatar lit aussi les NPC [43] et je ne suis pas sûr de savoir pourquoi.

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: Je me souviens de la correction de ce problème, mais elle n'était peut-être pas suffisante ou il manquait un flag.

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: Si la journée avait 48 heures, je pourrais le faire.

[11:54] Andrew Hellershanks  : Cela montre que le nombre de NPC devrait être disponible comme une statistique séparée. On dirait qu'un flag n'est pas vérifié quelque part dans le comptage des avatars.

[11:54] MichaelOmega ChristopherGeode : Il n'y a tout simplement pas assez d'heures dans la journée.

[11:54] Misterblue Waves : jsonsimstats a été construit pour que l'on puisse avoir une page web scriptée pour afficher les statistiques (JS[44] qui lit le JSON et construit des tableaux pour l'affichage).

[11:54] Ubit Umarov  : je pense que certains développeurs ont considéré que nous ne devrions pas voir de différence entre les npcs et les avatars.

[11:55] Vincent.Sylvester @hg.zetaworlds.com:8002: Andrew, c'est fait maintenant, mais quelque chose ne fonctionne toujours pas comme prévu.

[11:55] Ubit Umarov  : donc nous n'avons pas besoin de tracer tous les endroits où il devrait y avoir une différence.

[11:55] Vincent.Sylvester @hg.zetaworlds.com:8002: J'ai changé cela il y a presque deux ans maintenant, je pense.

[11:55] Ubit Umarov  : rappelez-vous que les NPCs ont été ajoutés pour la même raison que les bots[45](en) dans SL.

[11:55] Ubit Umarov  : pour faire croire que les régions avaient des visiteurs.

[11:55] Vincent.Sylvester @hg.zetaworlds.com:8002: Il vérifie les NPC évidents, mais je soupçonne que s'ils sont marqués pour être traités comme des avatars, ils sont quand même comptés, quelque chose comme ça...

[11:56] Ubit Umarov  : et bien ils sont comptés différemment dans la plupart des endroits maintenant.

[11:56] Ubit Umarov  : (parce qu'un développeur est arrivé qui déteste les NPC comme remplacements humains :P )

[11:57] Andrew Hellershanks hoche la tête.

[11:58] Vincent.Sylvester @hg.zetaworlds.com:8002: Pour faire quoi ? Introduire plus de couches de problèmes  ?

[11:58] Andrew Hellershanks  : Le code des statistiques ne devrait pas avoir à travailler sur la façon de compter les avatars/NPC car il devrait y avoir une fonction centrale pouvant être appelée qui renverrait les informations de correction (nécessitant éventuellement un flag pour dire s'il faut inclure les NPC ou non).

[11:58] Selby.Evans @grid.kitely.com:8002  : Doit partir -- Au revoir tout le monde

[11:58] MichaelOmega ChristopherGeode : au revoir Selby !

[11:58] Ubit Umarov  : salut !

[11:59] Misterblue Waves : au revoir, Selby !

[11:59] Andrew Hellershanks  : Au revoir, Selby

[11:59] Vincent.Sylvester @hg.zetaworlds.com:8002: Andrew, c'est la partie la plus facile à corriger, j'imagine, étant donné que nous suivons cela correctement, mais je pense que le code des statistiques saisit simplement les mauvaises données ou quelque chose comme ça. Le plus gros problème est celui des scripts actifs qui peuvent être partout, même négatifs pour certaines raisons.

Système de stockage des assets basé sur S3

[11:57] Misterblue Waves : sur un autre sujet... quelqu'un se souvient-il de quelqu'un qui a construit un système de stockage d'assets[46] basé sur S3 [47]?

[11:58] Ubit Umarov  : s3 ?

[11:58] MichaelOmega ChristopherGeode : je sais que quelqu'un a parlé d'un système S3 à un moment donné - je ne sais pas s'il a été construit par quelqu'un d'autre.

[11:59] Misterblue Waves : une base de données interfacée avec S3 -- il y a beaucoup de services de stockage S3 qui sont BEAUCOUP moins chers que Amazon.

[11:59] Ubit Umarov  : amazon s3 ?

[11:59] MichaelOmega ChristopherGeode : ubit - oui

[12:00] Ubit Umarov : comme ce que SL utilise ?

[12:00] Ubit Umarov  : Peut-être que kitely[48] utilise quelque chose comme ça aussi.

[12:00] Ubit Umarov  : amusant SL maintenant est aussi peu sécurisé que ce que MOSES[49](en) disait d'opensim.

[12:00] Ubit Umarov : LOL

[12:01] MichaelOmega ChristopherGeode: lol

[12:01] Ubit Umarov  : le passage à des systèmes de ce type rend tous les assets publics et non sécurisés.

[12:01] Ubit Umarov  : enfin des implémentations réelles sont utilisées.

[12:02] Ubit Umarov  : bien sûr, dans notre cas, cela tue aussi les assets locaux comme les textures dyn.

[12:02] MichaelOmega ChristopherGeode : parce que le chiffrement prend trop de temps/ressources pour utiliser quelque chose de réellement sécurisé ?

[12:02] Ubit Umarov  : non, n'importe qui peut les récupérer même sans login.

[12:02] Jamie.Jordan @grid.kitely.com:8002 : Bonne semaine à tous

[12:03] MichaelOmega ChristopherGeode : toi aussi jamie

[12:03] Andrew Hellershanks  : Toi aussi, Jamie.

[12:03] Andrew Hellershanks  : Nous avons un peu dépassé l'heure. Des dernières questions/commentaires pour aujourd'hui ?

[12:03] Ubit Umarov  : lisez le vieux truc de MOSES sur la sécurité d'osgrid... maintenant, ça concerne aussi SL :P

[12:04] Ubit Umarov  : ils ont gardé quelques trucs sur LLUDP [50] donc c'est toujours sûr.

[12:04] Vincent.Sylvester @hg.zetaworlds.com:8002: Sécurité par l'obscurité, mais pas entièrement

[12:05] Ubit Umarov  : c'est le seul qui fonctionne vraiment.

[12:05] Ubit Umarov  : LOL

[12:05] Ubit Umarov  : mais rien sur l'obscurité

[12:06] Ubit Umarov  : c'est le contrôle d'accès... ou l'absence de contrôle.

Conclusion

[12:07] Andrew Hellershanks  : S'il n'y a pas d'autres questions/commentaires pour aujourd'hui, je vais mettre un terme à cette réunion. Mon chat en sera heureux. Il cherche à attirer mon attention :)

[12:07] Andrew Hellershanks  : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.

[12:07] Kayaker Magic  : Au revoir à tous !

[12:07] MichaelOmega ChristopherGeode : Je pense que je suis bon - beaucoup de pensées/projets mais rien de prêt à partager pour le moment.

[12:07] MichaelOmega ChristopherGeode : au revoir tout le monde !