From bc1d70343807104ccf64b6bde9b2db54270203ff Mon Sep 17 00:00:00 2001 From: neodarz Date: Fri, 10 Mar 2017 11:58:22 +0100 Subject: Initiale release --- JSTchouTchou.txt | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 JSTchouTchou.txt (limited to 'JSTchouTchou.txt') diff --git a/JSTchouTchou.txt b/JSTchouTchou.txt new file mode 100644 index 0000000..9d33f5a --- /dev/null +++ b/JSTchouTchou.txt @@ -0,0 +1,251 @@ +Titre: JSTchouTchou +Auteur: Bruno +Date: Sat 30 Nov 2013 01:10:04 +0100 +Lien: https://blog.spyou.org/wordpress-mu/2013/11/30/jstchoutchou/ +URL de téléchargement de Podcast: http://www.raildar.fr/videos/2013-12-12.mp4 + +[image 2][2]Les activités professionnelles et associatives m’empêchent de +continuer à alimenter ce blog de manière régulière, mais ça reviendra bien un +jour, la preuve, une lubie m’a pris le weekend dernier à propos de l’opendata. +Suite à un article de l’ami Hervé sur abavala.com[3] ou il expliquait avoir +parsé les résultats des sites d’info de la SNCF avec une page Google, je me +suis dit que c’était bien faisable en direct sans passer par nos amis +américains. + +Du coup j’ai dégainé mon plus beau vim et j’ai pissé du perl. Et de fil en +aiguille, j’en suis arrivé à une carte dynamique de la circulation prenant en +compte les retards annoncés par la SNCF en (presque) temps réel. + +Vous pouvez jouer un peu avec l’outil ici[4]. + +Vous le remarquerez rapidement, en dehors de la proximité immédiate des gares, +les trains ne circulent pas sur les voies quand la position indiquée sur +l’infobulle est marquée « extrapolée » : la problématique est de savoir comment +les positionner précisément sur les voies sans avoir de GPS embarqué. Du coup, +j’ai pondu aussi pas mal de javascript pour pouvoir associer un trajet en train +avec la géolocalisation d’un mobile. Tout le monde peut participer, il suffit +de cliquer sur « play » et de sélectionner sa gare et son train avant de monter +dedans. + +Vous me direz que les voies sont déjà bien documentées, oui, mais aucun de ces +descriptifs ne fait le lien avec les trains eux-même, du coup, pas facile de +savoir pas ou passent les trains entre deux gares. + +Histoire de ne pas saturer infolignes et me faire virer comme un malpropre, je +n’ai pas inclus la totalité des missions nationales dans mes scripts, mais vous +pouvez me demander l’ajout d’un train ou d’une ligne entière sans trop de +soucis. Je tâcherais de faire en sorte que vous puissiez ajouter de nouveaux +numéros de circulation en live bientôt. + +Il y a quelques bugs : + + * Une partie des échanges avec l’appli se fait via des popups, désactivés par + défaut dans le navigateur standard sur android + * La géolocalisation sur autre chose qu’un android ou un iOS a parfois du mal + à passer comme il faut + * Certaines gares ne sont pas bien positionnées + * Il n’y a pas de bouton pour fermer les popups, il faut cliquer dans la + partie grisée de l’interface + +J’ai ajouté un système de discussion sommaire (« chat » en haut à droite) + +Mise à jour du 5 décembre 2013 + +Pas mal de modification dans l’appli depuis une semaine. En vrac : + + * Changement du système d’approvisionnement : je me basais sur une liste de + numéro de circulation des trains faite à la mimine, plutôt fastidieux, puis + j’allais demander pour chaque trains, sur infolignes, s’il circulait ou pas + le jour J. En épluchant le portail opendata de la SNCF je suis tombé sur + l’API « micro-service » permettant de récolter une quantité colossale + d’information théoriques sur les trains. Du coup, j’alimente maintenant ma + base chaque nuit pour le lendemain avec la totalité des TER et Intercités + circulant dans un nombre de gares données. Je parse ensuite le site + infolignes pour chaque train autour de son heure théorique de circulation + pour déterminer s’il est en retard ou pas. Je n’ai pas encore mis toutes + les gares de france mais ça viendra bien, vu que l’application se comporte + globalement assez bien avec la charge (2200 trains quotidiens au moment ou + j’écris ces lignes) + * Passage de la génération du listing de trains en circulation sur un fichier + statique généré toutes les 10 secondes. Il était fait à la volée avant, + c’était gérable pour une cinquantaine de trains et 2 ou 3 visiteurs mais + pas plus. + * Délégation des missions de téléchargement du fichier XML et d’upload des + coordonnées GPS à des worker web permettant de s’assurer que le bout de + code javascript principal se concentre sur le relevé de position GPS pour + éviter d’avoir des trajets discontinu. + * Changement de la méthode de gestion des trains sur la carte : je vidais + entièrement la carte et repositionnait de nouveau les trains. Maintenant, + les nouveaux sont ajoutés 15 minutes avant le départ à leur gare d’origine, + puis se déplacent sans recréation et disparaissent à leur gare d’arrivée. + * Je me suis pris un p’tit nom de domaine histoire de pas me prendre un + procès pour utilisation non autorisée de la marque SNCF dans l’URL. + * Modification du comportement : lorsqu’on clique sur « Play » on ne voit + plus que le train dans lequel on est et sa propre position. C’est d’une + part pour donner un peu d’animation toute seule, d’autre part pour + décharger les smartphone du traitement de l’ensemble des trains pendant + qu’ils s’occupent de faire des relevés GPS + +Côté possibilités offertes, deux appels XML qui peuvent vous intéresser +(méthodes obsolètes. Voir le wiki du projet[5]): + + * http://www.raildar.fr/xml/map_generic qui vous retourne l’ensemble des + trains en circulation actuellement avec leur coordonnées GPS + * http://www.raildar.fr/xml/gares qui vous renvoi l’ensemble des gares que + j’ai en base avec les coordonnées et la possibilité de restreindre la + selection en ajoutant ?name=nom_exact ou bien ?search=nom_partiel + +Je prépare quelques autres API pour accéder facilement au reste des infos. Stay +tuned ! :) + +Je profite de cette mise à jour pour vous rappeler que le gros intérêt de la +chose est aussi de documenter les segment ferroviaires utilisés par notre amie +SNCF en effectuant des relevés GPS pour placer les trains très précisément sur +la carte. Il suffit, pour ça : + + * de vérifier que votre ligne est couverte par raildar.fr en observant la + carte, et de me demander si ce n’est pas le cas + * au moment de monter dans le train, d’autoriser le site à vous géolocaliser + et d’activer le GPS dans votre smartphone + * de cliquer sur « play » en haut à gauche, de sélectionner votre gare puis + votre train + * de profiter du paysage en laissant votre smartphone allumé et sur le site + * d’avoir une batterie bien pleine ou une alimentation externe si vous avez + un long trajet + * de me jeter un petit mail une fois arrivé, que j’aille voir ce que donne + votre trace GPS pour la valider + * vous pouvez aussi utiliser votre soft GPS favori et m’envoyer une trace au + format GPX + +Si vous êtes développeur iphone ou android et que porter raildar.fr sur ces +plateformes vous botte, faites moi signe ! :) + +Mise à jour du 9 décembre 2013 + +Encore quelques bricoles : + + * Quelques correction de bug sur le point indiquant votre position + * Stockage de l’altitude, de la vitesse et de la direction lors de + l’acquisition GPS si le terminal le supporte + * Une carte des gares en base, avec les coordonnées corrigées par mes soins + et ceux de madame (oui, la base « opendata » de gares SNCF a des + coordonnées moisies pour pas loin de 80 gares, ou alors n’utilise pas les + référentiels communs). Visible ici[6]. + * Une carte des traces GPS validée en base. Visible ici[7]. (attention, il + vaut mieux avoir un CPU bien accroché) + * Un petit service web pour vous permettre d’entrer vos gares préférées et + d’avoir tout de suite l’info sur les prochains trains et leurs retards. + C’est ici[8]. C’est surtout fait pour les mobiles. Le navigateur garde une + ID unique permettant de retrouver les gares, donc si vous changez + d’ordinateur ou de smartphone, il faut les réindiquer. + +Mise à jour du 13 décembre 2013 + +Je continue doucement, en explorant pas mal de pistes : + + * J’ai joué un peu avec phantomJS, un outil qui permet en gros de créer un + navigateur virtuel et prendre des screenshot de site web de façon + automatique et ultra simple. Je doutais très fortement qu’il sache gérer la + cohorte de javascript de raildar, mais il se démerde très bien, et du coup, + chaque soir, une vidéo de la journée est dispo dans + http://www.raildar.fr/videos/date-du-jour.mp4, par exemple, pour la grève + d’hier, http://www.raildar.fr/videos/2013-12-12.mp4[9] + * Un illuminé comme moi a démarré le développement d’une appli android qui se + base sur mes API pour faire en gros la même chose que le site web. Longue + vie ! + * J’ai commencé à réécrire l’ensemble du code server-side pour utiliser le + framework Mojolicious et, enfin, développer comme les djeunz avec un fw, un + dépôt git et compagnie. + * J’ai entamé aussi un widget permettant de selectionner la visualisation + partielle des trains (genre tous les supprimés, tous les en retard, …) et + je vais profiter de la réécriture pour ne charger que les trains + correspondant au zoom utilisé sur le navigateur de l’utilisateur et activer + les fonctions de tracking d’un train en dehors du mode « play » + * Toujours au chapitre réecriture, c’est aussi l’occasion de rendre l’engin + modulaire pour y brancher de nouvelles sources de données. L’équipe + opendata de Toulouse m’a fourni une clé d’API pour le réseau Tisséo, ce + sera donc le premier a gouter du raildar après la SNCF + * Last but not least, la waybackmachine est utilisable, par exemple avec + http://www.raildar.fr/?date=1386867785[10]. Le premier chargement d’un + timestamp est un peu long, mais après, ça va tout seul. Notez que je dis + wayback, mais ça marche aussi dans le futur, pour l’instant uniquement avec + le lendemain. Pour bouger dans le temps, entrer un nouveau timestamp dans + l’URL ou bien cliquez sur les boutons « +2 / -2″ sur le coté. Si à cette + occasion vous trouvez des trains qui bougent trop vite pour être réels, + vous avez probablement trouvé une gare mal placée, je suis preneur du + numéro du train et du timestamp utilisé. + +Bon weekend les enfants ! + +Mise à jour du 16 décembre 2013 + +J’ai passé un bon bout du weekend à recoder les fonctions principales de +raildar pour utiliser un joli framework perl (Mojolicious) et me simplifier la +vie et les développements futurs. Rien de changé coté interface utilisateur, +mais un code plus light et plus rapide coté serveur. + +Du coup, j’ai changé la moulinette d’acquisition des trains pour tous les +récupérer, d’ou une nette augmentation du peuplement de la carte. + +Au chapitre nouveautés également : + + * Un graph du trafic dispo ici[11] et en bas à droite de l’interface avec un + joli bug de positionnement du popup + * Une API pour trouver des gares en fonction de la latitude et de la + longitude d’un point donné : + http://www.raildar.fr/xml/gares?lat=45.888&lng=4.8041&dist=20&limit=10 + (avec latitude, longitude, distance max depuis ce point et nombre + d’éléments retournés) + * Une déclinaison de cette même API qui permet d’avoir toutes les gares (si + on ne spécifie aucun argument) et les gares contenant une chaîne avec + ?search=chaine + * Une API pour trouver les prochains trains dans une gare donnée : + http://www.raildar.fr/xml/next_missions?id_gare=1747&time_dist=450 (avec + id_gare retourné par l’API précédente et time_dist le nombre de minutes) + * Une API pour avoir le détail d’un train : + http://www.raildar.fr/xml/get_mission?id_mission=40926 (avec id_mission + retourné par l’API précédente) + +Have fnu ! + +Mise à jour du 21 décembre 2013 + +Quelqu’un m’a envoyé une belle trace GPS d’un parcours de TGV mais je ne gérais +pas les TGV. Qu’à cela ne tienne, je me suis creusé un peu la tête. La +problématique pour les TGV est de connaitre les numéros de trains. +Contrairement aux TER & Intercités, on ne les trouve pas dans les API opendata +SNCF. J’ai pris le parti de me baser sur ce qu’annonce le site +Gares-En-Mouvement, soit le tableau des prochains trains dans chaque gares + +J’ai donc écris un nouveau parser qui vire les TER, Car et autres idioties de +ces tableaux et ne garde que ce qui m’intéresse, c’est à dire tout le reste : +TGV, idTGV, Lyria, Thalys, Eurostar, etc. Je vais laisser tourner cette +moulinette une petite semaine le temps de récupérer tous les numéros de trains. + +Ensuite, je retourne voir mon copain infoligne avec ces numéros pour lui +demander si le train est prévu en circulation demain, et le reste suit le même +parcours technique que pour les autres trains. + +Reste un tout petit bémol : infolignes ne donne pas les infos sur les +circulation des Eurostar. Si quelqu’un a une source, je suis preneur :) + +Bon weekend et noyeux zoël ! + +Raildar, la suite + +Je ne peux plus continuer à mettre des updates ici. Vous êtes donc cordialement +invités à vous rendre sur le wiki du projet[12] si vous voulez suivre ! :) + +Liens: +[1]: http://blog.spyou.org/wordpress-mu/files/2013/11/20131129_213814-e1385769933774.jpg (lien) +[2]: http://blog.spyou.org/wordpress-mu/files/2013/11/20131129_213814-e1385769933774-300x225.jpg (image) +[3]: http://www.abavala.com/ (lien) +[4]: http://www.raildar.fr/ (lien) +[5]: http://wiki.raildar.fr/index.php/API (lien) +[6]: http://www.raildar.fr/static/show_gares.html (lien) +[7]: http://www.raildar.fr/static/show_paths.html (lien) +[8]: http://www.raildar.fr/me/ (lien) +[9]: http://www.raildar.fr/videos/2013-12-12.mp4 (lien) +[10]: http://www.raildar.fr/?date=1386867785 (lien) +[11]: http://www.raildar.fr/tools/rrd_circulation (lien) +[12]: http://wiki.raildar.fr/ (lien) -- cgit v1.2.1