Journal horaires SNCF sous linux

Posté par  (site web personnel) .
Étiquettes : aucune
0
23
oct.
2007
Je suis en train d'écire une version open source de RIHO, le logiciel des horaires des trains de la SNCF (actuellement uniquement disponible sous windows et mac osx).

Ce logiciel, "horails" (merci à https://linuxfr.org/~termitor/ pour le nom), utilise pour le moment les mêmes fichiers que RIHO (ceux où sont sauvegardé les horaires de tous les trains). Il est actuellement ecrit en C++ et l'interface, très sommaire, utilse GTK.
Il y a encore quelques bugs "connus" (les périodes de circulations, les transitions sur Paris...), mais qui ne saurait durer, grâce à la communauté open source :)

L'aide de quiconque est bienvue :)

Page principale: http://horails.arthy.org/
Sourceforge: http://sourceforge.net/projects/horails
Forum: http://horails.arthy.org/forum/
  • # je trouve pas le lien

    Posté par  . Évalué à 1.

    on télécharge à quel endroit le tar.gz ? parce que j'ai bien compris qu'il fallait faire un make mais sur quoi ? :o)
  • # De quelle aide as-tu besoin ?

    Posté par  . Évalué à 5.

    Salut,

    Tu cherches quel type d'aide ? (Je teste le programme ce soir même)
    • [^] # Re: De quelle aide as-tu besoin ?

      Posté par  (site web personnel) . Évalué à 5.

      À vrai dire, je me débrouille pas trop bien en interface graphique :) (tu le remarqueras...)

      Sinon, il y a des trucs que j'ai pas trop compris dans la base de donnée de RIHO (de l'information qui doit bien servir à quelque chose...)..

      Enfin, si quelqu'un à une idée géniale pour un algorithme de recherche de plus court chemin :). Pour le moment, j'ai une sorte de Dijsktra modifié, avec un ordre partiel sur les scores (en gros, il garde tous les chemins possibles qui ne sont pas "moins bons" qu'un autre chemin deja connu). Après, tout est dans ce qu'on entend par "moins bon"...
      • [^] # Re: De quelle aide as-tu besoin ?

        Posté par  . Évalué à 3.

        Je vais jeter un coup d'½il au code dans la soirée.

        Niveau interface graphiques j'ai seulement fait du Qt4 et du Swing (malgré mon aversion pour Qt, j'ai bien aimé l'API et le code dans l'ensemble); je regarderait gtk pour voir à quoi ça ressemble.

        Pour ce qui est de Dijsktra, ça m'intéresse d'en savoir un peu plus (je suis en tout début de thèse en informatique/recherche opérationnelle).
        • [^] # Re: De quelle aide as-tu besoin ?

          Posté par  (site web personnel) . Évalué à 5.

          Bon, regarde pas trop en détails, il y a des trucs pas très jolis (je fais un melange de C et C++dans tous les coins). Pour l'interface graphique, j'ai utilisé gtk sans réel argument.

          Pour dijsktra, c'est du "fait maison". En fait avec Disjktra, tu visites une et une seule fois chaque noeud. Le problème c'est qu'avec ca, il te sort qu'un chemin qui minimise "quelquechose", qur lequel on a un ordre total (par exemple, minimiser le temps d'arrivé, le temps de parcours, le nombre de correspondances). Maintenant, si tu mets un ordre partiel, et que tu t'assures qu'il n'y aura jamais trop d'elements minimums, tu peux faire un peu pres la meme chose.

          Après, il est possible d'améliorer en pratique le rercherche. Avec disjktra, on a grosso modo du linéaire. Mais quand il y a beaucoup de trains et de gares, ca prend quelque secondes. On peut utiliser des "heuristiques" à la A* pour deviner plus rapidement quel chemin va le mieux marcher, et abandoner le plus tot possible les chemins qui partent pas dans la meme direction.

          (J'ai fait une these en algo de graphes :) )
  • # facile

    Posté par  . Évalué à 9.

    bof...
    ça ne va pas te prendre bien longtemps à pondre un soft pareil :

    #include <stdio.h>
    void main(void)
    {
     int train, h, m;
     char horaire[1000]={"0H12", "0H27", ..... , "23H56", "23H59"};
     for (train=0;train<=999;train++)
      for (h=0;h<24;h++)
       for (m=0;h<60;m++)
        if (horaire[train]==sprintf("%dH%d",h,m))
         printf("Train numéro %d à %dH%d : annulé\n", train, h, m);
    }
    • [^] # Re: facile

      Posté par  (site web personnel) . Évalué à 3.

      Les comparaisons de chaines de caractères avec ==, ca ne va pas marcher.
      • [^] # Re: facile

        Posté par  . Évalué à 5.

        ca peut etre du <langage a moi> proche syntaxiquement du C.
        :P
        Voir il a fait son propre compilo (qui suis pas la norme) qui sais les faires sans problèmes.
        :P
    • [^] # Re: facile

      Posté par  (site web personnel) . Évalué à -1.

      Argggg un "void main()" /o\
    • [^] # Re: facile

      Posté par  . Évalué à -2.

      1/ je comprends pas
      char horaire[1000]={"0H12", "0H27", ..... , "23H56", "23H59"};

      2/ il y a une erreur dans la ligne "for (m=0;h<60;m++)"

      3/ l'indentation est à chier

      4/ Pourquoi tu utilises tes deux boucles? elles ne servent à rien.
  • # L'intérêt ?

    Posté par  (site web personnel) . Évalué à 3.

    Bonjour, quel est l'intérêt d'un tel logiciel par rapport à ratp.fr par exemple ? Consulter les horaires hors ligne ?
    • [^] # Re: L'intérêt ?

      Posté par  . Évalué à 4.

      As-tu déjà essayé www.voyages-sncf.com c'est une horreur pour trouver des trajets. Personnellement j'utilise diebahn.de, mais une interface plus rapide qui pose moins de questions inutiles serait également sympa
    • [^] # Re: L'intérêt ?

      Posté par  . Évalué à 1.

      Juste pour la beauté de trouver la solution la plus élégante à ce problème, c'est intéressant.
      • [^] # Re: L'intérêt ?

        Posté par  (site web personnel) . Évalué à 0.

        En quoi un logiciel à installer est une solution plus élégante qu'une appli web pour cela ? Tu n'y auras accès que sur le poste où c'est installé.
        • [^] # Re: L'intérêt ?

          Posté par  (site web personnel) . Évalué à 3.

          Au début j'ai pensé faire une appli web pour cela (d'ailleurs, j'ai toujours l'idée en tête...). Mais avant cela il faut quelque chose qui marche bien (liste des trains, algos...)

          De plus, on a pas toujours acces au web (par exemple, sur son portable dans le train). On peut aussi vouloir faire beaucoup d'accès à la base, sans à chaque fois passer par le site (ex: calculer le temps min entre une gare et le 'reste du monde')
        • [^] # Re: L'intérêt ?

          Posté par  . Évalué à 3.

          il parle de la solution au probleme du trajet optimum j'imagine...
  • # Et pour les mises à jour ?

    Posté par  . Évalué à 2.

    Je suppose que tu comptes mettre en place un moyen de télécharger la mise à jour des fichiers RIHO (ce sont eux qui contiennent les horaires,c 'est bien ça ?).
    Ces fichiers sont gracieusement mis à disposition ? Comment cela se passerait-il ?
    • [^] # Re: Et pour les mises à jour ?

      Posté par  (site web personnel) . Évalué à 1.

      Pour l'instant il faut prendre les fichiers directement depuis l'archive de riho.
      Dans le futur, on peut imaginer avoir notre propre liste de train sur un serveur, et que l'appli la mette à jour à chaque démarrage.
      • [^] # Re: Et pour les mises à jour ?

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        Pour info le soft officiel de la sncf permet une mise à jour en ligne de la base, MAIS c'est à partir d'une adresse qui semble réservée à l'intranet de la SNCF, et donc pas accessible à nous.

        Pour info, l'URL appelée est http://www.services.dsit.sncf.fr/horaires/majsncf/majhor.asp(...)

        Faudrait avant tout que la SNCF ait une politique d'ouverture, et ça c'est pas gagné.

        Michael, ça te dirais de documenter un peu tes investigations sur le format RIHO ? c'est très intéressant et on pourrait imaginer faire un site web qui donne les horaires, histoire de pas toujours devoir galérer sur voyages-sncf.com (probablement l'un des pires sites que je connaisse !).

        « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

        • [^] # Re: Et pour les mises à jour ?

          Posté par  (site web personnel) . Évalué à 1.

          Merci pour l'info. Mais c'est vrai que c'est pas gagné pour une mise à jour directe depuis la sncf...

          Mais bon, on peut imaginer que l'appli se connecte à bahn.de pour vérifier que les trains choisis n'ont pas étés modifiés, et dans le cas contraire, qu'elle mette à jour une base de donnée "ouverte" partagée...


          Je vais faire une petite doc, dès que j'ai le temps, sur ce que j'ai compris du format de fichier de RIHO.
          • [^] # Re: Et pour les mises à jour ?

            Posté par  . Évalué à 1.

            D'après les mentions légales qu'ils mettent sur leur site:


            Mentions légales: ce logiciel est distribué sur ce site sous licence SNCF à portée limitée dont voici les principaux extraits:

            << L'autorisation de téléchargement du logiciel RIHO est strictement limitée aux besoins personnels des internautes. Elle ne saurait être étendue aux titulaires d'autres sites internet ou éditeurs de logiciels, désireux d'en faire la commercialisation. >>
            <<Le téléchargement ne pourra se faire qu'à titre gratuit.>>
            <<La SNCF se réserve le droit de modifier à tout moment les informations contenues dans le logiciel RIHO qu'elle exploite personnellement, sans en informer au préalable le licencié et sans être tenu de communiquer à celui-ci les mises à jour engendrées par les modifications intervenues.>>

            - Aucune assistance n'est prévue pour cette application, en interne comme en externe. (© DSIT-EC/A3 - PBT) -


            Ce qui voudrait dire que si tu fait un site/soft gratuit, cela doit être possible...
            • [^] # Re: Et pour les mises à jour ?

              Posté par  (site web personnel) . Évalué à 2.

              Oui j'avais vu, mais je la trouve pas très clair leur licence... :)

              Dans tous les cas, même si on peut pas diffuser directement les fichiers, on peut toujours les faire chercher automatiquement.
        • [^] # Re: Et pour les mises à jour ?

          Posté par  (site web personnel) . Évalué à 2.

          Voila une première doc (incomplète) de ce que j'ai compris des fichiers de RIHO: http://horails.arthy.org/forum/viewtopic.php?t=9
  • # C++ / GTK ??

    Posté par  . Évalué à 2.

    Ruby on Rails aurait été bien plus judicieux.
    • [^] # Re: C++ / GTK ??

      Posté par  (site web personnel) . Évalué à 1.

      Je suis allergique aux langages interprétés. Et c'est pas ce qu'il y a de plus judicieux pour faire un Dijkstra rapidement :)
      • [^] # Re: C++ / GTK ??

        Posté par  . Évalué à 2.

        Je pense que c'était une blague.

        ­La faculté de citer est un substitut commode à l'intelligence -- Somerset Maugham

  • # Horaires SNCF

    Posté par  . Évalué à 1.

    Je ne connaissais pas RIHO, mais son équivalent sur Mac OS X : Horaires SNCF ( Site : http://www.jdguyot.com/sncf/ )

    J'ai un pote qui l'avais installé, ca marchais bien (je n'ai pas de Mac...) dommage qu'il ne soit pas open source...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.