Re: [OSM-dev-fr] python shapely - c geos

2012-11-16 Par sujet Yves CAINAUD
Eh bé ? 2éme réponse de 'geos simple example' dans gg ;)

http://lists.osgeo.org/pipermail/geos-devel/2007-May/002895.html

Yves

Le 16 novembre 2012 09:07, didier2020 didier2...@free.fr a écrit :

 bonjour,
 j'explique:
 actuellement j'utilise python et shapely, et certains traitement sont
 trop long (  millions de boucle pour faire quelques centaines de
 corrections)
 j'ai pensé qu'un programme en c pourrait etre plus efficace.
 comme geos est utilisé par qadastre, j'ai commencé a essayer de
 comprendre ...

 je connais quelqu'un qui peut m'aider pour la programmation c, il m'a
 demandé un point de départ sur ce que je voulais faire

 d'ou ma demande:
 un bout de code qui cré 8 points et deux polygones ou linearings.
 les exemples que j'ai trouvé jusqu'a maintenant sont trop complexes par
 rapport a ma connaissance du c / programmation.

 merci d'avance
 didier






 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 http://lists.openstreetmap.org/listinfo/dev-fr

___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] python shapely - c geos

2012-11-16 Par sujet didier2020
je n'ai pas pensé qu'il pouvait y avoir une liste geos-devel
merci !



Le vendredi 16 novembre 2012 à 09:15 +0100, Yves CAINAUD a écrit :
 Eh bé ? 2éme réponse de 'geos simple example' dans gg ;)
 
 http://lists.osgeo.org/pipermail/geos-devel/2007-May/002895.html
 
 Yves
 
 Le 16 novembre 2012 09:07, didier2020 didier2...@free.fr a écrit :
 bonjour,
 j'explique:
 actuellement j'utilise python et shapely, et certains
 traitement sont
 trop long (  millions de boucle pour faire quelques centaines
 de
 corrections)
 j'ai pensé qu'un programme en c pourrait etre plus efficace.
 comme geos est utilisé par qadastre, j'ai commencé a essayer
 de
 comprendre ...
 
 je connais quelqu'un qui peut m'aider pour la programmation c,
 il m'a
 demandé un point de départ sur ce que je voulais faire
 
 d'ou ma demande:
 un bout de code qui cré 8 points et deux polygones ou
 linearings.
 les exemples que j'ai trouvé jusqu'a maintenant sont trop
 complexes par
 rapport a ma connaissance du c / programmation.
 
 merci d'avance
 didier
 
 
 
 
 
 
 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 http://lists.openstreetmap.org/listinfo/dev-fr 
 
 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 http://lists.openstreetmap.org/listinfo/dev-fr



___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] python shapely - c geos

2012-11-16 Par sujet THEVENON Julien
 De : didier2020 didier2...@free.fr

 bonjour,
 j'explique:
 actuellement j'utilise python et shapely, et certains traitement sont
 trop long (  millions de boucle pour faire quelques centaines de
 corrections)
 j'ai pensé qu'un programme en c pourrait etre plus efficace.
 comme geos est utilisé par qadastre, j'ai commencé a essayer de
 comprendre ...

 je connais quelqu'un qui peut m'aider pour la programmation c, il m'a
 demandé un point de départ sur ce que je voulais faire

 d'ou ma demande:
 un bout de code qui cré 8 points et deux polygones ou linearings.
 les exemples que j'ai trouvé jusqu'a maintenant sont trop complexes par
 rapport a ma connaissance du c / programmation.


Interessante cette librairie, merci pour l info !

Julien___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Notification renderd planté

2012-11-16 Par sujet Rodolphe Quiedeville

Yves CAINAUD a écrit on 16/11/12 09:10:

Salut,
Renderd est vraiment stable, néanmoins j'aimerai gérer le fait qu'il
puisse planter sur un  serveur ubuntu 2.04, renderd est lancé depuis
/etc/init.d/renderd (celui qui n'a jamais compilé geos, postgis, gdal,
mapnik et mod_tile/renderd dans le désordre me jette un caillou).

Quelle sont les meilleures manières de faire? Un script maison lancé par
cron avec tentative de re-lancement avant notification email, ou y
a-t-il une manière consacrée pour çà ?


As-tu regardé du coté d'outil comme 'monit' (pquet eponyme) dont le but 
est justement de surveiller qu'un process tourne et de le relancer au 
cas où.


A++

--
Rodolphe Quiédeville - Artisan Logiciel Libre
http://cartosm.eu - Intégration de carte libre sur site web
Blog : http://blog.rodolphe.quiedeville.org/


___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Notification renderd planté

2012-11-16 Par sujet Yves CAINAUD
Merci a tout les deux!
J'avais déjà essayé upstart/service pour démarrer renderd, mais je galérais
pas mal. Du coup, je suis revenu sur le bon vieux /etc/init.d (mais si j'ai
bien compris, c'est upstart qui s'occupe, maintenant).
Effectivement, monit convient tout à fait! Mes résultats de recherches
était essentiellement surchargé de Nagios qui est (un peu) overkill pour 1
process.

Yves

Le 16 novembre 2012 12:07, Rodolphe Quiedeville
rodol...@quiedeville.orga écrit :

 Yves CAINAUD a écrit on 16/11/12 09:10:

  Salut,
 Renderd est vraiment stable, néanmoins j'aimerai gérer le fait qu'il
 puisse planter sur un  serveur ubuntu 2.04, renderd est lancé depuis
 /etc/init.d/renderd (celui qui n'a jamais compilé geos, postgis, gdal,
 mapnik et mod_tile/renderd dans le désordre me jette un caillou).

 Quelle sont les meilleures manières de faire? Un script maison lancé par
 cron avec tentative de re-lancement avant notification email, ou y
 a-t-il une manière consacrée pour çà ?


 As-tu regardé du coté d'outil comme 'monit' (pquet eponyme) dont le but
 est justement de surveiller qu'un process tourne et de le relancer au cas
 où.

 A++

 --
 Rodolphe Quiédeville - Artisan Logiciel Libre
 http://cartosm.eu - Intégration de carte libre sur site web
 Blog : 
 http://blog.rodolphe.**quiedeville.org/http://blog.rodolphe.quiedeville.org/


 __**_
 dev-fr mailing list
 dev-fr@openstreetmap.org
 http://lists.openstreetmap.**org/listinfo/dev-frhttp://lists.openstreetmap.org/listinfo/dev-fr

___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] python shapely - c geos

2012-11-16 Par sujet Philippe Verdy
Que ce soit en Python ou Java ou C++ les différences de performances sont
extrèmement minimes (à algorithme équivalent). Tout bonnement car le code
est de toute façon exécuté en code natif compilé (même si en Python ou
Java, la compilation est faite à la demande au tout début de l'utilisation
d'une classe).
Je dirais même l'ayant constaté souvent, que le code est plus rapide en
Python ou Java qu'en C++, tout bonnement car la compilation a lieu sur la
machine cible elle-même en tenant compte au mieux de ses capacités
physiques et de tout un tas de critères liées aux mesures de performance
(le code s'autooptimise) : ce n'est pas le cas du code C++ qui est compilé
sur une machine donnée pour être déployé sur une autre dont on ne connait
pas grand chose.

Bref le problème n'est pas là : le choix de l'algorithme (et surtout des
structures de données utilisées), et divers détails (surtout liés à la
localité des données, et à certaines autres choses comme la minimisation
des appels à l'allocateur mémoire), c'est ce qui fait réellement la
différence. L'autre différence c'est lié aux traitements qu'on fait en trop
(par exemple analyser une structure en entier, pour n'en utiliser en fin de
compte qu'une toute petite partie : les APIs ou bblilothèques utilisées
doivent être bien choisies).

Sinon en C++ on a tendance à en faire trop (et dans ce trop, ne pas tout
vérifier et introduire des anomalies qui se répercutent sur ce dont on a
réellement besoin).

Bref une appli avant d'être du code dans un langage donné, c'est avant tout
une bonne architecture, un bon design (ça passe même avant toute
optimisation locale du code, surtout en C++, car Java ou Python et tout
langage fonctionnant sur une base de machine virtuelle savent éliminer
plein de choses automatiquement si on ne les utilise pas).

Une solution hybride, c'est le C++ compilé en code managé pour une machine
virtuelle (par exemple .Net) qui offre le meilleur des deux mondes (mais
pas tout car C++ permet encore trop de choses : il faut se restreindre à
employer du code managé clean sans manipulations de pointeurs supposant
un modèle mémoire unique). Mais il n'y a strictement aucune différence de
performance alors entre du C++ managé (ou C#), du Java (ou du J#) hormi les
performances de la machine virtuelle elle-même (et les VM Java sont
aujourd'hui excellentes, du moins celles fournies par Sun/Oracle, car du
côté des VM Java de Google, Dalvik VM, ou de GNU c'est pas encore le top au
niveau de leur gestionnaire mémoire ; on peut aussi le dire aussi de la VM
pour CLI (.Net) de Microsoft est bien meilleure que les autres VM CLI
portées actuellement.

Si on veut le top des VM, Intel fournit une VM managée vraiment au poil
(mais elle est chère et sert surtout pour des serveurs pro commerciaux);
Intel sait aussi faire des compilateurs C++ très performants (y compris C++
pour CLI/.Net où il fournit des optimiseurs dynamiques pour les VM a
compilation de type JIT, autrement dit compilation à l'exécution, sur la
machine cible et pouvant même adapter le code compilé en fonction de la
charge à effectuer ou de la charge en cours, et la possibilité de
distribuer le code automatiquement sur un réseau de processeurs distants
fournisseurs de puissance, ou vers des processeurs massivement parallèles,
tels que les GPU).

C++ n'est cependant pas le code idéal pour programmer du parallélisme
massif, il n'est pas assez précis pour décrire les conditions de
rendez-vous, de synchronisation, ou de dépendance entre les flux de
données ou leur conditions de validité (ou alors il s'avère
particulièrement verbeux et les oublis et erreurs de programmation sont
alors nombreuses). De fait un compilateur C++ s'interdit plein
d'optimisations possibles car il n'a pas les moyens de décider tout seul.

J'ai programmé beaucoup en C et C++ dans le passé; maintenant je suis accro
à Java (même si le langage est encore un peu verbeux pour certaines choses,
mais il existe des moyens automatiques de réduire cette verbosité, y
compris avec les générateurs de code et les frameworks), et de temps en
temps Eiffel pour des modélisations plus complexes, surtout en phase de
prototypage et évaluation de la faisabilité ou l'étude fonctionnelle
préalable.

D'autres langages plus pratiques (mais compatibles) apparaissent qui
compilent pour une VM Java, .Net, ou Python ; même pour PHP qui inclue lui
aussi une VM qui s'améliore de plus en plus mais n'a pas encore le même
niveau de qualité et devrait plutôt songer à utiliser une compilation vers
une VM Java, .Net, ou Python, ce qui est parfaitement possible et
permettrait des intégrations et déploiement plus faciles. Javascript aussi
est devenu extrèmemement performant dans ses VM.

On reproche souvent aux programmeurs Java ou .Net (et surtout Javascript)
d'utiliser trop la Réflexion, c'est vrai, ça ralentit énormément beaucoup
et ça brise le moule solide de l'analyse et la modélisation. Pourtant on a
des outils dans les deux cas qui permettent au code à l'exécution