<html><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:10pt"><div>Bonjour,</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Depuis quelques temps je developpe un logiciel d analyse de diff OSM.</div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Une des applications qui m a paru interessante etait de suivre les modifications effectuees par d autres contributeurs sur des objets que j ai cree ou modifie.</div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">J ai un prototype qui commence a marcher, il n
 est pas termine et reste assez basic pour le moment mais je me suis dit que cela pourrait peut etre interesser d autres personnes.</div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Je le mets donc a disposition en esperant que certains le testeront et me donneront leur avis.</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Vous devriez trouver en piece jointe de ce mail un exemple de rapport genere par l outil.</div><div
 class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Il s agit d un fichier HTML indiquant quels objets ont ete modifies et donnant des details sur les modifications effectues ( changeset,user):</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Node : ajout/suppresion/modifications de tags, deplacement, suppression</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Way : ajout/suppresion/modifications de tags, ajout/suppression de node</div><div class="yui_3_7_2_16_1351973268155_312"
 style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Relation : ajout/suppresion/modifications de tags, ajout/suppression de membre, changement de role d un membre</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Chaque objet OSM est accessible via les liens HTML, dans le cas d une suppression le lien pointe sur la dernier version avant suppression.</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier
 New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Un parametre permet d indiquer le nom de l utilisateur dont on veut suivre les objets. A chaque fois que l utilisateur cree ou modifie un objet celui sera marque comme "a surveiller" et stocke en cache. ( il est aussi possible d ajouter arbitrairement des objets a surveiller en editant la base de donnee de l outil )<br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Dans le cas d un way tous les nodes qui le composent sont marques, c est aussi le cas pour les relations ( cela sera certainement parametrable dans le futur )<br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif;
 background-color: transparent; font-style: normal;">A chaque fois qu un objet marque "a surveiller" est modifie l outil va comparer la nouvelle version avec la precedente ( si celle-ci n est pas en cache elle sera telechargee) et generer le rapport indiquant les differences qu il est capable de detecter <br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Un fichier de conf XML permet de parametrer l outil ( un exemple est fourni dans le package).</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier
 New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><span style="font-weight: bold;">library</span> indique l emplacement de la librairie de suivi des objets</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><span style="font-weight: bold;">analyzer</span> permet de creer un instance du module de suivi d objet. son parametre <span style="font-weight: bold;">user_name</span> est utilise pour decider des objets a mettre sous suivi</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">les parametres <span style="font-weight: bold;">proxy_authentication</span> permettent de se connecter derriere un
 proxy</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><span style="font-weight: bold;">start_policy</span> et <span style="font-weight: bold;">start_sequence_number</span> sont utilises pour analyser les diffs de l exemple.</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Il est possible de configurer l outil pour qu il reparte de la derniere diff analysee en configurant <span style="font-weight: bold;">start_policy</span> a <span style="font-weight: bold;">stored</span></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif;
 background-color: transparent; font-style: normal;"><span style="font-weight: bold;">iteration_number</span> indique a l outil de s arreter apres l analyse de deux minutes-diff. Si l on ne precise pas de valeur l outil continuera son execution jusqu a ce qu il recoive un signal <span style="font-weight: bold;">Control+C</span> auquel cas il s arretera apres avoir fini l analyse en cours et stocke son numero de sequence</div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Pour l instant je n ai fais les tests que sous Linux. A part la gestion du signal Control+C il s agit de C++
 standard donc cela peut peut etre marcher sous MinGW sur Windows<br></div><div class="yui_3_7_2_16_1351973268155_312" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Pour que la compilation fonctionne il faut avoir installe les libs suivantes : perl sqlite3 expat curl zlib<br></div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Le package est telechargeable ici :</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier
 New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><a href="http://thevenon.julien.free.fr/osm_object_watcher/object_watch.tar.gz">http://thevenon.julien.free.fr/osm_object_watcher/object_watch.tar.gz</a></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Il contient deux repertoires et un README:</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">repository qui contient le code
 source de l outil</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">data qui contient les fichiers de confs et donnees necessaires pour l executer et obtenir le rapport d exemple qui se trouve en piece jointe de ce mail</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Le README indique la procedure a suivre pour compiler l outil<br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size:
 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Au niveau des ameliorations a apporter voici quelques idees en vrac des amelioriations que je compte apporter:</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">+ ajout d alerte quand on modifie un way contenant un node a surveiller ( idem pour les relations et leur membres)</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">+ parametrer si l on souhaite marquer un way avec ses nodes ou pas ( idem pour les relations )</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size:
 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">+ ajouter des objets a surveiller a partir d un fichier OSM</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">+ choisir si un objet continue a etre surveille apres modifications ou pas<br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">+ ajouter une interface graphique a l outil<br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div
 class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Si vous avez des questions ou suggestions n hesitez pas, mon framework est concu pour etre modulaire,le suivi d objets n est qu un des modules sur lesquels je developpe</div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;">Julien<br></div><div class="yui_3_7_2_16_1351973268155_324" style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier
 New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 13.3333px; font-family: Courier New,courier,monaco,monospace,sans-serif; background-color: transparent; font-style: normal;"><br></div></div></body></html>