« Réunion du 22-02-2022 » : différence entre les versions
Aucun résumé des modifications |
|||
(23 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-02-22 | source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-02-22 | ||
= Introduction Migration .net5= | = Introduction Migration .net5= | ||
[ | * [https://www.npgsql.org/ npgsql] permet aux programmes écrits en C#, Visual Basic, F# d'accéder au serveur de base de données PostgreSQL . | ||
[11:03] Andrew | [11:03] '''Gavin.Hird @grid.xmir.org:8002 ''': Salut Andrew | ||
[11:04] Ubit Umarov : Code de gravité Description État de suppression de la ligne de fichier du projet | [11:03] '''Andrew Hellershanks''' : Bonjour à tous. | ||
[11:04] '''Ubit Umarov''' : Code de gravité Description État de suppression de la ligne de fichier du projet | |||
Erreur CS1069 Le nom de type 'PerformanceCounter' n'a pas pu être trouvé dans l'espace de nom 'System.Diagnostics'. Ce type a été transféré à un assembly 'System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Pensez à ajouter une référence à cet assembly. OpenSim.Framework.Monitoring D:\Avination\test\opensim\OpenSim\Framework\Monitoring\ServerStatsCollector.cs 65 Actif | Erreur CS1069 Le nom de type 'PerformanceCounter' n'a pas pu être trouvé dans l'espace de nom 'System.Diagnostics'. Ce type a été transféré à un assembly 'System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Pensez à ajouter une référence à cet assembly. OpenSim.Framework.Monitoring D:\Avination\test\opensim\OpenSim\Framework\Monitoring\ServerStatsCollector.cs 65 Actif | ||
[11:04] Ubit Umarov : par exemple | [11:04] '''Ubit Umarov''' : par exemple | ||
[11:04] '''Ubit Umarov''' : les compteurs de performance ont également disparu. | |||
[11:04] '''Andrew Hellershanks''' : Je me suis assoupi après le déjeuner jusqu'à ce que mon Assistant numérique personnel me rappelle l'heure par un bip. | |||
[11:04] '''Ubit Umarov''' : cela signifie aussi que certains de nos codes de statistiques ont disparu. | |||
[11:05] '''Ubit Umarov''' : sur la migration vers .net5 [https://fr.wikipedia.org/wiki/.NET_Core ] | |||
[11:05] '''Kayaker Magic''' : J'ai entendu dire que Mike Chase a réussi à compiler OpenSim et à le faire fonctionner avec .net sur des serveurs Windows, mais il a été surpris de constater que le code résultant ne fonctionne pas sur linux. | |||
[11:05] '''Ubit Umarov''' : La partie la plus effrayante est l'API qui ressemble à la même chose, mais qui ne l'est pas. | |||
[11:06] '''Ubit Umarov''' : eh bien! pour faire cela il devra enlever des choses comme | |||
[11:06] '''Ubit Umarov''' : la carte du monde | |||
[11:06] '''Ubit Umarov''' : etc... | |||
[11:06] '''Ubit Umarov''' : puis réécrire avec des bibliothèques alternatives... | |||
[11:07] '''Ubit Umarov''' : les textures lludp [http://opensimulator.org/wiki/LLUDP_Dissector] sont également mortes. | |||
[11:07] '''Ubit Umarov''' : bien comme je l'ai dit, une tonne de choses. | |||
[11:07] '''Ubit Umarov''' : je ne suis pas sûr que tu aies vraiment lu qu'il l'avait fait. | |||
[11:07] '''Ubit Umarov''' : Je sais qu'il y travaille. | |||
[11:08] '''Ubit Umarov''' : de mon côté, aussi comme je l'ai dit, pas de précipitation. | |||
[11:08] '''Ubit Umarov''' : il ne faut pas se précipiter. | |||
[11:08] '''Andrew Hellershanks''' : C'est un peu bizarre que Microsoft(MS) fasse de tels changements dans .net 5 au point de casser complètement le code du passé. | |||
[11:08] '''Ubit Umarov''' : ohh vous devriez voir .netcore 2 | |||
[11:08] '''Ubit Umarov''' : encore pire | |||
[11:08] '''Ubit Umarov''' : même 3 | |||
[11:09] '''Ubit Umarov''' : c'est à ce moment que MS a vu qu'ils ne pouvaient pas forcer tout le monde à réécrire toutes les applications. | |||
[11:09] '''Ubit Umarov''' : donc ils ont ajouté beaucoup plus de .net4.8 dessus. | |||
[11:10] '''Andrew Hellershanks''' : Je me demande s'ils ont vu le problème en interne. Cela les a probablement incités à faire quelque chose à ce sujet. | |||
[11:10] '''Ubit Umarov''' : mais il y a encore beaucoup de choses qui manquent, comme les images, etc... | |||
[11:10] '''Ubit Umarov''' : les parties qu'ils ont ajoutées... pour Windows seulement. | |||
[11:10] '''Ubit Umarov''' : net5-0-windows a un code image. | |||
[11:10] '''Misterblue Waves''' : je me demande si PrimMesher et libomv [https://bitbucket.org/opensimulator/libopenmetaverse/src/master/] peuvent être mis à jour vers .NET6... c'est un projet de week-end. | |||
[11:11] '''Ubit Umarov''' : même problème. | |||
[11:11] '''Ubit Umarov''' : impossible | |||
[11:11] '''Ubit Umarov''' : ça dépend des bitmaps | |||
[11:11] '''Ubit Umarov''' : et d'autres choses encore | |||
=Modifications dans la base de données = | |||
* [https://fr.wikipedia.org/wiki/NuGet NuGet]: gestionnaire de paquets de la plate forme de développement Microsoft .NET. | |||
[11:11] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : En parlant de librairies alternatives, je me suis posé l'autre jour et j'ai cloné les interfaces Mysql [https://fr.wikipedia.org/wiki/MySQL ] et réécrit les migrations pour changer un tas de champs varchar et char en UUID commec'est maintenant supporté par MariaDB [https://mariadb.org/ ]. Les tests unitaires passent, bien qu'ils utilisent toujours le connecteur Mysql par défaut et je n'ai pas fait beaucoup de tests pour savoir si toutes les parties fonctionnent. Ubit a cherché un connecteur MariaDB directement, mais il semble que, tout comme npgsql plus récent, il soit livré avec un tas de librairies stupides. J'ai vérifié la longueur des tables et dans l'ensemble des tables, j'ai économisé plus de 280 octets juste en changeant ces champs, ce qui revient à près de 30% de la taille de la structure globale. | |||
[11:13] '''Misterblue Waves''' : J'ai utilisé MariaDB comme base de données. Pas de problèmes, mais je ne suis pas un testeur de gros chargements. | |||
[11:14] '''Ubit Umarov''' : maria est maintenant ce que les distros aiment. | |||
[11:14] '''Andrew Hellershanks''' : C'est le cas depuis un certain temps. | |||
[11:14] '''Ubit Umarov''' : je suppose que c'est comme ça depuis qu'Oracle a pris le contrôle de Mysql. | |||
[11:15] '''Andrew Hellershanks''' acquiesce. | |||
[11:15] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : MariaDB 10.7 [https://mariadb.com/kb/en/mariadb-1073-release-notes/ ] est sorti la semaine dernière, il y a maintenant le type de champ UUID, qui est un peu plus petit en taille pour stocker les UUIDs, le truc c'est que, pour en tirer avantage, il faut trouver un moyen de s'interfacer avec lui à un niveau plus bas que de pousser des chaînes de caractères afin d'obtenir des performances, le simple fait de changer les champs en UUID réduit juste la taille de la base de données en général, les performances des requêtes pas tellement. | |||
[11:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il faut une conversion binaire directe ou quelque chose pour s'interfacer avec la lui, mais pour cela il faut un connecteur et celui qui est sur nuget a besoin de quelques bidouillages pour fonctionner. | |||
=Problème des bibliothèques d'images avec Mono = | |||
* [https://fr.wikipedia.org/wiki/Mono_(logiciel) Mono] : mise en œuvre open source (sous licence GNU GPL, GNU LGPL ou X11 selon les éléments) de la plateforme de développement Microsoft .NET. Mono est utilisé entre autre sur les systèmes d'exploitation Linux pour lancer OpenSimulator. | |||
* [https://www.mono-project.com/docs/tools+libraries/tools/mkbundle/ MKBundle] Mono peut transformer les applications .NET (code exécutable et ses dépendances) en exécutables autonomes qui ne dépendent pas de l'installation de Mono sur le système afin de simplifier le déploiement des applications .NET. Pour ce faire, l'outil mkbundle, un compilateur croisé, produit un exécutable natif pour toutes les plates-formes supportées par Mono à partir d'un point d'entrée assembly initial, de ses dépendances .NET et de tout assembly supplémentaire requis par votre application. | |||
[11:12] '''Ubit Umarov''' : MS a refusé de supporter l'image sur toutes les plateformes, comme linux. | |||
[11:12] '''Ubit Umarov''' : à cause de libgdiplus [https://www.mono-project.com/docs/gui/libgdiplus/ ], Cairo [https://fr.wikipedia.org/wiki/Cairo_(logiciel) ], etc. | |||
[11:12] '''Ubit Umarov''' : ils refusent d'assurer la maintenance | |||
[11:12] '''Ubit Umarov''' : un peu compréhensible | |||
[11:13] '''Misterblue Waves''' : certains problèmes ne devraient pas être volontaires. | |||
[11:13] '''Ubit Umarov''' : le Cairo et le Pango [https://fr.wikipedia.org/wiki/Pango ]... | |||
[11:16] '''Andrew Hellershanks''' : Si le code utilise cairo, pango, etc., ils devraient toujours être utilisables dans le code du système d'exploitation en tant que bibliothèques externes. | |||
[11:16] '''Ubit Umarov''' : comme je vous l'ai dit, il faut diviser la base de données. | |||
[11:16] '''Ubit Umarov''' : et utiliser un autre connecteur. | |||
[11:17] '''Ubit Umarov''' : bitmap sur mono dépend de pango, cairo et libgdiplus | |||
[11:17] '''Ubit Umarov''' : que MS refuse d'utiliser | |||
[11:17] '''Ubit Umarov''' : donc pas de code image pour linux sur .net5 ou 6 | |||
[11:17] '''Ubit Umarov''' : comme je l'ai dit .netx-windows l'a... windows seulement | |||
[11:18] '''Andrew Hellershanks''' : Pourquoi le code ne peut pas utiliser ces bibliothèques de toute façon même si MS ne les supporte pas dans .net ? | |||
[11:18] '''Ubit Umarov''' : parce qu'ils n'ajouteront pas à .net, le code qui dépend des bibliothèques qu'ils refusent d'utiliser. | |||
[11:18] '''Gavin.Hird @grid.xmir.org:8002 ''': il n'y a pas d'argent là-dedans. | |||
[11:18] '''Andrew Hellershanks''' : D'autres projets utilisent cairo, pango, etc. donc ces bibliothèques sont toujours là. | |||
[11:19] '''Gavin.Hird @grid.xmir.org:8002 ''': MS a toujours cherché à enfermer ses utilisateurs. | |||
[11:19] '''Ubit Umarov''' : et le code .netx est aussi pour android et ios. | |||
[11:19] '''Andrew Hellershanks''' : Cela n'a aucun sens. Si vous utilisez .NET, vous n'avez aucun moyen d'utiliser une bibliothèque tierce ? | |||
[11:20] '''Ubit Umarov''' : il semble qu'ils pensent aussi que personne ne l'utilise vraiment. | |||
[11:20] '''Ubit Umarov''' : il semble que certains disent de ne voir que le code pour faire le q-code :) | |||
[11:20] '''Ubit Umarov''' : ils disent d'utiliser d'autres bibliothèques d'images pour .net | |||
[11:21] '''Ubit Umarov''' : bien | |||
[11:21] '''Ubit Umarov''' : cela veut dire que tout notre code devra être réécrit. | |||
[11:21] '''Ubit Umarov''' : code jpeg2000 [https://fr.wikipedia.org/wiki/JPEG_2000], maps scultp... maps... etc... | |||
[11:22] '''Ubit Umarov''' : textures dynamiques | |||
[11:22] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Beaucoup de ces choses sont assez abstraites aussi, comprendre comment cela fonctionne actuellement est une grosse tâche en soi, et encore moins la réécrire. | |||
[11:22] '''Ubit Umarov''' : tout est perdu, jusqu'à une réécriture avec autre chose. | |||
[11:22] '''Ubit Umarov''' : je pense que j'ai seulement listé des choses concrètes. | |||
[11:22] '''Misterblue Waves''' : quelles sont les plateformes cibles "supportées" ? Window10/11, Ubuntu (mono6), IOS ? | |||
[11:23] '''Andrew Hellershanks''' : La solution la plus simple est d'écrire notre propre code pour remplacer les bits manquants/non supportés afin que le code principal n'ait pas besoin d'être complètement réécrit. | |||
[11:24] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Andrew, tu veux écrire une bibliothèque d'images, bien sûr, je vais programmer la soirée de lancement, on se voit en 2035. | |||
[11:24] '''Ubit Umarov''' : bien et toujours pas besoin de se précipiter. | |||
[11:24] '''Ubit Umarov''' : malheureusement le mono a perdu beaucoup de correctifs mais il est toujours là. | |||
[11:24] '''Ubit Umarov''' : donc pas besoin de se précipiter. | |||
[11:25] '''Ubit Umarov''' : tout changement vers .net5(6 signifie aussi la perte de beaucoup de bon matériel. | |||
[11:25] '''Andrew Hellershanks''' : Si le .NET actuel/ancien utilise pango, cairo, etc. Pourquoi ne pas simplement faire une bibliothèque qui est une interface entre le code actuel et les bibliothèques backend qui étaient déjà utilisées ? | |||
[11:25] '''Ubit Umarov''' : juste parce que ce matériel ne peut pas faire tourner le dernier Windows. | |||
[11:25] '''Ubit Umarov''' : ou même le dernier linux | |||
[11:25] '''Andrew Hellershanks''' : Que dit MS aux développeurs pour le passage à .NET 5/6 ? Réécrivez vos programmes ? | |||
[11:26] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je suis plus préoccupé par le fait que la dernière version de mono ne supporte plus postgres [https://fr.wikipedia.org/wiki/PostgreSQL] sans changements massifs, je ne suis pas sûr que mysql ne suive pas bientôt. | |||
[11:26] '''Ubit Umarov''' : oui, c'est ce qu'ils disent. | |||
[11:26] '''Ubit Umarov''' : comme je l'ai dit, la situation était bien pire à l'époque de .netcore 2.0. | |||
[11:26] '''Misterblue Waves''' : @Andrew c'est vrai que nous n'utilisons pas toutes les fonctionnalités d'Image. La plupart des trucs qui "ne seront pas supportées" tournent autour des fonctions qui touchent aux images et modifient les formats internes (pour la performance et autres). | |||
[11:26] '''Ubit Umarov''' : parce que la plupart du code ne fonctionne pas dessus. | |||
[11:26] '''Andrew Hellershanks''' : S'ils continuent à faire ça, c'est une excellente démonstration pour expliquer pourquoi vous ne devriez pas utiliser .NET dans vos programmes. | |||
[11:27] '''Ubit Umarov''' : allez dire aux développeurs originaux d'opensim que le choix de c# [https://fr.wikipedia.org/wiki/C_sharp] était un choix très stupide. | |||
[11:27] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : A ce moment là, on pourrait aussi bien réécrire en C [https://fr.wikipedia.org/wiki/C_(langage)] directement et jeter la dépendance au framework par la fenêtre, mais bon sang, ça a l'air amusant... non ! | |||
[11:27] '''Ubit Umarov''' : c'était très stupide, mais trop tard pour changer. | |||
[11:28] '''Ubit Umarov''' : bien sûr, commencer une telle chose en c++ [https://fr.wikipedia.org/wiki/C%2B%2B] avec le support multi.os était beaucoup plus difficile à faire. | |||
[11:28] '''Gavin.Hird @grid.xmir.org:8002 ''': quelqu'un doit télécharger le code du serveur SL :-) | |||
[11:29] '''Ubit Umarov''' : tellement facile que personne ne l'aurait fait. | |||
[11:29] '''Ubit Umarov''' : sans la promesse originale c# de fonctionner (mal) sur windows et linux | |||
[11:29] '''Andrew Hellershanks''' : Je n'ai pas fait assez de programmation en C# pour réaliser qu'il faut utiliser .NET. | |||
[11:29] '''Ubit Umarov''' : et jusqu'à présent ça marchait... | |||
[11:30] '''Ubit Umarov''' : il n'y a pas de c# sans .net. | |||
[11:30] '''Ubit Umarov''' : fondamentalement. | |||
[11:30] '''Ubit Umarov''' : en tout cas, certaines parties essentielles. | |||
[11:30] '''Ubit Umarov''' : nous ne pouvons pas utiliser linq [https://fr.wikipedia.org/wiki/Language_Integrated_Query] par exemple. | |||
[11:31] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La seule option est mkbundle [https://www.mono-project.com/docs/tools+libraries/tools/mkbundle/] , qui consiste à insérer .net dans l'application, ce qui augmente sa taille et ne garantit pas non plus son fonctionnement, surtout pas aux niveaux de complexité d'OpenSim. | |||
[11:31] '''Ubit Umarov''' : mais assez de discussions académiques. | |||
[11:31] '''Ubit Umarov''' : maintenant c'est le c# et c'est comme ça. | |||
[11:31] '''Ubit Umarov''' : juste un dur chemin à parcourir. | |||
[11:31] '''Ubit Umarov''' : mais encore une fois, pas besoin de se précipiter. | |||
[11:31] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Bien difficile si MS décide de continuer à gâcher le plaisir. | |||
[11:31] '''Ubit Umarov''' : plus nous attendons, plus cela devrait être facile. | |||
[11:31] '''Ubit Umarov''' : je l'espère. | |||
[11:32] '''Ubit Umarov''' : parce que d'autres le feront :p | |||
[11:32] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je suis assez fou pour espérer qu'ils finissent par avoir un cerveau. | |||
[11:32] '''Andrew Hellershanks''': :) | |||
[11:32] '''Ubit Umarov''' : tous les logiciels sont de plus en plus fous. | |||
[11:32] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je blâme javascript [https://fr.wikipedia.org/wiki/JavaScript] | |||
[11:33] '''Ubit Umarov''' : et les gens seront obligés de réécrire les choses. | |||
[11:33] '''Andrew Hellershanks''': hehe | |||
[11:33] '''Ubit Umarov''' : Je ne sais pas. | |||
[11:33] '''Ubit Umarov''' : je pense que nous avons 2 ans pour voir le problème du .net6. | |||
[11:34] '''Ubit Umarov''' : peut-être plus | |||
=Changements dans OpenSim cette semaine = | |||
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim] | |||
[11:34] '''Ubit Umarov''' : à propos d'opensim | |||
[11:34] '''Ubit Umarov''' : pas beaucoup de changements la semaine dernière, je pense. | |||
[11:34] '''Ubit Umarov''' : en fait, j'ai failli sortir la 0.9.2.1 aujourd'hui. | |||
[11:35] '''Ubit Umarov''' : la date du 22-2-22 était une date de sortie amusante. | |||
[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''': hehe | |||
[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je n'avais même pas remarqué ça. | |||
[11:35] '''Andrew Hellershanks''' : Juste un changement cette semaine dans le module profiles et une correction d'un message de log. | |||
[11:36] '''Ubit Umarov''' : j'ai mis à jour libomv avec un code plus rapide de l'OSD [http://opensimulator.org/wiki/OpenStructuredData] à json [https://fr.wikipedia.org/wiki/JavaScript_Object_Notation]. | |||
[11:36] '''Andrew Hellershanks''' : Pour moi, ce serait une date de version le 2-22-22. Pas aussi amusante mais presque. | |||
[11:36] '''Ubit Umarov''' : et c'était en gros ça. | |||
[11:36] '''Kayaker Magic''' : J'ai une question sur la dé-duplication. Est-ce qu'OpenSim fait cela sur les images ? J'ai entendu dire que Kitely [https://www.kitely.com/services] le fait. | |||
[11:37] '''Ubit Umarov''' : on dirait qu'il faut laver ses oreilles pour avoir l'info complète. | |||
[11:37] '''Ubit Umarov''': :p | |||
= La déduplication des assets= | |||
* [https://fr.wikipedia.org/wiki/D%C3%A9duplication Déduplication] : En informatique, la déduplication est une technique de stockage de données, consistant à factoriser des séquences de données identiques afin d'économiser l'espace utilisé. | |||
* [https://fr.wiktionary.org/wiki/hachage#Nom_commun_2 Hachage] : Opération qui consiste à appliquer une fonction mathématique permettant de créer l’empreinte ou signature numérique d’un message (d’un bloc de données), transformant le message de taille variable en un code de taille fixe, en vue de son authentification ou de son stockage. | |||
[11:37] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La déduplication sur les assets est faite sur la base d'un hachage, si le hachage est le même, l'élément est juste lié via la Base de données (BD), les textures dynamiques et autres sont côté région donc elles sont effacées de toute façon. | |||
[11:37] '''Andrew Hellershanks''' : Kayaker, il existe un système d'assets qui élimine les doublons. | |||
[11:37] '''Ubit Umarov''': fsassets [http://opensimulator.org/wiki/FSAssets_Service/fr] | |||
[11:38] '''Ubit Umarov''': et xassets [https://www.xassets.com/] | |||
[11:38] '''Ubit Umarov''' : ou comment on l'appelle. | |||
[11:38] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : sras [https://github.com/coyled/sras] et phpsas le font aussi :) | |||
[11:38] '''Andrew Hellershanks''' : Ouais, fsassets. | |||
[11:38] '''Andrew Hellershanks''' : SRAS est venu avant fsassets. | |||
[11:38] '''Ubit Umarov''' : oui fsassets est une version c# de sras. | |||
[11:38] '''Ubit Umarov''' : en gros | |||
[11:39] '''Ubit Umarov''' : xassets le fait, mais le stockage se fait toujours sur mysql. | |||
[11:39] '''Ubit Umarov''' : encore marqué expérimental. | |||
[11:39] '''Kayaker Magic''' : Quand le hachage des images est-il calculé ? Après le décodage des images en bitmaps [https://fr.wikipedia.org/wiki/Windows_bitmap] bruts ? | |||
[11:40] '''Ubit Umarov''': sha256 [https://fr.wikipedia.org/wiki/SHA-256] | |||
[11:40] '''Ubit Umarov''' : les données de l'asset Second Life (SL) | |||
[11:40] '''Ubit Umarov''' : et exactement comme l'asset de SL. | |||
[11:40] '''Ubit Umarov''' : une chose amusante dont les gens parlent et que les viewers oublient. | |||
[11:41] '''Ubit Umarov''' : nous n'avons que des assets au format SL. | |||
[11:41] '''Kayaker Magic''' : Donc après les avoir compressé pour la base de donnée des assets ? Est-ce que c'est un zip [https://fr.wikipedia.org/wiki/ZIP_(format_de_fichier)] ou les images sont juste compressées en jpg2000 ? | |||
[11:41] '''Ubit Umarov''' : toute conversion vers d'autres formats est impossible à faire en temps réel. | |||
[11:41] '''Ubit Umarov''' : à moins que ce ne soit pour des petits concepts. | |||
[11:41] '''Ubit Umarov''' : en fait pas besoin, car il n'y a pas de concept à valider. | |||
[11:42] '''Ubit Umarov''' : pour utiliser d'autres formats, le stockage des assets devra être modifié pour les ajouter. | |||
[11:43] '''Ubit Umarov''' : Eh bien, le viewer d'avination [https://www.gamespedition.com/pc-games/simulation-games/avination] unreal utilisait des formats de ressources SL. | |||
[11:43] '''Misterblue Waves''' : oui... nouveau serveur d'assets. Nouveaux formats, nouvelles permissions d'accès, évolutif... tout un autre projet. | |||
[11:44] '''Ubit Umarov''': Oui | |||
[11:44] '''Misterblue Waves''' : dans les viewers existantes, la conversion du format des assets SL vers un format utilisable est entièrement faite dans le client. | |||
[11:44] '''Ubit Umarov''' : un UUID [https://fr.wikipedia.org/wiki/UUID] d'asset devra pointer vers plusieurs formats. | |||
[11:44] '''Ubit Umarov''' : comme une texture en jp2000 et dds | |||
[11:45] '''Misterblue Waves''' : peut-être en faire un plugin nginx [https://fr.wikipedia.org/wiki/NGINX]. | |||
[11:45] '''Ubit Umarov''' : bien et le faire RAPIDEMENT. | |||
[11:45] '''Ubit Umarov''' : la partie RAPIDE est quelque chose que tout le monde oublie. | |||
[11:45] '''Ubit Umarov''' : et sans cela, c'est inutile. | |||
= Viewers : Les FPS = | |||
[11:46] '''Ubit Umarov''' : nous savons tous que n'importe quel viewer peut être fait... | |||
[11:46] '''Ubit Umarov''': celui d'unreal ''was should most of a region'' | |||
[11:46] '''Ubit Umarov''' : à 6fps [https://fr.wikipedia.org/wiki/Images_par_seconde] ! !! | |||
[11:46] '''Ubit Umarov''' : donc un beau travail... inutile... mais beau. | |||
[11:47] '''Ubit Umarov''' : Firestorm (FS)[https://www.firestormviewer.org/] rend la même région avec 40 fps et fait tout ce qu'il faut. | |||
[11:47] '''Ubit Umarov''' : vous voyez ce que je veux dire ? | |||
[11:48] '''Ubit Umarov''' : err ça m'aiderait si je tapais correctement :p | |||
[11:48] '''Ubit Umarov''' : celui d'unreal rendait une région à 6fps :) | |||
[11:48] '''Ubit Umarov''' : toujours pas de terrain, d'eau ou d'avatars. | |||
[11:48] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Pendant ce temps, la nouvelle version de FS semble améliorer les performances d'un bon 10% d'après ce que je peux dire, je ne me rappelle pas avoir jamais obtenu plus de 60fps ici. | |||
[11:49] '''Ubit Umarov''' : Ils améliorent les performances. | |||
[11:49] '''Ubit Umarov''' : ils ont un autre lot de changements pour un prochain viewer. | |||
[11:49] '''Ubit Umarov''' : FS est en train de les ajouter ainsi que quelques autres. | |||
[11:50] '''Ubit Umarov''' : bien sûr, cela dépend des créateurs de régions. | |||
[11:50] '''Ubit Umarov''' : vous devrez faire attention à la construction de la région si vous voulez des fps. | |||
[11:50] '''Ubit Umarov''' : et avoir une police des mœurs :p | |||
[11:51] '''Ubit Umarov''' : ne pas laisser entrer les avatars dont la complexité est inférieure à 700000. | |||
[11:51] '''Ubit Umarov''': :) | |||
[11:51] '''Andrew Hellershanks''': :) | |||
=Pas d'annonce de nouvelle version aujourd'hui = | |||
[11:52] '''Ubit Umarov''' : alors quelles sont les nouvelles que vous apportez ? | |||
[11:52] '''Ubit Umarov''' : sur opensim... | |||
[11:52] '''Andrew Hellershanks''' : Pas de nouvelles, bonnes nouvelles ? ;) | |||
[11:53] '''Andrew Hellershanks''' : Y aura-t-il un communiqué aujourd'hui ? | |||
[11:53] '''Ubit Umarov''' : si c'est à propos de l'Ukraine, oui. | |||
[11:53] '''Ubit Umarov''' : non, je ne vais pas le faire aujourd'hui. | |||
[11:54] '''Ubit Umarov''' : osgrid [https://www.osgrid.org/] n'en a pas fait non plus sur la 0.9.2.1 [http://opensimulator.org/wiki/0.9.2.1_Release/fr] en gros | |||
[11:55] '''Ubit Umarov''' : mais diva [http://opensimulator.org/wiki/User:Diva] l'attend pour sortir son code [http://opensimulator.org/wiki/Wifi] . | |||
[11:56] '''Ubit Umarov''' : Je lui avais promis une sortie en janvier. | |||
[11:56] '''Ubit Umarov''' : et nous sommes presque en mars :) | |||
[11:56] '''Gavin.Hird @grid.xmir.org:8002 ''': mais quelle année ? | |||
[11:57] '''Ubit Umarov''' : oui, je ne lui ai pas dit l'année... mais elle a supposé 2022 :) | |||
[11:57] '''Gavin.Hird @grid.xmir.org:8002''' : :-) | |||
[11:57] '''Ubit Umarov''' : donc je ne peux pas utiliser cette astuce avec elle : p | |||
[11:58] '''Ubit Umarov''' : bien et les utilisateurs qui demandent le code. | |||
[11:58] '''Gavin.Hird @grid.xmir.org:8002 ''': ils doivent supplier, demander ne suffira pas. | |||
[11:59] '''Ubit Umarov''': :) | |||
=Déduplication : efficacité incertaines et dépendantes de nombreux facteurs = | |||
[11:59] '''Andrew Hellershanks''' : Wow. Cette heure est passée à toute vitesse. Nous sommes déjà au début de l'heure. | |||
[12:00] '''Andrew Hellershanks''' : Avez-vous des questions ou des commentaires à formuler avant de clore cette réunion ? | |||
[12:02] '''Andrew Hellershanks''' : Kayaker, pour info, dans une grande base de données, un système de stockage des assets basé sur le hachage peut réduire considérablement la table des assets. J'ai vu des réductions de 25 à 50 % de la taille de la table. | |||
[12:02] '''Ubit Umarov''' : malheureusement, la taille de la table ne signifie rien :p | |||
[12:03] '''Ubit Umarov''' : bien sûr la taille des tables est plus petite, juste parce que les données de l'asset ne sont pas stockées sur elle, mais sur un fichier disque. | |||
[12:03] '''Kayaker Magic''' : J'étais étonné que les hachages d'images soient susceptibles d'être aussi différents pour des images similaires. | |||
[12:03] '''Andrew Hellershanks''' : oui, mais c'est une économie substantielle d'espace disque utilisé. | |||
[12:04] '''Kayaker Magic''' : Et je ne fais pas confiance à jpg [https://fr.wikipedia.org/wiki/JPEG] pour produire la même image à partir des mêmes données 2 fois de suite... | |||
[12:04] '''Ubit Umarov''' : je suppose que beaucoup de personnes téléchargent les mêmes choses. | |||
[12:04] '''Ubit Umarov''' : bien, ce n'est pas jpg, c'est jpeg2000, un peu différent. | |||
[12:05] '''Ubit Umarov''' : et avec des paramenters fixés sur les viewers. | |||
[12:05] '''Ubit Umarov''' : donc les données finales peuvent être mieux identifiées. | |||
[12:05] '''Ubit Umarov''' : sinon, le hache est juste une perte de temps. | |||
[12:05] '''Ubit Umarov''' : même chose pour les meshes [https://fr.wikipedia.org/wiki/Mesh_(objet)] ... | |||
[12:06] '''Ubit Umarov''' : le hash n'a d'effet que si le mesh est téléchargé avec les mêmes paramètres et un viewer identique. | |||
[12:06] '''Ubit Umarov''' : donc les bits finaux sont exactement les mêmes. | |||
[12:06] '''Ubit Umarov''' : ou alors encore une fois le hachage est inutile. | |||
[12:07] '''Ubit Umarov''' : donc en fait, nous avons des doutes sur son efficacité réelle. | |||
[12:07] '''Ubit Umarov''' : mais les gens disent que c'est le cas... donc... il faut y croire, | |||
[12:08] '''Ubit Umarov''' : et les bons viewers n'ajoutent pas la date de création et l'uuid de l'uploader aux données binaires. | |||
[12:08] '''Ubit Umarov''' : en supposant que le code de la région le fasse (et il ne le fait pas). | |||
[12:08] '''Ubit Umarov''' : si le mesh était spécifié ainsi, le hache échouerait toujours. | |||
[12:09] '''Kayaker Magic''' : Une sorte de hache qui ne regarde que les données de l'image, ou les données des vertex du mesh serait bien. | |||
[12:09] '''Misterblue Waves''' : je vais courir dans RL... je serai ici virtuellement. | |||
[12:09] '''Ubit Umarov''' : non. | |||
[12:09] '''Ubit Umarov''' : le hache ne regarde que les données brutes des assets. | |||
[12:09] '''Andrew Hellershanks''': ok, Misterblue. | |||
[12:09] '''Ubit Umarov''' : il ne peut pas accéder aux détails des assets. | |||
[12:09] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Quelque part dans ce bazar, quelqu'un a défini xml[https://fr.wikipedia.org/wiki/Xml] utf16 [https://fr.wikipedia.org/wiki/UTF-16] pour les linksets (objets liés) même si toutes les données sont utf8 [https://fr.wikipedia.org/wiki/UTF-8] -.-. | |||
[12:09] '''Ubit Umarov''' : pas le temps pour cela. | |||
[12:10] '''Ubit Umarov''' : nahh pense que la plupart sont en fait utf8 disant qu'ils sont utf16 | |||
[12:10] '''Gavin.Hird @grid.xmir.org:8002 ''': êtes-vous sûr qu'il ne peut pas regarder les données des assets ? | |||
[12:10] '''Ubit Umarov''' : ce n'est pas comme ça que ça se passe. | |||
[12:10] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oui, c'est ce que je veux dire, l'en-tête xml réclame utf16 sans raison, ce qui m'a déconcerté au début. | |||
[12:10] '''Ubit Umarov''' : et non... ce serait très lent de regarder par type d'asset [http://opensimulator.org/wiki/Assets]. | |||
[12:10] '''Gavin.Hird @grid.xmir.org:8002 ''': sur postgres, j'ai un outil qui, en regardant les enregistrements individuels, décode les images dans la table des assets à la volée. | |||
[12:11] '''Gavin.Hird @grid.xmir.org:8002 ''': ils sont juste stockés dans un fichier blob [https://fr.wikipedia.org/wiki/Blob#Informatique]. | |||
[12:11] '''Ubit Umarov''' : même faire sha256 n'est pas si rapide. | |||
[12:12] '''Ubit Umarov''' : certains cpus ont une aide matérielle pour cela, mais je ne suis pas sûr que .net l'utilise. | |||
[12:12] '''Gavin.Hird @grid.xmir.org:8002 ''': il suffit de le faire à la première écriture dans cette table. | |||
[12:12] '''Ubit Umarov''': non | |||
[12:12] '''Ubit Umarov''' : à chaque téléchargement | |||
[12:12] '''Gavin.Hird @grid.xmir.org:8002 ''': oui, mais les téléchargements ne sont pas si fréquents. | |||
[12:13] '''Ubit Umarov''' : et cela n'a pas d'importance. | |||
[12:13] '''Ubit Umarov''' : tout bit modifié implique un autre hachage. | |||
[12:13] '''Andrew Hellershanks''' : ouais. | |||
[12:13] '''Ubit Umarov''' : pour le moment nous ne remplissons pas la date de création, et l'id du créateur de la spécification du mesh. | |||
[12:13] '''Gavin.Hird @grid.xmir.org:8002 ''': les données d'image ne peuvent pas être modifiées dans le monde, donc seuls les téléchargements doivent être "re-hachés". | |||
[12:13] '''Ubit Umarov''' : donc au moins ce n'est pas un problème. | |||
[12:14] '''Ubit Umarov''' : même si le même mesh avec les mêmes paramètres sera téléchargé différemment. | |||
[12:14] '''Ubit Umarov''' : en fonction du viewer. | |||
[12:14] Gavin.Hird @grid.xmir.org:8002: oui | |||
[12:14] '''Gavin.Hird @grid.xmir.org:8002 ''': mais les données de l'image doivent être assez constantes. | |||
[12:15] '''Ubit Umarov''' : mais comme je l'ai dit, il semble que le hachage permette de faire des économies, donc c'est mieux que rien. | |||
[12:15] '''Ubit Umarov''' : jpeg2000 constant pourquoi ? | |||
[12:15] '''Gavin.Hird @grid.xmir.org:8002 ''': il n'y a pas beaucoup de mises à jour de cette spécification... | |||
= La licence Kakadu (KDU) = | |||
* KDU / Kakadu : Kakadu est une bibliothèque à code fermé pour encoder et décoder les images JPEG 2000. Elle implémente le standard ISO/IEC 15444-1 entièrement dans la partie 1, et partiellement dans les parties 2-3. Kakadu est une marque déposée de NewSouth Innovations Ltd. [https://en.wikipedia.org/wiki/Kakadu_(software)] [https://wiki.secondlife.com/wiki/KDU_Implementation] | |||
[12:15] '''Ubit Umarov''' : fait avec différentes versions d'openjpeg [https://fr.wikipedia.org/wiki/OpenJPEG] sur kdu | |||
[12:15] '''Gavin.Hird @grid.xmir.org:8002''':nous n'utilisons pas kdu | |||
[12:16] '''Gavin.Hird @grid.xmir.org:8002''': aucun viewer ne le fait pour opensim | |||
[12:16] '''Ubit Umarov''' : les bits de précision inférieurs sont fins. | |||
[12:16] '''Ubit Umarov''' : pensez-y... | |||
[12:16] '''Ubit Umarov''' : je pense que Firestorm paye kdu | |||
[12:16] '''Gavin.Hird @grid.xmir.org:8002 ''': personne ne veux payer des milliers de dollars pour une licence KDU pour opensim. | |||
[12:17] '''Gavin.Hird @grid.xmir.org:8002 ''': FS a obtenu le KDU de Linden Lab (LL). | |||
[12:17] '''Ubit Umarov''' : ce n'est pas pour opensim. | |||
[12:17] '''Ubit Umarov''' : c'est pour tout le monde | |||
[12:17] '''Gavin.Hird @grid.xmir.org:8002 ''': Kokua[https://kokua.atlassian.net/wiki/home] a payé pour | |||
[12:17] '''Andrew Hellershanks''': kdu? | |||
[12:17] '''Ubit Umarov''' : les viewers ne payent pas kdu pour sl ou opensim | |||
[12:17] '''Ubit Umarov''' : ce n'est pas comme Havok [https://defr.abcdef.wiki/wiki/Havok_(Software) ]. | |||
[12:17] '''Gavin.Hird @grid.xmir.org:8002 ''': ils paient pour KDU. | |||
[12:17] '''Ubit Umarov''' : ils payent par viewer. | |||
[12:18] '''Gavin.Hird @grid.xmir.org:8002 ''': sans aucune chance d'obtenir la couverture des coûts pour opensim, personne ne voudra payer pour cela. | |||
[12:18] '''Ubit Umarov''' : donc s'ils payent "pour sl" ils ont payé "pour opensim". | |||
[12:18] '''Andrew Hellershanks''' : J'ai cherché kdu et le premier résultat était General Sir John Kotelawala Defence University :) | |||
[12:18] '''Ubit Umarov''' : contrairement à Havok, où ils utilisent simplement la licence LL. | |||
[12:18] '''Gavin.Hird @grid.xmir.org:8002 ''': oui, mais le seul qui a payé pour KDU est Kokua. | |||
[12:18] '''Gavin.Hird @grid.xmir.org:8002 '''chuchote : FS l'a obtenu de LL | |||
[12:19] '''Ubit Umarov''': ok | |||
[ | [12:19] '''Gavin.Hird @grid.xmir.org:8002 ''': à part cela, personne ne l'utilise à cause de son coût. | ||
[ | [12:19] '''Ubit Umarov''' : yeha FS est livré avec openjpg pour opensim | ||
[ | [12:19] '''Gavin.Hird @grid.xmir.org:8002''': oui | ||
[ | [12:20] '''Gavin.Hird @grid.xmir.org:8002 ''': pas autorisé à utiliser la licence en dehors de SL. | ||
[ | [12:21] '''Gavin.Hird @grid.xmir.org:8002 ''': j'ai donc dû retirer le support KDU des builds 3.0. | ||
= Retour à la déduplication : les métadonnées= | |||
[ | [12:22] '''Ubit Umarov''' : toutes ces différences font échouer la déduplication. | ||
[ | [12:22] '''Ubit Umarov''' : je ne vais pas entrer dans le détail des FPUs [https://fr.wikipedia.org/wiki/Unit%C3%A9_de_calcul_en_virgule_flottante] de tous les cpu qui sont différents etc... | ||
[ | [12:23] '''Ubit Umarov''' : les produits Intel [https://fr.wikipedia.org/wiki/Intel] ont des bugs, vous vous souvenez ? :P | ||
[ | [12:24] '''Ubit Umarov''' : donc je n'ai pas de chiffres réels sur la qualité de la déduplication des fichiers de données. | ||
[ | [12:24] '''Ubit Umarov''' : j'espère qu'il déduplique le "nouveau script" :p | ||
[ | [12:25] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Bonne question, je sais qu'il ne fait certainement pas les notecards , parce qu'ils ont la date de création et autres enregistrés dans leurs données, donc le hache est toujours différent. | ||
[ | [12:25] '''Ubit Umarov''': ouais | ||
[ | [12:25] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : J'ai écrit un article sur les gaspillages qu'OpenSim collectionne à ce sujet. | ||
[ | [12:25] '''Ubit Umarov''' : certains assets ont une date etc... | ||
[ | [12:25] '''Ubit Umarov''' : les meshes sont censés en avoir une... | ||
[ | [12:26] '''Ubit Umarov''' : mais c'est le travail du serveur de les ajouter, et nous ne l'avons jamais fait. | ||
[ | [12:26] '''Ubit Umarov''' : pas sûr de ce que les viewers ajoutent à la métadonnée [https://fr.wikipedia.org/wiki/M%C3%A9tadonn%C3%A9e] jpeg2000 | ||
[ | [12:27] '''Ubit Umarov''' : il est possible qu'il y ait aussi la date et le créateur, ce qui rend le hache inutile sur les meshes. | ||
[ | [12:27] '''Ubit Umarov''' : sur la texture je veux dire | ||
[ | [12:27] '''Ubit Umarov''' : c'est facile pour vous de le vérifier si vous utilisez fsassets :) | ||
[ | [12:28] '''Ubit Umarov''' : téléchargez le même texte à deux reprises et comparez les haches. | ||
[ | [12:29] '''Ubit Umarov''' : pas sûr que ceux qui ont fait sras et fsassets connaissaient les métadonnées que les viewers ajoutent. | ||
[ | [12:30] '''Gavin.Hird @grid.xmir.org:8002 ''': Je ne pense pas que le viewer ajoute des métadonnées aux données brutes de l'image. | ||
[ | [12:30] '''Ubit Umarov''' : ce sont des données j2000 et non des images brutes. | ||
[ | [12:31] '''Gavin.Hird @grid.xmir.org:8002 ''': vous comprenez ce que je veux dire. | ||
[ | [12:31] '''Ubit Umarov''' : ok :) | ||
[ | [12:31] '''Ubit Umarov''' : comme les données de création sur les zones d'information du j2k. | ||
[ | [12:33] '''Ubit Umarov''' : l'animation semble être juste une animation. | ||
[ | = Conclusion= | ||
[12:34] '''Selby.Evans @grid.kitely.com:8002''' : au revoir à tous. | |||
[ | [12:34] '''Ubit Umarov''' : salut | ||
[ | [12:34] '''Andrew Hellershanks''' : Une autre demi-heure s'est écoulée. Je dois y aller, alors je vais clore la réunion d'aujourd'hui. Je vous remercie tous d'être venus. Nous nous reverrons la semaine prochaine. | ||
Dernière version du 24 février 2022 à 14:44
source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-02-22
Introduction Migration .net5
- npgsql permet aux programmes écrits en C#, Visual Basic, F# d'accéder au serveur de base de données PostgreSQL .
[11:03] Gavin.Hird @grid.xmir.org:8002 : Salut Andrew
[11:03] Andrew Hellershanks : Bonjour à tous.
[11:04] Ubit Umarov : Code de gravité Description État de suppression de la ligne de fichier du projet Erreur CS1069 Le nom de type 'PerformanceCounter' n'a pas pu être trouvé dans l'espace de nom 'System.Diagnostics'. Ce type a été transféré à un assembly 'System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Pensez à ajouter une référence à cet assembly. OpenSim.Framework.Monitoring D:\Avination\test\opensim\OpenSim\Framework\Monitoring\ServerStatsCollector.cs 65 Actif
[11:04] Ubit Umarov : par exemple
[11:04] Ubit Umarov : les compteurs de performance ont également disparu.
[11:04] Andrew Hellershanks : Je me suis assoupi après le déjeuner jusqu'à ce que mon Assistant numérique personnel me rappelle l'heure par un bip.
[11:04] Ubit Umarov : cela signifie aussi que certains de nos codes de statistiques ont disparu.
[11:05] Ubit Umarov : sur la migration vers .net5 [1]
[11:05] Kayaker Magic : J'ai entendu dire que Mike Chase a réussi à compiler OpenSim et à le faire fonctionner avec .net sur des serveurs Windows, mais il a été surpris de constater que le code résultant ne fonctionne pas sur linux.
[11:05] Ubit Umarov : La partie la plus effrayante est l'API qui ressemble à la même chose, mais qui ne l'est pas.
[11:06] Ubit Umarov : eh bien! pour faire cela il devra enlever des choses comme
[11:06] Ubit Umarov : la carte du monde
[11:06] Ubit Umarov : etc...
[11:06] Ubit Umarov : puis réécrire avec des bibliothèques alternatives...
[11:07] Ubit Umarov : les textures lludp [2] sont également mortes.
[11:07] Ubit Umarov : bien comme je l'ai dit, une tonne de choses.
[11:07] Ubit Umarov : je ne suis pas sûr que tu aies vraiment lu qu'il l'avait fait.
[11:07] Ubit Umarov : Je sais qu'il y travaille.
[11:08] Ubit Umarov : de mon côté, aussi comme je l'ai dit, pas de précipitation.
[11:08] Ubit Umarov : il ne faut pas se précipiter.
[11:08] Andrew Hellershanks : C'est un peu bizarre que Microsoft(MS) fasse de tels changements dans .net 5 au point de casser complètement le code du passé.
[11:08] Ubit Umarov : ohh vous devriez voir .netcore 2
[11:08] Ubit Umarov : encore pire
[11:08] Ubit Umarov : même 3
[11:09] Ubit Umarov : c'est à ce moment que MS a vu qu'ils ne pouvaient pas forcer tout le monde à réécrire toutes les applications.
[11:09] Ubit Umarov : donc ils ont ajouté beaucoup plus de .net4.8 dessus.
[11:10] Andrew Hellershanks : Je me demande s'ils ont vu le problème en interne. Cela les a probablement incités à faire quelque chose à ce sujet.
[11:10] Ubit Umarov : mais il y a encore beaucoup de choses qui manquent, comme les images, etc...
[11:10] Ubit Umarov : les parties qu'ils ont ajoutées... pour Windows seulement.
[11:10] Ubit Umarov : net5-0-windows a un code image.
[11:10] Misterblue Waves : je me demande si PrimMesher et libomv [3] peuvent être mis à jour vers .NET6... c'est un projet de week-end.
[11:11] Ubit Umarov : même problème.
[11:11] Ubit Umarov : impossible
[11:11] Ubit Umarov : ça dépend des bitmaps
[11:11] Ubit Umarov : et d'autres choses encore
Modifications dans la base de données
- NuGet: gestionnaire de paquets de la plate forme de développement Microsoft .NET.
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002 : En parlant de librairies alternatives, je me suis posé l'autre jour et j'ai cloné les interfaces Mysql [4] et réécrit les migrations pour changer un tas de champs varchar et char en UUID commec'est maintenant supporté par MariaDB [5]. Les tests unitaires passent, bien qu'ils utilisent toujours le connecteur Mysql par défaut et je n'ai pas fait beaucoup de tests pour savoir si toutes les parties fonctionnent. Ubit a cherché un connecteur MariaDB directement, mais il semble que, tout comme npgsql plus récent, il soit livré avec un tas de librairies stupides. J'ai vérifié la longueur des tables et dans l'ensemble des tables, j'ai économisé plus de 280 octets juste en changeant ces champs, ce qui revient à près de 30% de la taille de la structure globale.
[11:13] Misterblue Waves : J'ai utilisé MariaDB comme base de données. Pas de problèmes, mais je ne suis pas un testeur de gros chargements.
[11:14] Ubit Umarov : maria est maintenant ce que les distros aiment.
[11:14] Andrew Hellershanks : C'est le cas depuis un certain temps.
[11:14] Ubit Umarov : je suppose que c'est comme ça depuis qu'Oracle a pris le contrôle de Mysql.
[11:15] Andrew Hellershanks acquiesce.
[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : MariaDB 10.7 [6] est sorti la semaine dernière, il y a maintenant le type de champ UUID, qui est un peu plus petit en taille pour stocker les UUIDs, le truc c'est que, pour en tirer avantage, il faut trouver un moyen de s'interfacer avec lui à un niveau plus bas que de pousser des chaînes de caractères afin d'obtenir des performances, le simple fait de changer les champs en UUID réduit juste la taille de la base de données en général, les performances des requêtes pas tellement.
[11:16] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il faut une conversion binaire directe ou quelque chose pour s'interfacer avec la lui, mais pour cela il faut un connecteur et celui qui est sur nuget a besoin de quelques bidouillages pour fonctionner.
Problème des bibliothèques d'images avec Mono
- Mono : mise en œuvre open source (sous licence GNU GPL, GNU LGPL ou X11 selon les éléments) de la plateforme de développement Microsoft .NET. Mono est utilisé entre autre sur les systèmes d'exploitation Linux pour lancer OpenSimulator.
- MKBundle Mono peut transformer les applications .NET (code exécutable et ses dépendances) en exécutables autonomes qui ne dépendent pas de l'installation de Mono sur le système afin de simplifier le déploiement des applications .NET. Pour ce faire, l'outil mkbundle, un compilateur croisé, produit un exécutable natif pour toutes les plates-formes supportées par Mono à partir d'un point d'entrée assembly initial, de ses dépendances .NET et de tout assembly supplémentaire requis par votre application.
[11:12] Ubit Umarov : MS a refusé de supporter l'image sur toutes les plateformes, comme linux.
[11:12] Ubit Umarov : à cause de libgdiplus [7], Cairo [8], etc.
[11:12] Ubit Umarov : ils refusent d'assurer la maintenance
[11:12] Ubit Umarov : un peu compréhensible
[11:13] Misterblue Waves : certains problèmes ne devraient pas être volontaires.
[11:13] Ubit Umarov : le Cairo et le Pango [9]...
[11:16] Andrew Hellershanks : Si le code utilise cairo, pango, etc., ils devraient toujours être utilisables dans le code du système d'exploitation en tant que bibliothèques externes.
[11:16] Ubit Umarov : comme je vous l'ai dit, il faut diviser la base de données.
[11:16] Ubit Umarov : et utiliser un autre connecteur.
[11:17] Ubit Umarov : bitmap sur mono dépend de pango, cairo et libgdiplus
[11:17] Ubit Umarov : que MS refuse d'utiliser
[11:17] Ubit Umarov : donc pas de code image pour linux sur .net5 ou 6
[11:17] Ubit Umarov : comme je l'ai dit .netx-windows l'a... windows seulement
[11:18] Andrew Hellershanks : Pourquoi le code ne peut pas utiliser ces bibliothèques de toute façon même si MS ne les supporte pas dans .net ?
[11:18] Ubit Umarov : parce qu'ils n'ajouteront pas à .net, le code qui dépend des bibliothèques qu'ils refusent d'utiliser.
[11:18] Gavin.Hird @grid.xmir.org:8002 : il n'y a pas d'argent là-dedans.
[11:18] Andrew Hellershanks : D'autres projets utilisent cairo, pango, etc. donc ces bibliothèques sont toujours là.
[11:19] Gavin.Hird @grid.xmir.org:8002 : MS a toujours cherché à enfermer ses utilisateurs.
[11:19] Ubit Umarov : et le code .netx est aussi pour android et ios.
[11:19] Andrew Hellershanks : Cela n'a aucun sens. Si vous utilisez .NET, vous n'avez aucun moyen d'utiliser une bibliothèque tierce ?
[11:20] Ubit Umarov : il semble qu'ils pensent aussi que personne ne l'utilise vraiment.
[11:20] Ubit Umarov : il semble que certains disent de ne voir que le code pour faire le q-code :)
[11:20] Ubit Umarov : ils disent d'utiliser d'autres bibliothèques d'images pour .net
[11:21] Ubit Umarov : bien
[11:21] Ubit Umarov : cela veut dire que tout notre code devra être réécrit.
[11:21] Ubit Umarov : code jpeg2000 [10], maps scultp... maps... etc...
[11:22] Ubit Umarov : textures dynamiques
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : Beaucoup de ces choses sont assez abstraites aussi, comprendre comment cela fonctionne actuellement est une grosse tâche en soi, et encore moins la réécrire.
[11:22] Ubit Umarov : tout est perdu, jusqu'à une réécriture avec autre chose.
[11:22] Ubit Umarov : je pense que j'ai seulement listé des choses concrètes.
[11:22] Misterblue Waves : quelles sont les plateformes cibles "supportées" ? Window10/11, Ubuntu (mono6), IOS ?
[11:23] Andrew Hellershanks : La solution la plus simple est d'écrire notre propre code pour remplacer les bits manquants/non supportés afin que le code principal n'ait pas besoin d'être complètement réécrit.
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002 : Andrew, tu veux écrire une bibliothèque d'images, bien sûr, je vais programmer la soirée de lancement, on se voit en 2035.
[11:24] Ubit Umarov : bien et toujours pas besoin de se précipiter.
[11:24] Ubit Umarov : malheureusement le mono a perdu beaucoup de correctifs mais il est toujours là.
[11:24] Ubit Umarov : donc pas besoin de se précipiter.
[11:25] Ubit Umarov : tout changement vers .net5(6 signifie aussi la perte de beaucoup de bon matériel.
[11:25] Andrew Hellershanks : Si le .NET actuel/ancien utilise pango, cairo, etc. Pourquoi ne pas simplement faire une bibliothèque qui est une interface entre le code actuel et les bibliothèques backend qui étaient déjà utilisées ?
[11:25] Ubit Umarov : juste parce que ce matériel ne peut pas faire tourner le dernier Windows.
[11:25] Ubit Umarov : ou même le dernier linux
[11:25] Andrew Hellershanks : Que dit MS aux développeurs pour le passage à .NET 5/6 ? Réécrivez vos programmes ?
[11:26] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je suis plus préoccupé par le fait que la dernière version de mono ne supporte plus postgres [11] sans changements massifs, je ne suis pas sûr que mysql ne suive pas bientôt.
[11:26] Ubit Umarov : oui, c'est ce qu'ils disent.
[11:26] Ubit Umarov : comme je l'ai dit, la situation était bien pire à l'époque de .netcore 2.0.
[11:26] Misterblue Waves : @Andrew c'est vrai que nous n'utilisons pas toutes les fonctionnalités d'Image. La plupart des trucs qui "ne seront pas supportées" tournent autour des fonctions qui touchent aux images et modifient les formats internes (pour la performance et autres).
[11:26] Ubit Umarov : parce que la plupart du code ne fonctionne pas dessus.
[11:26] Andrew Hellershanks : S'ils continuent à faire ça, c'est une excellente démonstration pour expliquer pourquoi vous ne devriez pas utiliser .NET dans vos programmes.
[11:27] Ubit Umarov : allez dire aux développeurs originaux d'opensim que le choix de c# [12] était un choix très stupide.
[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : A ce moment là, on pourrait aussi bien réécrire en C [13] directement et jeter la dépendance au framework par la fenêtre, mais bon sang, ça a l'air amusant... non !
[11:27] Ubit Umarov : c'était très stupide, mais trop tard pour changer.
[11:28] Ubit Umarov : bien sûr, commencer une telle chose en c++ [14] avec le support multi.os était beaucoup plus difficile à faire.
[11:28] Gavin.Hird @grid.xmir.org:8002 : quelqu'un doit télécharger le code du serveur SL :-)
[11:29] Ubit Umarov : tellement facile que personne ne l'aurait fait.
[11:29] Ubit Umarov : sans la promesse originale c# de fonctionner (mal) sur windows et linux
[11:29] Andrew Hellershanks : Je n'ai pas fait assez de programmation en C# pour réaliser qu'il faut utiliser .NET.
[11:29] Ubit Umarov : et jusqu'à présent ça marchait...
[11:30] Ubit Umarov : il n'y a pas de c# sans .net.
[11:30] Ubit Umarov : fondamentalement.
[11:30] Ubit Umarov : en tout cas, certaines parties essentielles.
[11:30] Ubit Umarov : nous ne pouvons pas utiliser linq [15] par exemple.
[11:31] Vincent.Sylvester @hg.zetaworlds.com:8002 : La seule option est mkbundle [16] , qui consiste à insérer .net dans l'application, ce qui augmente sa taille et ne garantit pas non plus son fonctionnement, surtout pas aux niveaux de complexité d'OpenSim.
[11:31] Ubit Umarov : mais assez de discussions académiques.
[11:31] Ubit Umarov : maintenant c'est le c# et c'est comme ça.
[11:31] Ubit Umarov : juste un dur chemin à parcourir.
[11:31] Ubit Umarov : mais encore une fois, pas besoin de se précipiter.
[11:31] Vincent.Sylvester @hg.zetaworlds.com:8002 : Bien difficile si MS décide de continuer à gâcher le plaisir.
[11:31] Ubit Umarov : plus nous attendons, plus cela devrait être facile.
[11:31] Ubit Umarov : je l'espère.
[11:32] Ubit Umarov : parce que d'autres le feront :p
[11:32] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je suis assez fou pour espérer qu'ils finissent par avoir un cerveau.
[11:32] Andrew Hellershanks: :)
[11:32] Ubit Umarov : tous les logiciels sont de plus en plus fous.
[11:32] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je blâme javascript [17]
[11:33] Ubit Umarov : et les gens seront obligés de réécrire les choses.
[11:33] Andrew Hellershanks: hehe
[11:33] Ubit Umarov : Je ne sais pas.
[11:33] Ubit Umarov : je pense que nous avons 2 ans pour voir le problème du .net6.
[11:34] Ubit Umarov : peut-être plus
Changements dans OpenSim cette semaine
[11:34] Ubit Umarov : à propos d'opensim
[11:34] Ubit Umarov : pas beaucoup de changements la semaine dernière, je pense.
[11:34] Ubit Umarov : en fait, j'ai failli sortir la 0.9.2.1 aujourd'hui.
[11:35] Ubit Umarov : la date du 22-2-22 était une date de sortie amusante.
[11:35] Vincent.Sylvester @hg.zetaworlds.com:8002: hehe
[11:35] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je n'avais même pas remarqué ça.
[11:35] Andrew Hellershanks : Juste un changement cette semaine dans le module profiles et une correction d'un message de log.
[11:36] Ubit Umarov : j'ai mis à jour libomv avec un code plus rapide de l'OSD [18] à json [19].
[11:36] Andrew Hellershanks : Pour moi, ce serait une date de version le 2-22-22. Pas aussi amusante mais presque.
[11:36] Ubit Umarov : et c'était en gros ça.
[11:36] Kayaker Magic : J'ai une question sur la dé-duplication. Est-ce qu'OpenSim fait cela sur les images ? J'ai entendu dire que Kitely [20] le fait.
[11:37] Ubit Umarov : on dirait qu'il faut laver ses oreilles pour avoir l'info complète.
[11:37] Ubit Umarov: :p
La déduplication des assets
- Déduplication : En informatique, la déduplication est une technique de stockage de données, consistant à factoriser des séquences de données identiques afin d'économiser l'espace utilisé.
- Hachage : Opération qui consiste à appliquer une fonction mathématique permettant de créer l’empreinte ou signature numérique d’un message (d’un bloc de données), transformant le message de taille variable en un code de taille fixe, en vue de son authentification ou de son stockage.
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002 : La déduplication sur les assets est faite sur la base d'un hachage, si le hachage est le même, l'élément est juste lié via la Base de données (BD), les textures dynamiques et autres sont côté région donc elles sont effacées de toute façon.
[11:37] Andrew Hellershanks : Kayaker, il existe un système d'assets qui élimine les doublons.
[11:37] Ubit Umarov: fsassets [21]
[11:38] Ubit Umarov: et xassets [22]
[11:38] Ubit Umarov : ou comment on l'appelle.
[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002 : sras [23] et phpsas le font aussi :)
[11:38] Andrew Hellershanks : Ouais, fsassets.
[11:38] Andrew Hellershanks : SRAS est venu avant fsassets.
[11:38] Ubit Umarov : oui fsassets est une version c# de sras.
[11:38] Ubit Umarov : en gros
[11:39] Ubit Umarov : xassets le fait, mais le stockage se fait toujours sur mysql.
[11:39] Ubit Umarov : encore marqué expérimental.
[11:39] Kayaker Magic : Quand le hachage des images est-il calculé ? Après le décodage des images en bitmaps [24] bruts ?
[11:40] Ubit Umarov: sha256 [25]
[11:40] Ubit Umarov : les données de l'asset Second Life (SL)
[11:40] Ubit Umarov : et exactement comme l'asset de SL.
[11:40] Ubit Umarov : une chose amusante dont les gens parlent et que les viewers oublient.
[11:41] Ubit Umarov : nous n'avons que des assets au format SL.
[11:41] Kayaker Magic : Donc après les avoir compressé pour la base de donnée des assets ? Est-ce que c'est un zip [26] ou les images sont juste compressées en jpg2000 ?
[11:41] Ubit Umarov : toute conversion vers d'autres formats est impossible à faire en temps réel.
[11:41] Ubit Umarov : à moins que ce ne soit pour des petits concepts.
[11:41] Ubit Umarov : en fait pas besoin, car il n'y a pas de concept à valider.
[11:42] Ubit Umarov : pour utiliser d'autres formats, le stockage des assets devra être modifié pour les ajouter.
[11:43] Ubit Umarov : Eh bien, le viewer d'avination [27] unreal utilisait des formats de ressources SL.
[11:43] Misterblue Waves : oui... nouveau serveur d'assets. Nouveaux formats, nouvelles permissions d'accès, évolutif... tout un autre projet.
[11:44] Ubit Umarov: Oui
[11:44] Misterblue Waves : dans les viewers existantes, la conversion du format des assets SL vers un format utilisable est entièrement faite dans le client.
[11:44] Ubit Umarov : un UUID [28] d'asset devra pointer vers plusieurs formats.
[11:44] Ubit Umarov : comme une texture en jp2000 et dds
[11:45] Misterblue Waves : peut-être en faire un plugin nginx [29].
[11:45] Ubit Umarov : bien et le faire RAPIDEMENT.
[11:45] Ubit Umarov : la partie RAPIDE est quelque chose que tout le monde oublie.
[11:45] Ubit Umarov : et sans cela, c'est inutile.
Viewers : Les FPS
[11:46] Ubit Umarov : nous savons tous que n'importe quel viewer peut être fait...
[11:46] Ubit Umarov: celui d'unreal was should most of a region
[11:46] Ubit Umarov : à 6fps [30] ! !!
[11:46] Ubit Umarov : donc un beau travail... inutile... mais beau.
[11:47] Ubit Umarov : Firestorm (FS)[31] rend la même région avec 40 fps et fait tout ce qu'il faut.
[11:47] Ubit Umarov : vous voyez ce que je veux dire ?
[11:48] Ubit Umarov : err ça m'aiderait si je tapais correctement :p
[11:48] Ubit Umarov : celui d'unreal rendait une région à 6fps :)
[11:48] Ubit Umarov : toujours pas de terrain, d'eau ou d'avatars.
[11:48] Vincent.Sylvester @hg.zetaworlds.com:8002 : Pendant ce temps, la nouvelle version de FS semble améliorer les performances d'un bon 10% d'après ce que je peux dire, je ne me rappelle pas avoir jamais obtenu plus de 60fps ici.
[11:49] Ubit Umarov : Ils améliorent les performances.
[11:49] Ubit Umarov : ils ont un autre lot de changements pour un prochain viewer.
[11:49] Ubit Umarov : FS est en train de les ajouter ainsi que quelques autres.
[11:50] Ubit Umarov : bien sûr, cela dépend des créateurs de régions.
[11:50] Ubit Umarov : vous devrez faire attention à la construction de la région si vous voulez des fps.
[11:50] Ubit Umarov : et avoir une police des mœurs :p
[11:51] Ubit Umarov : ne pas laisser entrer les avatars dont la complexité est inférieure à 700000.
[11:51] Ubit Umarov: :)
[11:51] Andrew Hellershanks: :)
Pas d'annonce de nouvelle version aujourd'hui
[11:52] Ubit Umarov : alors quelles sont les nouvelles que vous apportez ?
[11:52] Ubit Umarov : sur opensim...
[11:52] Andrew Hellershanks : Pas de nouvelles, bonnes nouvelles ? ;)
[11:53] Andrew Hellershanks : Y aura-t-il un communiqué aujourd'hui ?
[11:53] Ubit Umarov : si c'est à propos de l'Ukraine, oui.
[11:53] Ubit Umarov : non, je ne vais pas le faire aujourd'hui.
[11:54] Ubit Umarov : osgrid [32] n'en a pas fait non plus sur la 0.9.2.1 [33] en gros
[11:55] Ubit Umarov : mais diva [34] l'attend pour sortir son code [35] .
[11:56] Ubit Umarov : Je lui avais promis une sortie en janvier.
[11:56] Ubit Umarov : et nous sommes presque en mars :)
[11:56] Gavin.Hird @grid.xmir.org:8002 : mais quelle année ?
[11:57] Ubit Umarov : oui, je ne lui ai pas dit l'année... mais elle a supposé 2022 :)
[11:57] Gavin.Hird @grid.xmir.org:8002 : :-)
[11:57] Ubit Umarov : donc je ne peux pas utiliser cette astuce avec elle : p
[11:58] Ubit Umarov : bien et les utilisateurs qui demandent le code.
[11:58] Gavin.Hird @grid.xmir.org:8002 : ils doivent supplier, demander ne suffira pas.
[11:59] Ubit Umarov: :)
Déduplication : efficacité incertaines et dépendantes de nombreux facteurs
[11:59] Andrew Hellershanks : Wow. Cette heure est passée à toute vitesse. Nous sommes déjà au début de l'heure.
[12:00] Andrew Hellershanks : Avez-vous des questions ou des commentaires à formuler avant de clore cette réunion ?
[12:02] Andrew Hellershanks : Kayaker, pour info, dans une grande base de données, un système de stockage des assets basé sur le hachage peut réduire considérablement la table des assets. J'ai vu des réductions de 25 à 50 % de la taille de la table.
[12:02] Ubit Umarov : malheureusement, la taille de la table ne signifie rien :p
[12:03] Ubit Umarov : bien sûr la taille des tables est plus petite, juste parce que les données de l'asset ne sont pas stockées sur elle, mais sur un fichier disque.
[12:03] Kayaker Magic : J'étais étonné que les hachages d'images soient susceptibles d'être aussi différents pour des images similaires.
[12:03] Andrew Hellershanks : oui, mais c'est une économie substantielle d'espace disque utilisé.
[12:04] Kayaker Magic : Et je ne fais pas confiance à jpg [36] pour produire la même image à partir des mêmes données 2 fois de suite...
[12:04] Ubit Umarov : je suppose que beaucoup de personnes téléchargent les mêmes choses.
[12:04] Ubit Umarov : bien, ce n'est pas jpg, c'est jpeg2000, un peu différent.
[12:05] Ubit Umarov : et avec des paramenters fixés sur les viewers.
[12:05] Ubit Umarov : donc les données finales peuvent être mieux identifiées.
[12:05] Ubit Umarov : sinon, le hache est juste une perte de temps.
[12:05] Ubit Umarov : même chose pour les meshes [37] ...
[12:06] Ubit Umarov : le hash n'a d'effet que si le mesh est téléchargé avec les mêmes paramètres et un viewer identique.
[12:06] Ubit Umarov : donc les bits finaux sont exactement les mêmes.
[12:06] Ubit Umarov : ou alors encore une fois le hachage est inutile.
[12:07] Ubit Umarov : donc en fait, nous avons des doutes sur son efficacité réelle.
[12:07] Ubit Umarov : mais les gens disent que c'est le cas... donc... il faut y croire,
[12:08] Ubit Umarov : et les bons viewers n'ajoutent pas la date de création et l'uuid de l'uploader aux données binaires.
[12:08] Ubit Umarov : en supposant que le code de la région le fasse (et il ne le fait pas).
[12:08] Ubit Umarov : si le mesh était spécifié ainsi, le hache échouerait toujours.
[12:09] Kayaker Magic : Une sorte de hache qui ne regarde que les données de l'image, ou les données des vertex du mesh serait bien.
[12:09] Misterblue Waves : je vais courir dans RL... je serai ici virtuellement.
[12:09] Ubit Umarov : non.
[12:09] Ubit Umarov : le hache ne regarde que les données brutes des assets.
[12:09] Andrew Hellershanks: ok, Misterblue.
[12:09] Ubit Umarov : il ne peut pas accéder aux détails des assets.
[12:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Quelque part dans ce bazar, quelqu'un a défini xml[38] utf16 [39] pour les linksets (objets liés) même si toutes les données sont utf8 [40] -.-.
[12:09] Ubit Umarov : pas le temps pour cela.
[12:10] Ubit Umarov : nahh pense que la plupart sont en fait utf8 disant qu'ils sont utf16
[12:10] Gavin.Hird @grid.xmir.org:8002 : êtes-vous sûr qu'il ne peut pas regarder les données des assets ?
[12:10] Ubit Umarov : ce n'est pas comme ça que ça se passe.
[12:10] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, c'est ce que je veux dire, l'en-tête xml réclame utf16 sans raison, ce qui m'a déconcerté au début.
[12:10] Ubit Umarov : et non... ce serait très lent de regarder par type d'asset [41].
[12:10] Gavin.Hird @grid.xmir.org:8002 : sur postgres, j'ai un outil qui, en regardant les enregistrements individuels, décode les images dans la table des assets à la volée.
[12:11] Gavin.Hird @grid.xmir.org:8002 : ils sont juste stockés dans un fichier blob [42].
[12:11] Ubit Umarov : même faire sha256 n'est pas si rapide.
[12:12] Ubit Umarov : certains cpus ont une aide matérielle pour cela, mais je ne suis pas sûr que .net l'utilise.
[12:12] Gavin.Hird @grid.xmir.org:8002 : il suffit de le faire à la première écriture dans cette table.
[12:12] Ubit Umarov: non
[12:12] Ubit Umarov : à chaque téléchargement
[12:12] Gavin.Hird @grid.xmir.org:8002 : oui, mais les téléchargements ne sont pas si fréquents.
[12:13] Ubit Umarov : et cela n'a pas d'importance.
[12:13] Ubit Umarov : tout bit modifié implique un autre hachage.
[12:13] Andrew Hellershanks : ouais.
[12:13] Ubit Umarov : pour le moment nous ne remplissons pas la date de création, et l'id du créateur de la spécification du mesh.
[12:13] Gavin.Hird @grid.xmir.org:8002 : les données d'image ne peuvent pas être modifiées dans le monde, donc seuls les téléchargements doivent être "re-hachés".
[12:13] Ubit Umarov : donc au moins ce n'est pas un problème.
[12:14] Ubit Umarov : même si le même mesh avec les mêmes paramètres sera téléchargé différemment.
[12:14] Ubit Umarov : en fonction du viewer.
[12:14] Gavin.Hird @grid.xmir.org:8002: oui
[12:14] Gavin.Hird @grid.xmir.org:8002 : mais les données de l'image doivent être assez constantes.
[12:15] Ubit Umarov : mais comme je l'ai dit, il semble que le hachage permette de faire des économies, donc c'est mieux que rien.
[12:15] Ubit Umarov : jpeg2000 constant pourquoi ?
[12:15] Gavin.Hird @grid.xmir.org:8002 : il n'y a pas beaucoup de mises à jour de cette spécification...
La licence Kakadu (KDU)
- KDU / Kakadu : Kakadu est une bibliothèque à code fermé pour encoder et décoder les images JPEG 2000. Elle implémente le standard ISO/IEC 15444-1 entièrement dans la partie 1, et partiellement dans les parties 2-3. Kakadu est une marque déposée de NewSouth Innovations Ltd. [43] [44]
[12:15] Ubit Umarov : fait avec différentes versions d'openjpeg [45] sur kdu
[12:15] Gavin.Hird @grid.xmir.org:8002:nous n'utilisons pas kdu
[12:16] Gavin.Hird @grid.xmir.org:8002: aucun viewer ne le fait pour opensim
[12:16] Ubit Umarov : les bits de précision inférieurs sont fins.
[12:16] Ubit Umarov : pensez-y...
[12:16] Ubit Umarov : je pense que Firestorm paye kdu
[12:16] Gavin.Hird @grid.xmir.org:8002 : personne ne veux payer des milliers de dollars pour une licence KDU pour opensim.
[12:17] Gavin.Hird @grid.xmir.org:8002 : FS a obtenu le KDU de Linden Lab (LL).
[12:17] Ubit Umarov : ce n'est pas pour opensim.
[12:17] Ubit Umarov : c'est pour tout le monde
[12:17] Gavin.Hird @grid.xmir.org:8002 : Kokua[46] a payé pour
[12:17] Andrew Hellershanks: kdu?
[12:17] Ubit Umarov : les viewers ne payent pas kdu pour sl ou opensim
[12:17] Ubit Umarov : ce n'est pas comme Havok [47].
[12:17] Gavin.Hird @grid.xmir.org:8002 : ils paient pour KDU.
[12:17] Ubit Umarov : ils payent par viewer.
[12:18] Gavin.Hird @grid.xmir.org:8002 : sans aucune chance d'obtenir la couverture des coûts pour opensim, personne ne voudra payer pour cela.
[12:18] Ubit Umarov : donc s'ils payent "pour sl" ils ont payé "pour opensim".
[12:18] Andrew Hellershanks : J'ai cherché kdu et le premier résultat était General Sir John Kotelawala Defence University :)
[12:18] Ubit Umarov : contrairement à Havok, où ils utilisent simplement la licence LL.
[12:18] Gavin.Hird @grid.xmir.org:8002 : oui, mais le seul qui a payé pour KDU est Kokua.
[12:18] Gavin.Hird @grid.xmir.org:8002 chuchote : FS l'a obtenu de LL
[12:19] Ubit Umarov: ok
[12:19] Gavin.Hird @grid.xmir.org:8002 : à part cela, personne ne l'utilise à cause de son coût.
[12:19] Ubit Umarov : yeha FS est livré avec openjpg pour opensim
[12:19] Gavin.Hird @grid.xmir.org:8002: oui
[12:20] Gavin.Hird @grid.xmir.org:8002 : pas autorisé à utiliser la licence en dehors de SL.
[12:21] Gavin.Hird @grid.xmir.org:8002 : j'ai donc dû retirer le support KDU des builds 3.0.
Retour à la déduplication : les métadonnées
[12:22] Ubit Umarov : toutes ces différences font échouer la déduplication.
[12:22] Ubit Umarov : je ne vais pas entrer dans le détail des FPUs [48] de tous les cpu qui sont différents etc...
[12:23] Ubit Umarov : les produits Intel [49] ont des bugs, vous vous souvenez ? :P
[12:24] Ubit Umarov : donc je n'ai pas de chiffres réels sur la qualité de la déduplication des fichiers de données.
[12:24] Ubit Umarov : j'espère qu'il déduplique le "nouveau script" :p
[12:25] Vincent.Sylvester @hg.zetaworlds.com:8002 : Bonne question, je sais qu'il ne fait certainement pas les notecards , parce qu'ils ont la date de création et autres enregistrés dans leurs données, donc le hache est toujours différent.
[12:25] Ubit Umarov: ouais
[12:25] Vincent.Sylvester @hg.zetaworlds.com:8002 : J'ai écrit un article sur les gaspillages qu'OpenSim collectionne à ce sujet.
[12:25] Ubit Umarov : certains assets ont une date etc...
[12:25] Ubit Umarov : les meshes sont censés en avoir une...
[12:26] Ubit Umarov : mais c'est le travail du serveur de les ajouter, et nous ne l'avons jamais fait.
[12:26] Ubit Umarov : pas sûr de ce que les viewers ajoutent à la métadonnée [50] jpeg2000
[12:27] Ubit Umarov : il est possible qu'il y ait aussi la date et le créateur, ce qui rend le hache inutile sur les meshes.
[12:27] Ubit Umarov : sur la texture je veux dire
[12:27] Ubit Umarov : c'est facile pour vous de le vérifier si vous utilisez fsassets :)
[12:28] Ubit Umarov : téléchargez le même texte à deux reprises et comparez les haches.
[12:29] Ubit Umarov : pas sûr que ceux qui ont fait sras et fsassets connaissaient les métadonnées que les viewers ajoutent.
[12:30] Gavin.Hird @grid.xmir.org:8002 : Je ne pense pas que le viewer ajoute des métadonnées aux données brutes de l'image.
[12:30] Ubit Umarov : ce sont des données j2000 et non des images brutes.
[12:31] Gavin.Hird @grid.xmir.org:8002 : vous comprenez ce que je veux dire.
[12:31] Ubit Umarov : ok :)
[12:31] Ubit Umarov : comme les données de création sur les zones d'information du j2k.
[12:33] Ubit Umarov : l'animation semble être juste une animation.
Conclusion
[12:34] Selby.Evans @grid.kitely.com:8002 : au revoir à tous.
[12:34] Ubit Umarov : salut
[12:34] Andrew Hellershanks : Une autre demi-heure s'est écoulée. Je dois y aller, alors je vais clore la réunion d'aujourd'hui. Je vous remercie tous d'être venus. Nous nous reverrons la semaine prochaine.