HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Wednesday, Oct 9th, 2024 at 05:25pm 

Dev News Friday, Oct 29th, 2010 at 05:09pm
Kooplet, étape 69

 
Après mise au propre de certaines parties de gestion de la base de données qui pouvaient poser problème, nous avons relancé la collecte de fichiers, en vérifiant régulièrement l'intégrité des bases de données, ainsi que les rapports dans les fichiers-journaux.
 
Aucun problème sur environ 6000 fichiers, jusqu'à ce que le plantage de base se reproduise à nouveau. Nous avons pu, cette fois, grâce au compte-rendu détaillé des opérations, comprendre ce qui s'était passé :
 
Notre serveur Web est muni de protections pour éviter qu'un ou plusieurs scripts puissent partir dans des boucles infinies et saturer la machine : aucun appel à un script ne peut durer plus de 5 minutes. Au-delà de ce délai, la tâche correspondant au script est automatiquement tuée.
 
Or, un des fichiers que nous avions à traiter était un fichier ZIP, contenant plusieurs fichiers ABC, eux-même contenant chacun plusieurs centaines de morceaux.
 
Cela faisait, dans un seul fichier, plusieurs milliers de morceaux de musique à analyser, indexer, et stocker dans les bases de données. Ce processus prenait plus de 5 minutes, et le script était alors terminé abruptement, alors qu'il était en plein dans l'écriture des divers fichiers des bases de données.
 
Dans ce type de cas, il vaudrait mieux envoyer les morceaux un à un plutôt que tous d'un coup. Ainsi, chaque accès individuel ne serait que d'une fraction de secondes, aucun d'entre eux ne flirtant avec le temps limite attribué à la tâche.
 
En attendant de modifier le programme dans ce sens, nous avons mis en place dans notre script une vérification du temps passé, permettant de quitter proprement lorsqu'on dépasse 3 mn (histoire d'avoir un peu de marge). Ainsi, tous les morceaux contenus dans le ZIP ne seront pas pris en compte, mais la base devrait rester intègre.
 
Nous allons essayer de faire tourner l'indexation pendant ce week-end de trois jours, et voir si tout tient le choc.
by Olivier Guillion

Dev News Thursday, Oct 28th, 2010 at 04:45pm
Kooplet, étape 68

 
Nous avons passé une bonne partie de la journée à tenter de localiser le problème de corruption de la base de données de Kooplet.  
 
L'ennui, c'est que cela ne semble se produire que dans de rares cas, après une collecte de plusieurs milliers de fichiers.
Nous avons essayé de créer un programme de "stress" de la base de données, avec des milliers de création, redimensionnement et suppression d'éléments, mais cela n'a pas permis de reproduire cette erreur.
 
Nous avons donc relancé une collecte, après avoir truffé notre code de marquage des opérations dans un fichier-journal. Nous espérons ainsi que, si cela se reproduit, nous pourrons nous en servir pour comprendre d'où ça vient.
 
En attendant, nous collectons donc à nouveau, tout en sachant qu'il faudra tout reprendre à zéro lorsque l'erreur aura été supprimée.
by Olivier Guillion

Dev News Monday, Oct 25th, 2010 at 04:53pm
Kooplet, étape 66

 
Les appels à la lecture de pages et de fichier sur Internet par le crawler ont été rendus non bloquants, même sur Windows.
Pour ce faire, un processus indépendant est lancé pour l'envoi de commande et la lecture du résultat sur Internet, et si ce processus ne répond pas au bout d'un délai imparti, il est automatiquement détruit par le processus "père".
Malheureusement, un oubli de programmation nous a fait analyser incorrectement quelques centaines de fichiers. Ils seront récupérés au prochain balayage complet de chaque site.
 
Sylvain, en examinant les logs d'accès à son site, nous a fait remarquer que notre robot ne tenait pas compte des indications du "robots.txt" en ce qui concerne les adresses à ne pas balayer. Cela a été corrigé.
 
Il a également signalé que notre robot essayait d'accéder à des pages inexistantes, croyant à tort avoir trouvé des liens sur celles-ci dans les pages déjà visitées.
Nous avons donc amélioré cette partie.
 
Nous avons détecté quelques boucles de liens mal résolues (page A qui contient un lien sur page B, qui contient un lien sur page A...). Normalement, cela aurait dû être traité automatiquement par le robot, qui ne devrait jamais passer deux fois au même endroit. Il semble y avoir un problème dans certains cas...
by Olivier Guillion

Dev News Wednesday, Oct 20th, 2010 at 04:51pm
Kooplet, étape 65

 
Nous avons terminé de vérifier le système de parcours des pages Web (crawler), repérage et analyse des fichiers musicaux, et conversion de ces derniers en données utilisables par le moteur de recherche.
 
Nous avons reconstitué la liste d'une cinquantaine de sites Web qui avait servi à nos premiers essais, et lancé une indexation de ces sites.
 
Pour l'instant, 4 instances du client d'indexation sont en cours sur un PC sous Windows, une autre est en test sur une machine Linux, et une ou plusieurs autres seront démarrées ce soir sur un PC personnel.
Les 3 machines fonctionneront toute la nuit, et nous verrons demain matin ce que ça a donné.
 
Par contre, il s'agit seulement de la collecte des données. Ces dernières sont simplement stockées dans une base de données temporaire, limitée arbitrairement à 10000 éléments (fichiers).
 
Pour les transformer en quelque chose d'utilisable par le système de recherche, il faut extraire de ces données les informations musicales, ainsi que les divers textes. Ceci ne peut se faire pour l'instant qu'à l'aide de nos versions de développement d'Harmony Assistant et PDFtoMusic.  
 
Pour éviter que tout s'arrête lorsque 10000 fichiers sont en attente d'analyse, il faut donc théoriquement que suffisamment d'instances de ces versions d'Harmony et PDFtoMusic tournent pour analyser les données plus rapidement qu'elles sont collectées. Il va nous falloir évaluer à l'usage combien de machines devront être mobilisées, et pour combien d'heures par jour.
by Olivier Guillion

Dev News Monday, Oct 18th, 2010 at 04:57pm
Kooplet, étape 64

 
La nouvelle version du robot d'indexation (crawler) de Kooplet a tourné ce week-end, sur un petit nombre de sites (moins d'une dizaine). Il a indexé ainsi un petit lot de 4000 fichiers.
 
La partie client du crawler demande peu de ressources sur la machine sur laquelle elle tourne, et devrait même pouvoir être lancée depuis une clé USB ou un CD-ROM, car elle ne stocke aucun fichier sur le disque.  
 
Ceci nous a permis de vérifier les accès concurrentiels de plusieurs instances de ce client, ainsi que la bonne récupération des données des fichiers musicaux.
 
Cependant, la vérification des doublons (même fichier musical disponible à des adresses différentes du même site) nécessitait des balayages assez longs, nous avons donc mis en place un index croisé pour une recherche plus rapide. Ceci nous a obligé à recommencer le processus d'indexation depuis le début.
Cette semaine, nous devrions pouvoir relancer la création de la base définitive.
by Olivier Guillion
 1 comment.

Dev News Thursday, Oct 14th, 2010 at 05:13pm
Kooplet, étape 63 et autre

 
Nous avançons toujours sur le système de balayage des sites. Nous nous sommes heurtés à un problème assez compliqué qui n'avait jamais été résolu convenablement dans la version précédente du "crawler" : certains sites, pour être parcourus correctement, nécessitent un enregistrement de l'utilisateur.
C'est le cas notamment de CPDL.
 
Afin d'économiser la bande passante, les visiteurs se voient redirigés aléatoirement vers des sites miroir, ce qui perturbait notre robot. Heureusement, le webmaster de CPDL est également utilisateur de nos produits, il nous a donc aimablement ouvert un compte privilégié afin que nous puissions indexer tous les fichiers à notre guise.
 
Mais la phase de "login" nous a posé quelques problèmes. Le site est un wiki, donc pour éviter que des robots puissent s'enregistrer tout seuls et s'amuser sur les pages, des protections anti-robot ont été mises en place. L'analyse nous a montré qu'elles étaient similaires au système anti-spam de notre blog. Nous avons donc du gérer la prise en compte de cookies multiples, et récupérer des données générées dynamiquement sur les pages de log-in afin que notre robot puisse s'identifier correctement. Cela fonctionne maintenant.
 
 
Dans un tout autre domaine, nous avons reçu ce matin un e-mail qui nous a fait beaucoup rire.
Un utilisateur très soucieux de la confidentialité des échanges sur Internet s'est inscrit à notre liste de diffusion de la lettre d'information.
 
Dans l'e-mail de confirmation de l'inscription, nous terminons par le petit paragraphe suivant :
Quote:
Note : Afin d'éviter les abus, l'adresse IP de la personne ayant demandé ce message vous est communiquée ici.
Il s'agit de : xxx.xxx.xxx.xxx

Ceci permet d'éviter qu'un robot automatique, le voisin à qui vous avez rayé la voiture, ou un collègue de bureau un peu farceur n'inscrive votre adresse e-mail à votre insu juste pour rigoler. Avec l'adresse IP, vous pouvez vérifier que l'inscription provient bien de chez vous.
 
Voici donc le mail que nous avons reçu en retour. Je me suis permis d'en modifier légèrement la syntaxe afin que son auteur ne considère pas que nous dévoilons en public des éléments de correspondance privée .
Quote:
A ma demande d'information concernant vos produits, vous me menacez en me précisant que vous avez mon adresse IP. Je me suis inscrit sans mauvaise intention et en retour, je suis agressé par vous. Pour quelle raison ? Clarifiez votre démarche, vous améliorerez ainsi votre image auprès de vos clients de bonne foi.

Si ce monsieur savait qu'à chaque consultation d'une page sur un site, le serveur voyait son adresse IP en clair, je crains qu'il n'en perde d'un coup le sommeil et l'appétit. Les campagnes médiatiques paranogènes sur les dangers d'Internet ont, il semble, fait croire à certains que l'adresse IP était une information secrête, au même titre que le code de carte bleue ou la combinaison de son coffre-fort...
by Olivier Guillion
 1 comment.

Dev News Tuesday, Oct 12th, 2010 at 04:46pm
Kooplet, étape 62

 
Le module serveur et le module client du "crawler" de kooplet sont écrits, et fonctionnels. Le module client est très léger, et consomme une puissance de calcul négligeable (jamais plus de 1% de la puissance CPU). Il devrait pouvoir tourner en tâche de fond sans effet notable.
 
Avant de lancer l'exploration des sites musicaux, il faut d'abord vérifier ces modules en profondeur, afin de s'assurer qu'ils respectent bien les paramètres imposés par les sites visités (fichier robots.txt), et que cette exploration se passe bien.
Il faut par exemple éviter les boucles de liens (la page A a un lien sur la page B, qui a un lien sur la page A), et s'assurer que le module client réagit bien lorsque le site qu'il explore n'est pas correctement accessible.  
 
La version Windows du Perl ne permet pas de définir un timeout sur les accès Internet, donc un site qui ne répond pas fait boucler le programme indéfiniment. Dans la version Linux, par contre, cela fonctionne... presque.  
Il arrive en effet que certains accès très lents finissent par bloquer le programme également. Nous n'avons pas pu déterminer exactement dans quel cas, mais c'est assez gênant, car cela nous obligerait à relancer le module client tous les deux ou trois jours en moyenne.
 
Nous prévoyons donc de développer un module d'accès indépendant du corps principal du module, ce qui permettrait d'arrêter son exécution s'il ne répond pas au bout d'un certain temps.
Ainsi, le module pourrait fonctionner sans nécessité d'intervention humaine sur n'importe laquelle des deux plateformes.  
by Olivier Guillion

Dev News Thursday, Oct 7th, 2010 at 04:56pm
Kooplet, étape 61

 
Avant de relancer l'indexation des sites musicaux par Kooplet, nous avons décidé de reprendre à la base le "crawler", c'est-à-dire le programme qui se balade sur Internet pour repérer les fichiers intéressants.
 
En effet, il avait été programmé assez à la va-vite, et dans sa version actuelle, ne permettait qu'à une seule machine de procéder à ces recherches. Nous lançions donc plusieurs instances du programme sur une seule machine dédiée (tournant sur Linux).
 
La quantité de pages à balayer ne pouvant qu'augmenter au fur et à mesure que de nouveaux sites à indexer seraient découverts, nous avions peur qu'une seule machine, ce soit un peu juste.
 
Nous avons donc repensé l'architecture du crawler : un serveur centralisé (sur kooplet.com) gèrera donc les sites en cours d'exploration, les pages à visiter, les fichiers découverts et en attente de traitement. L'intégralité de ces données sera gérée en utilisant notre système de base de données.
 
Un client léger pourra être lancé sur autant d'ordinateurs que désiré, ces ordinateurs demandant au serveur la page à explorer et lui renvoyant soit les informations sur le contenu des fichier musicaux, soit les liens découverts dans la page Web. On pourrait ainsi envisager, lorsque le besoin s'en ferait sentir, de demander de l'aide à quelques-uns d'entre vous pour explorer l'arborescence des pages Web. Cela pourrait se faire soit au travers d'un petit programme indépendant, soit par une commande privée de MyrScript, directement dans Harmony Assistant.
 
Nous avons également besoin des traitements d'Harmony Assistant, ou de PDFtoMusic, pour transformer les données des fichiers musicaux collectés par le "crawler" en données simplifiées pouvant être utilisées par le moteur de Kooplet lors d'une recherche. Là aussi, nous pourrions faire appel à des utilisateurs volontaires pour nous aider à traiter toutes ces données, par l'intermédiaire d'une commande privée cachée dans ces logiciels.
by Olivier Guillion
 1 comment.


Full view
Reduced view
Most recent first
Oldest first
All
Didier Guillion
Olivier Guillion
Sylvie Ricard
All
Myriad Life
Mood
Technical
Memories
To be seen
Dev News
30 previous days
Apr 2006
May 2006
Jun 2006
Jul 2006
Aug 2006
Sep 2006
Oct 2006
Nov 2006
Dec 2006
Jan 2007
Feb 2007
Mar 2007
Apr 2007
May 2007
Jun 2007
Jul 2007
Aug 2007
Sep 2007
Oct 2007
Nov 2007
Dec 2007
Jan 2008
Feb 2008
Mar 2008
Apr 2008
May 2008
Jun 2008
Jul 2008
Aug 2008
Sep 2008
Oct 2008
Nov 2008
Dec 2008
Jan 2009
Feb 2009
Mar 2009
Apr 2009
May 2009
Jun 2009
Jul 2009
Aug 2009
Sep 2009
Oct 2009
Nov 2009
Dec 2009
Jan 2010
Feb 2010
Mar 2010
Apr 2010
May 2010
Jun 2010
Jul 2010
Aug 2010
Sep 2010
Oct 2010
Nov 2010
Dec 2010
Jan 2011
Feb 2011
Mar 2011
Apr 2011
May 2011
Jun 2011
Jul 2011
Aug 2011
Sep 2011
Oct 2011
Nov 2011
Dec 2011
Jan 2012
Feb 2012
Mar 2012
Apr 2012
May 2012
Jun 2012
Jul 2012
Aug 2012
Sep 2012
Oct 2012
Nov 2012
Dec 2012
Jan 2013
Feb 2013
Mar 2013
Apr 2013
May 2013
Jun 2013
Jul 2013
Aug 2013
Sep 2013
Oct 2013
Nov 2013
Dec 2013
Jan 2014
Feb 2014
Mar 2014
Apr 2014
May 2014
Jun 2014
Jul 2014
Aug 2014
Sep 2014
Oct 2014
Nov 2014
Dec 2014
Jan 2015
Feb 2015
Mar 2015
Apr 2015
May 2015
Jun 2015
Jul 2015
Aug 2015
Sep 2015
Oct 2015
Nov 2015
Dec 2015
Jan 2016
Feb 2016
Mar 2016
Apr 2016
May 2016
Jun 2016
Jul 2016
Aug 2016
Sep 2016
Oct 2016
Nov 2016
Dec 2016
Jan 2017
Feb 2017
Mar 2017
Apr 2017
May 2017
Jun 2017
Jul 2017
Aug 2017
Sep 2017
Oct 2017
Nov 2017
Dec 2017
Jan 2018
Feb 2018
Mar 2018
Apr 2018
May 2018
Jun 2018
Jul 2018
Aug 2018
Sep 2018
Oct 2018
Nov 2018
Dec 2018
Jan 2019
Feb 2019
Mar 2019
Apr 2019
May 2019
Jun 2019
Jul 2019
Aug 2019
Sep 2019
Oct 2019
Nov 2019
Dec 2019
Jan 2020
Feb 2020
Mar 2020
Apr 2020
May 2020
Jun 2020
Jul 2020
Aug 2020
Sep 2020
Oct 2020
Nov 2020
Dec 2020
Jan 2021
Feb 2021
Mar 2021
Apr 2021
May 2021
Jun 2021
Jul 2021
Aug 2021
Sep 2021
Oct 2021
Nov 2021
Dec 2021
Jan 2022
Feb 2022
Mar 2022
Apr 2022
May 2022
Jun 2022
Jul 2022
Aug 2022
Sep 2022
Oct 2022
Nov 2022
Dec 2022
Jan 2023
Feb 2023
Mar 2023
Apr 2023
May 2023
Jun 2023
Jul 2023
Aug 2023
Sep 2023
Oct 2023
Nov 2023
Dec 2023
Jan 2024
Feb 2024
Mar 2024
Apr 2024
May 2024
Jun 2024
Jul 2024
Aug 2024
Sep 2024
Oct 2024
Oct 9th, 2024 at 05:18pm 
Article from Olivier Guillion
Harmony Assistant 9.9.9  beta étape 25
Oct 8th, 2024 at 05:03pm 
Article from Didier Guillion
Harmony Assistant 9.9.9  beta étape 24
Oct 7th, 2024 at 06:51pm 
Article from Olivier Guillion
Harmony Assistant 9.9.9 beta et autre, étape 23
Oct 5th, 2024 at 07:18am 
Comment from Antoine Bautista
@Sylvain....
Oct 4th, 2024 at 09:43pm 
Comment from Sylvain
@Antoine
Oct 4th, 2024 at 07:43pm 
Comment from Antoine Bautista
Et le Format ....
Oct 4th, 2024 at 04:59pm 
Article from Didier Guillion
Harmony Assistant 9.9.9  beta étape 22
Oct 3rd, 2024 at 08:07pm 
Article from Olivier Guillion
Harmony Assistant 9.9.9  beta étape 20
Oct 2nd, 2024 at 04:58pm 
Article from Didier Guillion
Harmony Assistant 9.9.9  beta étape 20
Oct 2nd, 2024 at 04:58pm 
Article from Didier Guillion
Harmony Assistant 9.9.9  beta étape 20

Top of page
Legal information Cookies Last update:  (c) Myriad