villes.plus icon indicating copy to clipboard operation
villes.plus copied to clipboard

Plus de villes ?

Open afranke opened this issue 4 years ago • 8 comments

Les explications ne disent pas comment la liste est constituée. Elle compte actuellement 23 villes. Pourquoi 23 et pas plus ? Quelle est la propriété de ces 23 villes qui fait qu’elles figurent au classement ? J’ai bien trouvé villesClassées.js mais ça n’informe pas des critères d’inclusion et je suppose qu’il va falloir en décréter si on veut éviter des PR pour ajouter un hameau. :smile:

afranke avatar Apr 13 '21 11:04 afranke

Nice (5e ville française par sa population avec 341032, pour une surface de 71,9km²) par exemple est absente. C’est assez curieux comparé à de « petites » comme Villeurbanne ou Grenoble.

afranke avatar Apr 13 '21 11:04 afranke

Oh, c'est étrange pour Nice, elle était là au début !? C'est une erreur. J'ai simplement voulu intégrer les ~25 plus grandes villes.

A vrai dire, l'activation de toutes les villes pose un problème de temps de calcul, et donc de coût. Les calculs sont bien bourrins, pas très optimisés et je paie le serveur de ma poche (35€/mois).

Une fois les calculs effectués, c'est pas coûteux du tout de servir les données. Il faudrait donc optimiser le traitement (qui n'est fait que ponctuellement, les données ne changent pas si vite que ça) pour que tous les 6 mois on puisse calculer plus de villes.

En fait en travaillant un peu mieux le code, on pourrait faire ce calcul sur toutes les communes françaises :)

Pour être cohérent, je pense qu'il faudrait modifier l'interface pour proposer des classements de villes par intervalle de taille, et par région. Mais c'est un développement assez conséquent.

Est-ce que tu codes :) ? Est-ce que tu connais des acteurs qui pourraient financer un tel travail ? 10-20k€ je pense.

laem avatar Apr 14 '21 09:04 laem

Ah et j'ai oublié : quand on tape l'URL https://villes.plus/Nice, le serveur va calculer le score de Nice.

La 1ère requête foire, puis si on la refait 2 minutes après, ça doit fonctionner :)

Capture d’écran du 2021-04-14 11-34-48

laem avatar Apr 14 '21 09:04 laem

Je donne plus d'infos sur le traitement. En gros, traiter une métropole, c'est 1 minute de temps de calculs serveur sur un beau serveur à 35€ chez scalingo.

Au début, je voulais faire ces calculs sur les fonctions Netlify, pour profiter de cette infra à la demande qui est parfaite pour cet usage. Mais les fonctions s'arrêtaient par construction au bout de 10 secondes, donc ça collait pas. Mais bonne nouvelle, il y a maintenant les background functions ! https://docs.netlify.com/functions/background-functions/

Reste à tester si la quantité de mémoire de cette fonction est suffisante, car le calcul se fait en RAM et est assez lourd (non optimisé, en NodeJS).

En tout cas je veux que le déploiement d'une mise à jour des données soit complètement automatisé. Si quelqu'un veut changer le langage de calcul (NodeJS), je ne suis pas contre, mais je n'aurai pas le temps de le faire moi-même.

laem avatar Apr 14 '21 09:04 laem

C'est corrigé. https://villes.plus/pietonnes

J'ai renommé l'issue.

laem avatar Jan 02 '23 17:01 laem

c'est 1 minute de temps de calculs serveur sur un beau serveur à 35€ chez scalingo

T'as pensé à Hetzner ? Chez eux 30 EUR /mo te donne 16 GB et 8 CPUs https://www.hetzner.com/cloud#pricing mais tu peux commencer avec le plus petit et le grandir au fur et à mesure. Si tu veux être vraiment malin tu peux même effacer le serveur par API et le redémarrer quand on en a besoin ...

Autres fournisseurs existent, mais s'ils sont moins chers dis-moi parce que moi aussi je veux savoir ;)

bovine3dom avatar Mar 12 '23 19:03 bovine3dom

@bovine3dom les choses ont bien changé depuis mon commentaire :) Le calcul est maintenant fait puis stocké dans un S3, donc aucun problème de coûts.

laem avatar Apr 03 '23 07:04 laem

Dans les derniers développements, pour le cyclable, je commence à permettre le calcul sur n'importe quelle ville.

laem avatar Apr 03 '23 07:04 laem