AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 CBNA_PHPBB_Analysis

Aller en bas 
+3
Asu
onilink_
arthuro
7 participants
Aller à la page : Précédent  1, 2
AuteurMessage
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 4 Aoû 2016 - 0:44

Haha, grace à ce projet. Nous sommes parvenu à importer le forum dans le nouveau :
Voir ce message : https://cbna.forumactif.com/t13178p81-le-nouveau-cbna#358570

_________________
CBNA_PHPBB_Analysis - Page 2 PochetteCBNA_PHPBB_Analysis - Page 2 Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 4 Aoû 2016 - 9:41

Nice, maintenant tu fais de l'espionnage industriel chez google et on fait un algo qui assigne les tags automatiquement a un topic en fonction de son contenu. awesome

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyMar 9 Aoû 2016 - 23:26

Première version de mon parseur de bbcode qui produit un AST du bbcode afin de le rendre ensuite aisément transformable en markdown avec un variant visitor :

Code:

#include <iostream>

#include <string>

#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/fusion/include/std_tuple.hpp>

#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/qi_grammar.hpp>

#include <boost/spirit/include/phoenix.hpp>

#include <boost/variant.hpp>
#include <boost/optional.hpp>

#include <pre/json/to_json.hpp>


namespace cbna { namespace bbcode {

  enum class node_t {
    NONE,
    BOLD,
    ITALIC,
    UNDERLINE,
    STRIKE,

    LEFT,
    RIGHT,
    CENTER,

    HR,

    QUOTE,
    SPOILER,

    IMG,
    URL,

    LIST,
  };

  enum class list_t {
    BULLETS = 0,
    ORDERED = 1
  };

  /**
   * Represents a bbcode node which may contain further bbcode
   */
  struct bbcode;

  /**
   * Represents a bbcode node which may contain further bbcode
   * and has an attribute information, like quoted message author.
   */
  struct bbcode_with_attribute;

  /**
   * Represents a bbcode listing
   */
  struct list;

  /**
   * HR node
   */
  struct hr_node {};

  using dimension_t = std::tuple<size_t, size_t>;

  struct img_node {
    node_t type{node_t::IMG};
    boost::optional<dimension_t> dimension;
    std::string url;
  };

  struct url_node {
    std::string url;
  };

  using bbcode_node =  
    boost::variant<
        boost::recursive_wrapper<bbcode>
      , boost::recursive_wrapper<bbcode_with_attribute>
      , boost::recursive_wrapper<list>
      , std::string
      , hr_node
      , img_node
      , url_node
    >;

  struct bbcode {
    node_t type{};
    std::vector<bbcode_node> entries{};
  };

  struct bbcode_with_attribute : public bbcode {
    boost::optional<std::string> attribute{};
  };

  struct list : public bbcode {
    list_t list_style{};
  };


}}

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::hr_node)

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::img_node,
  type,
  dimension,
  url
)

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::url_node,
  url
)

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::bbcode,
  type,
  entries
);

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::bbcode_with_attribute,
  type,
  attribute,
  entries
);

BOOST_FUSION_ADAPT_STRUCT(cbna::bbcode::list,
  type,
  list_style,
  entries
);

namespace cbna { namespace bbcode {

  namespace qi = boost::spirit::qi;
  namespace phx = boost::phoenix;

  template<class Iterator>
  struct bbcode_grammar : public qi::grammar<Iterator, bbcode()> {

    bbcode_grammar() : bbcode_grammar::base_type(bbcodes)  {
      using qi::lit;
      using qi::char_;
      using qi::int_;
      using qi::_val;
      using qi::_1;
      using qi::eps;
      using qi::as_string;
      using qi::attr;
      using qi::hold;

      bbcodes = attr(node_t::NONE) >> +(possible_bbcodes[phx::push_back(phx::at_c<1>(_val), _1)]);

      possible_bbcodes =
        (  
            bold
          | italic
          | underline
          | strike

          | left
          | right
          | center

          | hr

          | quote
          | spoiler

          | img
          | url

          | list_
        )
        ;


      entry = possible_bbcodes | non_formatted;

      non_formatted = attr(node_t::NONE)        >> as_string[+(char_ - '[')];

      bold =          attr(node_t::BOLD)        >> "[b]" >> *entry >> "[/b]";
      italic =        attr(node_t::ITALIC)      >> "[i]" >> *entry >> "[/i]";
      underline =     attr(node_t::UNDERLINE)   >> "[u]" >> *entry >> "[/u]";
      strike =        attr(node_t::STRIKE)      >> "[strike]" >> *entry >> "[/strike]";

      left =          attr(node_t::LEFT)        >> "[left]" >> *entry >> "[/left]";
      right =         attr(node_t::RIGHT)       >> "[right]" >> *entry >> "[/right]";
      center =        attr(node_t::CENTER)      >> "[center]" >> *entry >> "[/center]";

      hr =            lit("[hr]")[_val = phx::construct<hr_node>()];

      quote =         attr(node_t::QUOTE)       >> "[quote" >> -("=" >> quoted_text) >> "]" >> *entry >> "[/quote]";
      spoiler =       attr(node_t::SPOILER)     >> "[spoiler" >> -("=" >> quoted_text) >> "]" >> *entry >> "[/spoiler]";

      img =           attr(node_t::IMG)         >> "[img" >> -dimension >> "]" >> as_string[+(char_ - '[')] >> "[/img]";
      dimension = "(" >> int_ >> "px," >> int_ >> "px)";
      url =           attr(node_t::URL)         >> "[url="
            >> as_string[+(char_ - ']')][phx::bind(&url_node::url, _val) = _1] >> "][/url]";

      list_ =         attr(node_t::LIST)     >> "[list" >> list_style >> "]" >> +list_entry >> "[/list]";
      list_style =    ("=" >> int_(1)[_val = list_t::ORDERED] ) | eps[_val = list_t::BULLETS];
      list_entry =    "[*]" >> entry[_val = _1];

      quoted_text = '"' >> *(char_ - '"') >> '"';        
    }

    qi::rule<Iterator, bbcode()> bbcodes;
      qi::rule<Iterator, bbcode_node()> possible_bbcodes;
      qi::rule<Iterator, bbcode_node()> entry;

    qi::rule<Iterator, bbcode()> non_formatted;

    qi::rule<Iterator, bbcode()> bold;
    qi::rule<Iterator, bbcode()> italic;
    qi::rule<Iterator, bbcode()> underline;
    qi::rule<Iterator, bbcode()> strike;

    qi::rule<Iterator, bbcode()> left;
    qi::rule<Iterator, bbcode()> right;
    qi::rule<Iterator, bbcode()> center;

    qi::rule<Iterator, hr_node()> hr;


    qi::rule<Iterator, bbcode_with_attribute()> quote;
    qi::rule<Iterator, bbcode_with_attribute()> spoiler;

    qi::rule<Iterator, img_node()> img;
    qi::rule<Iterator, dimension_t()> dimension;

    qi::rule<Iterator, url_node()> url;

    qi::rule<Iterator, list()> list_;
      qi::rule<Iterator, list_t()> list_style;
      qi::rule<Iterator, bbcode_node()> list_entry;


    qi::rule<Iterator, std::string()> quoted_text;
  };

}}

int main(int argc, char** argv) {

  std::string storage = argv[1];

  typedef cbna::bbcode::bbcode_grammar<std::string::const_iterator> grammar;
  grammar g; // Our grammar
  cbna::bbcode::bbcode ast; // Our tree

  using boost::spirit::ascii::space;
  std::string::const_iterator iter = storage.begin();
  std::string::const_iterator end = storage.end();
  bool r = phrase_parse(iter, end, g, space, ast);

  if (r && iter == end) {
      std::cout << "-------------------------\n";
      std::cout << "Parsing succeeded\n";
      std::cout << "-------------------------\n";

      
      std::cout << pre::json::to_json(ast).dump(4) << std::endl;

      return 0;
  } else {
      std::string::const_iterator some = iter+30;
      std::string context(iter, (some>end)?end:some);
      std::cout << "-------------------------\n";
      std::cout << "Parsing failed\n";
      std::cout << "stopped at: ": " << context << "..."\n";
      std::cout << "-------------------------\n";
      return 1;
  }

  return 0;
}



Il ne supporte pas encore tout bien entendu, mais je devrai avoir terminé demain et pouvoir faire la transformation vers markdown dans la foulée.

Parser le html serait beaucoup plus compliqué à mon sens, malgré l'aide de gumbo, les structures html générées sont loin de ce qu'on pourrait attendre provenant de la source bbcode. Sans compter le fait que parser le html est beaucoup moins résistant en cas de forumactif upgrade.

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 0:09

Je vois que tu possède ton diplôme de magie noire! Excellent.
En tous cas, ça vaut le coup d’œil.

J'avais jamais vu un exemple d'utilisation de Boost::Spirit. C'est fou.

Je vois aussi que tes templates qui transforment automatiquement n'importe quels objets C++ en json fonctionne aussi. Bonne nouvelle!

J'ai quelques doutes sur le faits de télécharger chaque messages en BBCode individuellement plutôt que de télécharger les pages du forum et transformer l'HTML. Mais bon, maintenant que tu as fais l'outil, on va voir ce que ça donne. Wink

Je me demandais, j'ai vu que pour de prochaines versions de C++, ils planchent sur comment donner la capacité au langage de faire de la "static réflection". Peut-être qu'on pourra utiliser la fonction to_json() sans avoir à déclarer les attributs avec BOOST_FUSION_ADAPT_STRUCT.

_________________
CBNA_PHPBB_Analysis - Page 2 PochetteCBNA_PHPBB_Analysis - Page 2 Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 9:50

Yep par contre malheureusement la réflexion est pas pour c++17.
Mais en attendant y a boost::hana (c++14 je crois) qui est assez badass (to/from_json est sûrement écrit avec hana d'ailleurs).

Avec hana suffit de déclarer sa structure comme ça:
Code:
struct Car {
    BOOST_HANA_DEFINE_STRUCT(Car,
        (std::string, brand),
        (std::string, model)
    );
};

Et la réflexion deviens accessible.

Et joli templates @daminetreg Very Happy
J'ai jamais pu tâter de boost.spirit, étant donné qu'un code de base met 10 sec a compiler chez moi ._.
Un jour j'aurais un vrai pc. mrgreen2

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 9:54

Citation :
Je vois que tu possède ton diplôme de magie noire! Excellent.
En tous cas, ça vaut le coup d’œil.

J'avais jamais vu un exemple d'utilisation de Boost::Spirit. C'est fou.
C'est vraiment une très bonne librarie, je l'utilise énormément et mes collègues également. Si tu devais l'apprendre, je te conseillerai de regarder la nouvelle version x3, moi je ne la connais pas car je suis trop habitué à qi.

L'avantage c'est vraiment d'avoir la grammaire directement dans le code.

Citation :
J'ai quelques doutes sur le faits de télécharger chaque messages en BBCode individuellement plutôt que de télécharger les pages du forum et transformer l'HTML. Mais bon, maintenant que tu as fais l'outil, on va voir ce que ça donne
Si vraiment c'est trop lent on pourra toujours essayer de transformer l'html, mais je pense que vu que l'import peut-être fait de manière incrémental, cela ne posera pas de soucis, passé l'import initial.

Citation :
Je me demandais, j'ai vu que pour de prochaines versions de C++, ils planchent sur comment donner la capacité au langage de faire de la "static réflection". Peut-être qu'on pourra utiliser la fonction to_json() sans avoir à déclarer les attributs avec BOOST_FUSION_ADAPT_STRUCT.
Oui j'ai eu accès au drafts assez tôt vu que je suis maintainer de BOOST_FUSION_ADAPT_STRUCT, il existe déjà une implementation clang et gcc dans des branches, je n'ai pas encore eu le temps, mais l'idée serait de faire une intégration des données des reflexion générées par le compilateur avec les traits de Boost.Fusion, de sorte à ce que tout les codes fonctionnant actuellement avec Boost.Fusion fonctionnent sans le ADAPT_STRUCT dans le prochain standard de C++. Cependant malheureusement je ne pense pas que cela sera avant C++21.

Mais je peux me tromper, il y a déjà eu des surprises.

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 9:58

Sauf que Boost.Hana pour le moment ne marche que sur des versions pre-release de clang et gcc et msvc est à oublier.

Code:

struct Car {
    BOOST_HANA_DEFINE_STRUCT(Car,
        (std::string, brand),
        (std::string, model)
    );
};

Avec Boost.Fusion tu peux faire quasiment  la même chose :
Code:

    BOOST_FUSION_DEFINE_STRUCT(Car,
        (std::string, brand)
        (std::string, model)
    );

Et sinon ADAPT comme dans mon code. Boost.Hana est un concurrent de Fusion et MPL, je connais bien le GSoC lead du projet : Joël Falcou. Sur le long terme cela devrait pouvoir remplacer Boost.Fusion, mais on en est encore loin, justement du fait de l'intégration dans spirit etc.

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 10:13

onilink_ a écrit:
Yep par contre malheureusement la réflexion est pas pour c++17.
Mais en attendant y a boost::hana (c++14 je crois) qui est assez badass (to/from_json est sûrement écrit avec hana d'ailleurs).
Non avec Fusion qui est l'ancêtre d'Hana Smile Qui d'ailleurs fonctionne sur tout les compilos même C++98 et est là depuis plus de 15 ans Very Happy Hana n'est qu'une réécriture de Fusion de manière C++ modern, basée sur un crazy trick qui utilisent les generics Lambdas à fond. Mais à terme je pense que cela sera meilleur que Fusion, dans la mesure où cela compile plus rapidement parce que Louis Dionne travaille énormément sur les temps de compilation.

http://daminetreg.github.io/lib-cpp-pre/html/namespacepre_1_1json.html#a4325d2cdd64a7e321303fd4428f298b9
https://github.com/daminetreg/lib-cpp-pre/blob/master/pre/json/detail/jsonizer.hpp#L63

onilink_ a écrit:

Et joli templates @daminetreg Very Happy
J'ai jamais pu tâter de boost.spirit, étant donné qu'un code de base met 10 sec a compiler chez moi ._.
Un jour j'aurais un vrai pc. mrgreen2
Hmmm... C'est long en effet, du coup tu t'interdis le templating ?

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 10:24

Faudra que je teste fusion plus en profondeur, je l'avais utilisé un peu à un moment ou j'en avais eu besoin mais j'ai pas trop poussé le truc, comme j'ai pas trop poussé boost en général.

Sinon je ne m'interdis pas l'utilisation de templates sinon je serais un peu dans la mouise, je fais juste gaffe aux temps de compile que ça ajoute (donc j'évite un peu boost).
Mon gestionnaire d'instances est full templates par exemple, et ça a ajouté ~30 secondes de compilation a centauri, mais comme il prenait déjà ~5minutes a compiler c'était acceptable vu ce que ça me faisait gagner a coté.
De toute façon dans un jeu c'est pas comme si on avait souvent besoin d'outils comme boost.spirit Very Happy

N’empêche que le jour ou j'aurais 4 cores au lieu de 2, et un cpu qu'a pas 10 ans, ça va me faire du bien x)

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 10:32

oki Smile Boost est donc vu comme un ralentisseur de compilation, mince ! rouge gnii

J'utilise beaucoup templight, cela permet de visualiser avec KCacheGrind qu'est-ce qui prends du temps dans un template metaprogram / ou de la mémoire à compiler. Souvent c'est un gros truc qu'on peut facilement remplacer.




_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 10:39

Bah dans le monde du jeu video oui.
J'ai vu une conférence d'ubisoft montreal, eux sont carrément stricts, interdit d'utiliser une quelconque lib de boost, malgrès le fait que certaines n'utilisent quasiment pas de templates...

daminetreg a écrit:
Oui j'ai eu accès au drafts assez tôt vu que je suis maintainer de BOOST_FUSION_ADAPT_STRUCT
Surprised J'avais pas vu ça, c'est la classe!

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 11:04

J'ai un bon ami qui travaille chez Ubisoft Montreal justement, et il était un grand fan de Boost, Template mais aussi de Python. Et il m'a dit justement qu'heureusement qu'il aime le python parce qu'il programme plus en python qu'en C++ là bas. D'autant que justement ils se limitent à un subset de C++ très ancien.

EA a même sa propre STL qui n'est pas API compatible pour des raisons d'optimisations / portabilités sur les horribles compilos des consoles. https://github.com/electronicarts/EASTL

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 11:20

Ahah ouai Ubi parlaient aussi de leurs conteneurs faits maison, mais ils utilisent quand même <algorithm>, comme quoi la lib standard est toujours pratique même quand on fait les choses a sa façon.

En tout cas c'est assez flippant le domaine pro du jv, tout est basé sur de vielles technos, et effectivement les compilos pour consoles y sont pas pour rien :s
Je me limite moi même à C++11 pour pas avoir de surprises si un jour je venais a faire un port ps4/one...

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 13:39

C++11 c'est pour le coup très récent happy1 C'est le standard sur lequel on est au boulot. C++14 est juste un petit incrément de 11, on y passera bientôt.
Mais de toutes façons tous ces compilos nuls vont disparaître / sont en train de disparaître du fait de la facilité d'intégrer clang comme compilo pour sa plateforme.

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 11 Aoû 2016 - 14:48

Yep, vivent Clang et LLVM \o/

D'ailleurs y en a qui ont déjà utilisé la libclang pour analyser/bidouiller du C++? Ça a l'air vachement ouf ce truc!

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyDim 14 Aoû 2016 - 13:45

onilink_ a écrit:
D'ailleurs y en a qui ont déjà utilisé la libclang pour analyser/bidouiller du C++? Ça a l'air vachement ouf ce truc!
L'API de libclang est très naturelle en fait, tu créé un .so que tu charges avec clang et tu as accès avec de belles classes à toute la représentation du code, tu peux itérer sur ce que tu veux.

C'est vachement simple, le temps d'attente pour démarrer c'est compiler le tout, sur mon core i7 32GB de RAM + SSD pour compiler llvm + clang il me faut quand même bien 7minutes.

Au meetingcpp ya beaucoup de monde qui jouent avec libclang, et ya des trucs géniaux du genre de metashell : https://metashell.readthedocs.io/en/latest/, YouCompleteMe pour Vim, clang-tidy, http://clang.llvm.org/extra/clang-tidy/...

En une demi journée tu peux facilement extraire les éléments qui t'interesse d'un code C++. Ou rajouter des attributs spéciaux, mais bon après ton code devient dépendant de ton tool qu'il te faut aussi maintenir alors c'est un peu dangereux.

Off-topic: A quand la version iOS de Planet Centauri ?

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyDim 14 Aoû 2016 - 15:13

Ouai y a plein de projets très intéressants a base de libclang, j'ai aussi vu des trucs super cool avec llvm et clang pour faire du C++ jited comme metashell.
Vivement des IDE qui gèrent le hot reload sans avoir a faire mille bidouilles Very Happy
J'avais vu un truc sympa mais c'était close source et avec une licence chelou... Du coup wait & see.

Sinon pour centauri sur smartphone, peut être jamais, peut être un jour. Tout dépendra de l'argent qu'on gagne.
Le soucis du portage étant pas spécialement technique au niveau du moteur, mais plus lié au gamedesign et gameplay qui est difficile a passer sur du tactile (déjà pour que ce soit jouable a la manette on va bien galérer).

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyVen 19 Aoû 2016 - 13:45

onilink_ a écrit:
Ouai y a plein de projets très intéressants a base de libclang, j'ai aussi vu des trucs super cool avec llvm et clang pour faire du C++ jited comme metashell.
Vivement des IDE qui gèrent le hot reload sans avoir a faire mille bidouilles Very Happy
J'avais vu un truc sympa mais c'était close source et avec une licence chelou... Du coup wait & see.
Beaucoup parlent de ce projet, qui permet de changer les classes facilement avec un plugin vs sans relancer l'app : http://runtimecompiledcplusplus.blogspot.ch/

onilink_ a écrit:
Sinon pour centauri sur smartphone, peut être jamais, peut être un jour. Tout dépendra de l'argent qu'on gagne.
Le soucis du portage étant pas spécialement technique au niveau du moteur, mais plus lié au gamedesign et gameplay qui est difficile a passer sur du tactile (déjà pour que ce soit jouable a la manette on va bien galérer).
Oki, je demandais parce que j'imagine que ce serait rentable sur une plateforme comme ios pour le genre de graphismes. Mais je comprends que le gameplay soit difficile à passer sur du tactile. :/

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
CBNA_PHPBB_Analysis - Page 2 U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptySam 20 Aoû 2016 - 12:24

Rentable pas forcément, les app stores sont saturés et les jeux qui percent sont gratuits avec de l'achat in-app. Tout l'inverse du modèle de leur jeu qui reste commercialement "classique".

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyMer 19 Oct 2016 - 22:36

Je travaill sur le HTML -> Markdown.
En même pas 10 lignes de C++, c'est fait.

Je vais utilise ce message pour tester toutes les fonctionnalité des message sur le forum, pour ne rien oublier.

gras
italique
souligné
barré

grasitaliquesoulignébarré

Alignement gauche
Alignement centré
Alignement droite
Alignement justifié

  • list_1
  • list_2
  • list_3


  1. list_1
  2. list_2
  3. list_3



auteur a écrit:
citation
Code:
code
spoiler:

case 1_1case 1_2
case 2_1case 2_2
CBNA_PHPBB_Analysis - Page 2 Image-slider-2
lien vers image


H2

H3

H4

texte taille 10
texte taille 24
Rouge
Bleu
BaseIndice
BaseExposant
Défilement horizontal
Défilement vertical
[rand][/rand]
19.10.2016
22:36:06

_________________
CBNA_PHPBB_Analysis - Page 2 PochetteCBNA_PHPBB_Analysis - Page 2 Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyMer 19 Oct 2016 - 23:55

Le résultat :
http://test.lecbna.org:8080/#/forum/topic/8

**gras**
*italique*
souligné
~~barré~~

**gras***italique*souligné~~barré~~


Alignement gauche

Alignement centré

Alignement droite

Alignement justifié

* list_1
* list_2
* list_3


* list_1
* list_2
* list_3


---

auteur a écrit:
> citation

Code:
```
code
```
spoiler:
>! spoiler


case 1_1case 1_2case 2_1case 2_2![](http://www.menucool.com/slider/jsImgSlider/images/image-slider-2.jpg)
[lien vers image](http://www.menucool.com/slider/jsImgSlider/images/image-slider-2.jpg)
**Video:**
[![Youtube Video](http://img.youtube.com/vi/1wnE4vF9CQ4/0.jpg)](https://www.youtube.com/watch?v=1wnE4vF9CQ4)
**Video:**
[![Dailymotion Video](https://www.dailymotion.com/thumbnail/320x240/video/xu3xg)](http://dai.ly/xu3xg)
## H2
### H3
#### H4
texte taille 10
texte taille 24
Rouge
Bleu
BaseIndice
BaseExposant
Défilement horizontal
Défilement vertical
[rand][/rand]
19.10.2016
22:36:06

_________________
CBNA_PHPBB_Analysis - Page 2 PochetteCBNA_PHPBB_Analysis - Page 2 Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 20 Oct 2016 - 9:38

Html ou BBCode vers markdown?

GG en tout cas Very Happy

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyJeu 20 Oct 2016 - 21:06

HTML vers markdown.

Franchement, c'était presque trop facile, ayant déjà l'arbre HTML parsé, juste besoin de le parcourir.
https://github.com/ArthurSonzogni/CBNA_PHPBB_Analysis/blob/master/src/parse/HTMLToMarkdown.cpp

Je suis assez content de gumbo-parser (+gumbo-query) qui sont une librairie C sans dépendence et un wrapper C++ autour.
J'en parle car j'ai passez assez de temps à essayer la libXML ou d'autres, mais aucune n'arrivais à parser du XHTML (qui n'est pas du XML valide).

_________________
CBNA_PHPBB_Analysis - Page 2 PochetteCBNA_PHPBB_Analysis - Page 2 Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 EmptyVen 21 Oct 2016 - 14:02

Nice ça, ça m'étonnait juste car Dam voulait recup les messages un a un.

Niveau restructuration vous avez tenté sur quelques topics de projets un peu "complexes" dans la forme pour voir ce que ça donne?

_________________
CBNA_PHPBB_Analysis - Page 2 Runningpotato1CBNA_PHPBB_Analysis - Page 2 TvF6GED CBNA_PHPBB_Analysis - Page 2 MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





CBNA_PHPBB_Analysis - Page 2 Empty
MessageSujet: Re: CBNA_PHPBB_Analysis   CBNA_PHPBB_Analysis - Page 2 Empty

Revenir en haut Aller en bas
 
CBNA_PHPBB_Analysis
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Informations :: Projets communs-
Sauter vers: