Journal Qui fait des trucs "cools" en France et en Europe?

17
10
sept.
2015

Cher Journal,

J'ai l'impression qu'en France et en Europe, il y a sûrement des entreprises et des organisations qui font des trucs "cools", mais elles ne sont pas mises en avant.

Ce que j'appelle des trucs "cools", ce sont des projet orientés très programmation système (en C) ou programmation fonctionnelle (principalement OCaml, Haskell et Erlang. Mais ça peut aussi être C++14, Scala, Clojure, …) ou « big data », avec du R&D de préférence libre.

J'ai cherché, je n'ai presque rien trouvé…

Il y a cette annonce qui date maintenant, de Tetrane ils disent faire du C++11/14. Ça reste proprio de ce que j'ai compris.

OVH doivent avoir des projets « big data », mais ils ne communiquent pas trop dessus. Ils cherchaient des développeurs Erlang il y a un ou deux ans, je sais pas si ils font vraiment du développement Erlang, ou si c'est juste pour attirer. Maintenant ils cherchent des développeurs systèmes, mais quand on sait leur relation avec le logiciel libre…

Ou encore cette annonce, de Nexedi mais j'ai l'impression qu'ils ne cherchent que des stagiaires. Ils ont l'air investis dans le logiciel libre et développent une base de donnée distribuée (apparement). Mais ça reste python/javascript :( .

Après je suis pas sur que l'INRIA développe toujours sur OCaml. Est-ce qu'ils sont des projets en OCaml?

Et toi chère moule, est-ce que tu connais une ou plusieurs entreprises qui font des trucs "cools"? Peut-être que tu travailles pour une entreprise qui en fait?

Est-ce qu'ils recrutent?

  • # Ocaml

    Posté par (page perso) . Évalué à 8. Dernière modification le 10/09/15 à 07:08.

    Après je suis pas sur que l'INRIA développe toujours sur OCaml. Est-ce qu'ils sont des projets en OCaml?

    Si tu t'intéresses à OCaml il faut savoir que la communauté OCaml connaît depuis deux ans une sorte de printemps, notamment grâce à la publication de opam — un gestionnaire de paquets pour OCaml — qui permet très facilement de profiter du code des autres.

    OCaml est utilisé par plusieurs industries en France et dans le monde, le consortium compte notamment des poids lourds comme Dassault, Microsoft ou Bloomberg. OCaml est un langage très polyvalent, qu'on peut utiliser pour la modélisation des risques financiers (JaneStreet, Lexifi), les preuves formelles (Coq, utilisé en milieu industriel) ou la programmation système (je l'utilise pour mes travaux de DevOps). Sur ce dernier point tu peux jeter un coup d'œil à mon GitHub puisque mon employeur me permet de libérer une partie du code que nous utilisons. Ensuite, un petit tour sur la liste “awseome OCaml” sur GitHub, le reddit, ou la mailing list (uncoOol? mais non! ☺) devrait te convaincre que le langage se porte très bien et est plein de perspectives intéressantes.

    Je ne connais pas trop Haskell, mais je sais qu'il est utilisé par HSBC pour faire de la gestion de risque financier.

    • [^] # Re: Ocaml

      Posté par . Évalué à 7.

      On peut citer aussi la création de Ocaml Pro qui est une entreprise qui veut gérer les bugs au jour le jour et ne pas trop dépendre de l'INRIA qui doit faire de la recherche.

      "La première sécurité est la liberté"

      • [^] # Re: Ocaml

        Posté par (page perso) . Évalué à 3.

        Oui merci de réparer cet oubli, l'apport de OCamlPro est très important et très stimulant pour la communauté!

  • # OVH et Nexedi...

    Posté par . Évalué à 9.

    Alors OVH ne fait pas de R&D réelle, les projets big data c'est de l'intégration.
    Quant au Erlang dans les annonces, c'est juste parce que c'était à la mode, mais y'a aucun projet en Erlang en interne. C'est du Perl ou un pouillème de Go suite à du lobbying interne intense d'une poignée de personnes.

    Pour Nexedi, ils sont à fond dans Zope 2 en Python… On aime ou on déteste.

  • # Coïncidence

    Posté par (page perso) . Évalué à 2.

    C'est drôle, je viens tout récemment d'entendre parler de ces gens-là, qui font des gros systèmes distribués en se reposant sur la programmation fonctionnelle (surtout du Haskell et du OCaml, semble-t-il). Et le site, quoiqu'un peu vide, indique qu'ils recrutent…

  • # Le CERN

    Posté par . Évalué à 7.

    Il semble que le CERN utilise Ceph : http://fr.slideshare.net/Inktank_Ceph/scaling-ceph-at-cern
    Et vu que leur capacité de stockage est exprimée en Po, il y a probablement du big data…

    • [^] # Re: Le CERN

      Posté par . Évalué à 10.

      Le CERN fait des trucs de oufs. Parceque les peta-octets, c'est sur une fraction de seconde qu'ils débarquent, et c'est à 100m sous terre que ça se passe. Il y a des vrais challenges en termes de capture de ces données, de hardware, de software, de network, de stockage et de traitement de l'information.
      Et en plus des projets phares type LHC il y a plein de projets de recherche dans tous les domaines, y compris de l'informatique qui n'a rien à voir avec la physique des particules.

      • [^] # Re: Le CERN

        Posté par . Évalué à 5.

        En effet et je trouve doublement regrettable que de nombreux français considèrent ces recherches comme dangereuses ou pire, inutiles.

    • [^] # Re: Le CERN

      Posté par . Évalué à 2.

  • # Genymobile

    Posté par . Évalué à 3.

    Hello!

    Chez Genymobile, on fait des trucs cools sur Android, dont pas mal de dev système et on recrute sur Paris et Lyon !

    On développe notamment l'émulateur Android Genymotion, notre ROM custom Android, ainsi qu'une solution de déploiement sur Android.
    On a également pas mal de projets en mode service pour nos clients.

    N'hésite pas à consulter nos offres d'emploi !

  • # Internet Memory Research

    Posté par (page perso) . Évalué à 2.

    J'ai noté cette entreprise :

    http://internetmemory.net/fr/

    Ils utilisent du libre (forcement) mais n'ont pas l'air d'en produire :-/

    Sinon c'est du vrai Big Data pour une fois … extrait du site :

    2 PO de données extraites du Web

  • # boite cool

    Posté par . Évalué à 1.

    Sinon je citerais Free et Parrot, dans la liste des boites cools.

    "La première sécurité est la liberté"

  • # Des boîtes moins sexy aussi

    Posté par . Évalué à 2.

    Y'a aussi des grosses boîtes qui ont l'air moins sexy, mais, à partir d'une certaine taille on retrouve des projets de big data. D'ailleurs ces entreprises travaillent souvent avec des outils libres et il n'est pas rare de voir remonter leurs patchs upstream (mais c'est fait individuellement, pas au nom de la boîte…)

    Je pense aux opérateurs de téléphonie, aux banques, assurances, etc….
    J'avais d'ailleurs vu une prez' du département R&D d'Orange à propos de Ceph et une autre à propos de Cassandra dans une banque.

    Par contre concernant la programmation fonctionnelle…je sèche.

    • [^] # Re: Des boîtes moins sexy aussi

      Posté par . Évalué à 10. Dernière modification le 10/09/15 à 11:40.

      Franchement le "big data" sauf si tu es dans une boite avec une énorme culture et des vrais problèmes d'échelle (hint: ils sont vraiment vraiment pas nombreux) c'est juste du gros gros gros flambi. On est face à une génération d'incompétents qui ont 300 technos sur le CV mais qui ne connaissent rien dans quoi que ce soit dans quelque domaine que ce soit.

      Ça a l'air de plus en plus assumé, il n'y a qu'à voir dans quelle direction pousse databricks et le niveau autour.

      Et il n'y a qu'un conseil à donner: fuir.

      • [^] # Re: Des boîtes moins sexy aussi

        Posté par . Évalué à 10.

        Titre de l'image

      • [^] # Re: Des boîtes moins sexy aussi

        Posté par . Évalué à 2. Dernière modification le 10/09/15 à 18:00.

        Oui y'a des charlots partout, mais, c'est quoi des "vrais problèmes d'échelle" pour toi ?

        Dire que dans les secteurs que je cite ça n'est pas le cas, je trouve que c'est une vision naïve des choses. Quelques exemples qui me viennent à l'esprit:

        • Proposer à tes clients de pouvoir naviguer/chercher dans leur historique de transactions CB: on parle de combien de transactions/client/jour ?

        • Vérifier la fraude téléphonique en étudiant l'usage que tes clients font de leur forfait: on parle de combien de sms/appels par jour ?

        • Gérer un incident sur ton parc de plusieurs milliers de machines: quelle volume de logs systèmes ton parc crache-t-il ? (je ne parle même pas si tu souhaites faire de la corrélation avec des logs applicatifs)

        Je suis pas en train de dire que ces entreprises sont la pointe de la R&D dans ces domaines, et elles ont plein de défauts, mais c'est aussi leur taille qui leur impose de telles contraintes

        • [^] # Re: Des boîtes moins sexy aussi

          Posté par . Évalué à 10.

          Proposer à tes clients de pouvoir naviguer/chercher dans leur historique de transactions CB: on parle de combien de transactions/client/jour ?

          Ca dépend de la boîte. J'ai développé des systèmes de cash management pour les plus grosse boites, ça fait du volume avec des contraintes de perf fortes. Non tu n'auras pas de chiffres mais on a jamais appelé ça du big data.

          La nature des problèmes fait que c'est difficile à designer (la partie OLTP, la gestion de la cohérence inter-service, les besoins d'audit, le besoin de flexibilité, les vues OLAP pour le reporting etc.).

          En vrai, c'est beaucoup plus difficile que la plupart des projets big data qui tournerait sur l'historique…

          Vérifier la fraude téléphonique en étudiant l'usage que tes clients font de leur forfait: on parle de combien de sms/appels par jour ?

          Pour un pays comme la France ? En arrondissant à l'ordre de grandeur supérieur ? 65M * 100 => 6G entrées par jour. Y'a un peu de volume, mais franchement ça se traite bien sans trucs de fous loin de là.

          En ce moment je traite l'intégralité des hits HTTP français fait depuis un mobile, ça casse pas trois pas à un canard.

          Je suis pas en train de dire que ces entreprises sont la pointe de la R&D dans ces domaines, et elles ont plein de défauts, mais c'est aussi leur taille qui leur impose de telles contraintes

          Et s'inventent pleins de problèmes en voulant croire que leur problème est compliqué alors qu'un simple calcul au dos de l'enveloppe montre qu'ils n'utilisent même pas un cinquantième du hardware à disposition.

          Mon point est:

          • Le niveau d'incompétence dans le secteur est démentiel (non maitrise des principes de bases du Hello World alors tu imagines les résultats dans des systèmes distribués mêlant CS, réseau, système, hardware, programmation, environnements difficile à tester etc.). Tu récupères en permanence des tas de boue ou même le code le plus trivial est foiré. Le niveau régresse d'année en année avec l'arrivé des formations "data scientist" sur le marché ou en fait les mecs n'ont fait qu'un hello world sur les 30 technos à la mode, n'ont aucune connaissance techniques et aussi un niveau science très bas.
          • La plupart des problèmes sont moyennement intéressant à résoudre: le hardware est très efficace, les outils font grosso modo tout sans possibilité simple d'évolution, le business est simple.

          Tout ça ne veut pas dire qu'il n'y pas de besoin, mais ce n'est ni intrinsèquement excitant et qu'on a de gros risque de tomber sur du gros n'importe quoi. Faut juste le savoir avant de fantasmer sur le mot clé à la mode et les war stories de Google/Facebook/Linkedin :) Par contre si ça t'amuse de faire des POC bancals sur une nouvelle techno bancale tout les trois mois, y'à des centaines de boite prêtent à payer rubis sur l'ongle…

          • [^] # Re: Des boîtes moins sexy aussi

            Posté par . Évalué à 6.

            "En ce moment je traite l'intégralité des hits HTTP français fait depuis un mobile, ça casse pas trois pas à un canard. "

            Tu bosses dans les boites noires ? Ou est-ce qu'il y un point unique de passage de ce genre ?

            "La première sécurité est la liberté"

            • [^] # Re: Des boîtes moins sexy aussi

              Posté par . Évalué à 6.

              Les opérateurs mobiles fournissent les logs anonymisés de leur proxy http aux gens qui font de la mesure d'audience.

              Si tu combines ça à l'utilisation massive du WIFI, oui ça fait longtemps qu'il aurait été judicieux de tout basculer en TLS (et empêcher le MITM).

              • [^] # Re: Des boîtes moins sexy aussi

                Posté par . Évalué à 2.

                Je ne comprends pas le rapport entre tes 2 phrases. Ok, le traffic mobile est suffisamment faible pour analyser les hits en entier, mais quel rapport avec le wifi et les MiM?

                "La première sécurité est la liberté"

                • [^] # Re: Des boîtes moins sexy aussi

                  Posté par . Évalué à 2.

                  Tu commences à te connecter depuis n'importe où, avec n'importe qui peut collecter au milieu. C'est certes tout aussi vrai sur le fixe puisque ton ISP ou les routeurs pourraient très bien sniffer les en-tête HTTP et les revendre mais jamais entendu qu'ils le faisaient en pratique.

                  Pour le MITM, c'est juste que puisque les gros acteurs ont basculés sérieusement vers TLS, le nerf de la guerre va donc être de trouver comment mesurer du trafic chiffré.

              • [^] # Re: Desboîtesmoins sexy aussi

                Posté par (page perso) . Évalué à 2.

                Les opérateurs mobiles fournissent les logs anonymisés de leur proxy http aux gens qui font de la mesure d'audience.

                Des opérateurs non ?

                • [^] # Re: Desboîtesmoins sexy aussi

                  Posté par . Évalué à 2. Dernière modification le 11/09/15 à 17:35.

                  Oui. ~80% des part de marché (les gros quoi). Après peut-être que les autres ont d'autres deals…

      • [^] # Re: Des boîtes moins sexy aussi

        Posté par . Évalué à 6.

        On est face à une génération d'incompétents qui ont 300 technos sur le CV mais qui ne connaissent rien dans quoi que ce soit dans quelque domaine que ce soit.

        Et me lance pas sur les data scientist qui te vendent de la poudre verte qui t'augmente la conversion de 10 points.
        Et quand tu lances un a/b dessus, tu vois qu'en fait personne n'en a rien a faire de leur super ranking de la mort qui tue.

        Linuxfr, le portail francais du logiciel libre et du neo nazisme.

      • [^] # Re: Des boîtes moins sexy aussi

        Posté par . Évalué à 6.

        Franchement le "big data" sauf si tu es dans une boite avec une énorme culture et des vrais problèmes d'échelle (hint: ils sont vraiment vraiment pas nombreux) c'est juste du gros gros gros flambi.

        AMHA le big data ce n'est pas vraiment une question de volumétrie ou de techno, mais plus de méthodologie. C'est une manière de prendre en compte la données comme un élément centrale de ton système et d'utiliser des bonnes pratiques qui permettent de scaler sur la volumétrie. Le fait d'utiliser la techno X ou Y, ce n'est pas du big data, c'est de la techno X ou Y.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # news from Tetrane

    Posté par . Évalué à 10.

    Salut monde,

    je me permets de sortir de ma grotte, vu qu'on (Tetrane) est cité ici (mode fierté on ;) ).
    Oui l'annonce date un peu, je dois normalement en faire une nouvelle prochainement car on recrute 3 ingés R&D supplémentaires d'ici fin 2015, et encore d'autres en 2016 ; cf les fiches de postes sur le site (core, UI/XP, reverser) et le blog pour reste.

    Pourquoi je nous considère comme "faisant des trucs cools" :
    - on fait de la vraie R&D (pas un bout de proto sur un coin de table), et du vrai C++ (pas du C avec des classes)
    - on fait un produit super techno (fabriquer un CPU qui simule des CPU réels (intel core i7 par exemple) mais sous forme d'équations)
    - on fait un truc qui marche (notre CPU fait tourner des systèmes entiers : des Linux et Windows toutes versions confondues, devrait marcher avec des *bsd et autres, on a juste pas encore essayé)
    - on fait un truc qui se vend (principalement clients militaires worldwide, mais on filtre pour que ce soit des "gentils")
    Pour moi de la techno propre et utile, c'est cool car on se fait plez, on peut en être fier et en vivre. Après, chacun peut avoir sa définition de "trucs cools".
    Je me permets d'ajouter qu'en plus on est des gens cools et qu'on bosse dans un environnement cool (modulo ses propres définitions de "gens cool" et "environnement cool" qui sont plutôt subjectives ;p )

    • [^] # Re: news from Tetrane

      Posté par . Évalué à 10. Dernière modification le 10/09/15 à 13:47.

      C'est super ce que vous faites.

      Avez-vous entendu parler du projet Helium du MIT ?

      L'idée est de transformer du code binaire en représentation abstraite, l'optimiser, puis patcher au niveau binaire, sans recompilation et donc sans code source originel.
      Sur le binaire de IrfanView, utilisé comme test, la hausse de performance atteint 500%. Sur Photoshop, déjà très optimisé, environ 75%.

      http://news.mit.edu/2015/computer-program-fixes-old-code-faster-than-expert-engineers-0609
      https://groups.csail.mit.edu/commit/papers/2015/mendis-pldi15-helium.pdf

      La technologie nécessite le même type d'exécution symbolique du code assembleur que vous semblez proposer dans Axion et Impact. Comme la demande serait très forte pour un tel produit, l'idée pourrait vous intéresser.

      • [^] # Re: news from Tetrane

        Posté par . Évalué à 4.

        je connaissais pas Helium, c'est sympa comme application de la techno ! merci pour les liens on y a jeté un œil cet aprèm avec les ingés.
        mais je t'avoue que pour l'instant on a vraiment une todo-list débordante sur notre segment "reverse-engineering" et on commence à y faire notre trou. Donc le marché de l'optim ce sera sans doute pour plus tard pour nous.
        "Do 1 thing and do it well", qu'ils disent les ricains :)

    • [^] # Re: news from Tetrane

      Posté par . Évalué à 2.

      Les offres ont l’air sympas, mais j’imagine que ce n’est pas sur Bordeaux :-( je n’ai pas vu où était les postes proposés.

      • [^] # Re: news from Tetrane

        Posté par (page perso) . Évalué à 3.

        C'est vrai que l'info manque dans les annonces. Comme la boîte semble être à Mâcon, j'imagine que c'est là-bas.

      • [^] # Re: news from Tetrane

        Posté par . Évalué à 2.

        ha zut ! Désolé je corrige cela ce week-end (ainsi que le poste d'assistant(e) qui est déjà pourvu)
        oui c'est à Mâcon, proche de la gare : 3 des ingés viennent en train depuis Lyon et Villefranche

      • [^] # Re: news from Tetrane

        Posté par (page perso) . Évalué à 5.

        Les offres ont l’air sympas, mais j’imagine que ce n’est pas sur Bordeaux :-(

        Toi tu vas invoquer un Zenitram.

    • [^] # Re: news from Tetrane

      Posté par (page perso) . Évalué à 2.

      (principalement clients militaires worldwide, mais on filtre pour que ce soit des "gentils")

      C’est quoi un militaire gentil, sa mitraillette tire des bonbons?

      • [^] # Re: news from Tetrane

        Posté par . Évalué à 4.

        C'est un américain. Le reste, c'est des méchants terroristes.

        "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

  • # docker + mesosphere / marathon

    Posté par . Évalué à 1.

    des POC ont été montés en interne dans la banque où je suis(je n'ai pas encore eu les prez).

    c'est, je pense, une vraie voie d'avenir pour les métiers d'ingé sys / infra ou même pour les applis qui veulent "scaler" horizontalement.

    https://mesosphere.com/
    http://mesosphere.github.io/marathon/docs/native-docker.html

    A suivre

  • # ma boîte

    Posté par . Évalué à -2.

    Ma boîte fait du dév logiciel en C++/Qt pour du multiplateformes.
    On s'oriente vers du modulaire en nodejs et API REST et IHM web.
    On fait du "big data" dans le sens où l'on a des BDD de plus en plus grosses chez nos clients. On s'oriente vers des solutions nosql ou de type columnardb.
    On est en full scrum.
    On s'appuie sur des solutions d'intégration continue: vagrant, jenkins, etc…
    Nos serveurs de build et de test sont en pleine externalisation chez ovh.

    C pas cool ça?

    • [^] # Re: ma boîte

      Posté par . Évalué à 2.

      sans vouloir jouer les rabats-joie tout le monde (ou presque) expose une API REST.

      C'est très tendance de fonctionner par API de nos jours.

      • [^] # Re: ma boîte

        Posté par (page perso) . Évalué à 4. Dernière modification le 11/09/15 à 09:06.

        sans vouloir jouer les rabats-joie tout le monde (ou presque) expose une API REST.

        En plus en utilisant webmachine et yojson c'est du pipi de chat!

        Sinon c'est pas super tendance, les RPCs existent depuis le début des années 80. Ce qui est nouveau, c'est que HTTP/JSON s'est plus ou moins établi en standard de fait depuis quelques années.

  • # A contrario

    Posté par . Évalué à 4.

    On comprend que tu as trouvé (tu es fan) davantage de projets "cools" en dehors de la France/Europe ? T'aurais quelques exemples ? (aucun sarcasme ici, juste de la curiosité).
    Si c'est le cas (vraiment une disparité au niveau de l'innovation entre l'Europe et le reste du monde), quelles en seraient les causes ? Economiques, fiscales, sociales, démographiques (vieillesse de la population), politiques, scientifiques (organisation de la recherche), crise des valeurs, un mélange de tout ça, etc. ?

    • [^] # Re: A contrario

      Posté par . Évalué à 7.

      En dehors de l'Europe, tu as:

      • En Corée du sud Cubrid
      • Aux États Unis Galois, apparemment Functor AB est l'équivalent en Suède mais en gros ils disent "si vous n'avez pas de doctorat, ça sert à rien de postuler". Galois offre des stages.
      • Il y a des boites comme Intel qui bossent sur des driver et des processeurs
      • Il y a IBM qui est un gros contributeur à LXC
      • Il y a une trentaine de boîte à San Francisco qui utilisent OCaml ou Haskell:
      • Cloudius Systems en Israël
      • SQReam en Israël utilise Haskell
      • Qumranet étaient une start-up israëlienne qui développait KVM avant d'avoir été racheté par RedHat.
      • Et j'en passe plein que je n'ai pas en tête à Tokyo, Tel aviv et New york…
      • [^] # Re: A contrario

        Posté par . Évalué à 1.

        Etant au Japon je serais intéressé de savoir !
        J'avais bien entendu parler de 2 ou 3 boites qui font du Haskell pour la finance sur Tokyo, mais à part ça…
        Sinon, j'ai entendu que Rakuten recherchait pas mal de 'data scientists' pour faire du data mining, du machine learning, etc. Sur le papier, ça avait l'air sympa, mais par contre c'est vraiment côté salaire que ça ne suivait pas de mon point de vue…

  • # Linux Embarqué

    Posté par (page perso) . Évalué à 10.

    Nous chez Baylibre (http://www.baylibre.com) ou idem chez Free Electrons (http://free-electrons.com/fr/) on fait des trucs cool, du système, du Linux, de l'embarqué, de la formation, de l'open source… en france !

    On voit des plateformes récentes, et on bosse sur des projets actuels ou futuristes !

    Mais c'est effectivement loin du Big Data ;-)

  • # Concours de la meilleure boite

    Posté par . Évalué à 9.

    Ca se transforme en "ma boite est la meilleure et la plus cool" ce journal…

  • # 6WIND

    Posté par . Évalué à 2.

    Comme dis plus haut, ce journal a lancé le concours de la meilleure boîte.

    Je propose la participation de 6WIND comme boîte qui fait de la programmation système en C, de l'Open Source et qui traite de gros volumes de données (techno utilisée chez les opérateurs et les datacenters). Il y a également de vrais projets de R&D.

    Pour les contributions Open Source, je citerais Linux (networking), DPDK (drivers userland), Quagga (routage), Qemu (virtualisation), OpenStack, et il y en a d'autres.

    Par contre, pas de langage fonctionnel ni de jacuzzi ;)

    La suite, c'est par .

    • [^] # Re: 6WIND

      Posté par (page perso) . Évalué à 3.

      C'est super ce que fait 6wind. La voie vers un vrai routeur a base de composent open est en route.

    • [^] # Re: 6WIND

      Posté par . Évalué à 1.

      et j'ai eu la chance de croiser au CNAM un développeur venant de cette boite :

      Yvan Boule

      Un type impressionnant.

      • [^] # Re: 6WIND

        Posté par . Évalué à 3.

        c'est pas lui qui est cinéaste ? et passionné d'algèbre ?

      • [^] # Re: 6WIND

        Posté par . Évalué à 1. Dernière modification le 11/09/15 à 10:58.

        Ça sent la private joke, ton commentaire… Da boule…

        • [^] # Re: 6WIND

          Posté par . Évalué à 2.

          non pas du tout rien à voir.

          Il a participé à ChorusOS, un OS temps réel autrefois français :

          https://fr.wikipedia.org/wiki/ChorusOS

          Il dispense aussi des cours de système au CNAM.
          Il a une connaissance très profonde des OS et ses cours sont très intéressants et instructifs.

          • [^] # Re: 6WIND

            Posté par (page perso) . Évalué à 3.

            Il a une connaissance très profonde des OS et ses cours sont très intéressants et instructifs.

            C'est quoi comme UE ?

            • [^] # Re: 6WIND

              Posté par . Évalué à 1.

              J'avais suivi celle-ci :

              http://deptinfo.cnam.fr/new/spip.php?rubrique222 SMB137

              Mais sinon il intervient plus ponctuellement sur d'autres il me semble.

              • [^] # Re: 6WIND

                Posté par (page perso) . Évalué à 2.

                Dommage, cette UE est incompatible avec « Linux : principe et programmation » (NSY103). Je pense que sur ce site la préférence ira vers plutôt vers la 2nde…

                • [^] # Re: 6WIND

                  Posté par (page perso) . Évalué à 2.

                  Pourquoi incompatible ?

                  • [^] # Re: 6WIND

                    Posté par (page perso) . Évalué à 2.

                    Faut demander au cnam, pas à moi !

                    Pour la licence d'info (onglet programme)

                    Règles d'exclusion pour le choix de l'UE de L3: NFE113 ne peut pas être choisie avec NFP107, RSX101 ne peut pas être choisie avec SMB104, SMB137 ne peut pas être choisie avec NSY103

                    Pour le parcours d'ingé :

                    Règles d'exclusion pour le choix des 2 UE de fin de cycle préparatoire : NFE113 ne peut pas être choisie avec NFP107, RSX101 ne peut pas être choisie avec SMB104, SMB137 ne peut pas être choisie avec NSY103

                    etc.

                    • [^] # Re: 6WIND

                      Posté par (page perso) . Évalué à 2.

                      ha ok c'est dans le cadre ou tu prepare un diplome. Je ne prends les cours que pour apprendre des choses.

              • [^] # Re: 6WIND

                Posté par (page perso) . Évalué à 2.

                Merci j'ai suivi NFA03 et NFA04 et j'aimerai bien aller plus loin.

      • [^] # Re: 6WIND

        Posté par (page perso) . Évalué à 3.

        Ivan, non ?

  • # Le web

    Posté par (page perso) . Évalué à 1. Dernière modification le 10/09/15 à 21:13.

    Bin moi perso, ce que je trouve cool aussi, ce sont les technos récentes autour du web (ReactJs, Flux, Immutable, applications isomorphiques) et des dernières/prochaines itérations de JavaScript (ES6, ES7), c'est un domaine en plein foisonnement, c'est le bordel, mais je trouve ça très stimulant. En revanche, quand tu choisis une techno et investis dessus, si tu as pas misé sur le bon cheval, tu te retrouves 1 an après avec l'impression d'être déjà un dinosaure :)

    Sinon oui je sais, pas grand chose à voir avec le journal, désolé.

    • [^] # Re: Le web

      Posté par . Évalué à 7.

      Il y a tellement de choses avec lesquelles je suis en désaccord dans ce message, que je ne sais par où commencer.

      Juste en avant propos, je viens du web, j'ai travaillé pendant 5 ans à faire du Python et du Javascript (pas du jQuery à 2 balles, mais du Ember.js/Angular). Je me suis maintenant mis en Freelance et fait de l'OCaml et Erlang.

      Je vais commencer par le JavaScript, parce que c'est les plus facile à attaquer: le web coté client est daubé du cul, il faut que les gens se mettent ça dans la tête. Brendan Eich explique lui même que le but du JavaScript était d'implémenter Scheme dans le navigateur, et ses supérieurs lui ont dit « en fait on veux quelque chose proche de Java ». Il a une quantité infinie de mauvais comportements.. Qui plus est, la communauté JavaScript pue la mort, elle est majoritairement composée de designers ou personnes qui ont appris la programmation sur le tas. Le langage est considéré comme un jouet de designer même s'il est bien plus puissant.

      Il y a quelque efforts pour rendre JavaScript bien (meilleure communauté, moins code spaghetti):

      Aucun langage n'est parfait, mais ajouter à un langage médiocre une communauté incompétente pour 95% d'entre eux. Si tu te retrouve à faire du JavaScript, tu te retrouves avec du code spaghetti maintenable que tu dois maintenir.

      Maintenant, je vais mettre Erlang de coté, car à mon avis, c'est plus un langage comparable à Rust qu'à Haskell/OCaml.

      Pour les langages type Haskell et OCaml (ou les types sont inférés) la majorité des gens ne comprennent pas l'avantage, car ils n'ont jamais travaillé avec ces langages. Donc ils parlent de quelque chose qu'ils ne connaissent pas. Haskell et OCaml apportent des concepts qui n'existent pas dans aucun autre langage.

      Je me rappelle, il y a 8 ans, PHP et Java étaient l'ennemi, c'était de la merde, plein de bug, in-maintenable. Tout le monde est passé à Ruby et Python et ne se sont pas rendu compte qu'ils n'ont absolument rien réglé.

      Quand je faisait du python, combien de fois je me suis retrouvé avec des bugs du type: la fonction reçoit un entier au lieu d'une chaîne de caractère. Ou alors, cette fonction doit recevoir une liste chaine de caractères, mais elle reçois une chaine de caractères toute simple. Et en python, une chaine de caractère est une liste de chaine de caractère à un caractère. Donc tu vois le bug que très très profond dans le code, et tu dois passer la journée à remonter à la source.

      En Haskell et OCaml ces bugs n'existent pas. Car tu as les avantages de Java (typage fort) et de Python (aucun besoin de spécifier les types) car les types sont inférés. Tu devrais jouer avec Ocaml et te rendre compte par toi même. Compiler OCaml/Haskell te donne la même chose qu'une couverture à 100% des branches de code avec des tests unitaires, mais sans aucune assertion. Ce qui est déjà pas mal.

      Aussi, avec l'inférence de types, tu peux avoir une équipe qui implémente la moitié du code, et une autre équipe l'autre moitié. Du moment que tu as défini des interface communes.

      Et Haskell te permet de faire du multi-threading sans race-condition très facilement. Je te conseille de lire cet article

      Erlang, même si les gens le considère fonctionnel, est un tout autre langage. La puissance d'Erlang c'est la machine virtuelle. Je ne sais pas par où commencer, mais l'idée est que le programmeur doit utiliser un processus pour chaque fonction. Les processus peuvent être rafraichi pour mettre à jour leur code sans interruption de service. Une instance d'une machine virtuelle peut tourner sur plusieurs machine réelles, et donc tu peux migrer les processus d'une machine à une autre sans interruption de service. Des choses impossible dans aucun autre langage.

      Qui plus est, les variables en Erlang sont constantes (comme Rust par défaut) ce qui empêche les race-condition mais aussi force les programmeurs à écrire des fonctions de pas plus d'une 10aine de lignes. Combien de fois je me suis retrouvé sur des projets python avec une méthode qui faisait 300 lignes de codes.

      Voici les choses que ces langages ont depuis plus de 5 ans qui arrivent dans les autres langages:

      • Haskell avait les monades et Erlang avait receive pour faire de l'asynchrone. Python vient tout juste d'avoir yield from et asyncio.
      • Haskell avait Parsec pour parser de manière sécurisée. Rust vient tout juste d'implementer nom qui a été présenté au RMLL.
      • Et je dois en oublier plein d'autres…

      Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

      • [^] # Re: Le web

        Posté par . Évalué à 2. Dernière modification le 11/09/15 à 03:04.

        Oups… Ce commentaire était pour ce message.

        Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

      • [^] # Re: Le web

        Posté par . Évalué à 6.

        Compiler OCaml/Haskell te donne la même chose qu'une couverture à 100% des branches de code avec des tests unitaires, mais sans aucune assertion.

        Hum… tu y crois vraiment ?

        Aussi, avec l'inférence de types, tu peux avoir une équipe qui implémente la moitié du code, et une autre équipe l'autre moitié. Du moment que tu as défini des interface communes.

        Sérieusement, une interface ne se limite pas aux signatures de fonctions… La sémantique, c'est pour les chiens ?

        Et Haskell te permet de faire du multi-threading sans race-condition très facilement

        Aussi facilement que n'importe quel truc fait en Haskell, j'imagine.

        • [^] # Re: Le web

          Posté par (page perso) . Évalué à 4. Dernière modification le 11/09/15 à 09:20.

          Sérieusement, une interface ne se limite pas aux signatures de fonctions… La sémantique, c'est pour les chiens ?

          Il grossit un peu le trait, mais un des charmes des langages comme OCaml est qu'ils sont très expressifs – donc on a à sa disposition un vocabulaire de haut niveau – et que le système de types est une information supplémentaire sur le programme. Cette information permet au compilateur de détecter des erreurs, mais le programmeur a aussi un degré de liberté supplémentaire, et on peut représenter des invariants importants du programme dans le système de type (du genre, connection initialisée) ce qui permet d'utiliser le compilateur comme un système de preuve correction allégé. Je précise que OCaml n'a pas de RTTI (on dit que les types sont effacés à la compilation) et que ceci n'a donc aucune surcharge au “runtime”.

          Ensuite mon expérience est que lorsque je programme je fais surtout des erreurs d'étourderie et presque jamais des erreurs de sémantique – les premières sont presque toutes capturées par le compilateur et les autres, c'est le boulot de la test-suite.

      • [^] # Re: Le web

        Posté par . Évalué à 1.

        Tu as bien plus décrit que je n'aurais pu pourquoi je n'aime vraiment pas javascript, et ce qui me gêne dans Ruby (son typage dynamique) même si ce dernier m'a beaucoup impressionné et que la communauté n'est pas celle de javascript (heureusement !). :)

        "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

        • [^] # Re: Le web

          Posté par (page perso) . Évalué à 4.

          Vous êtes méchants avec le JS, ils viennent quand même de découvrir que faire des tests unitaires (et de l'intégration continue en générale) était intéressant, et qu'avoir un système de packaging n'était pas forcément une mauvaise idée (du coup, on a un système de packaging par lib).

      • [^] # Re: Le web

        Posté par (page perso) . Évalué à 2.

        Je suis parfaitement d'accord avec toi, l'apport des langage fonctionnels touche surtout à la garantie qu'un code qui compile sera un code qui fonctionne (sauf erreur de conception).

        • Garantie que la donnée correspond au format attendu
        • Garantie que la requête sur la base de données correspond au schéma déclaré etc…

        Mais il reste encore des points sur lesquels ces langages sont à la traîne (pas du point de vue technique, mais dans les librairie existantes). Surtout dans le domaine du web. Des choses auxquelles je pense :

        • La gestion des web service : à ma connaissance, OCaml n'a pas de bindings pour créer un client WS à partir d'un WSDL et garantir que les données transmises sont conformes.

        • La gestion du XML : j'aimerai beaucoup pouvoir garantir qu'une transformation XSL appliquée sur un schéma XSD d'entré me produit un XML conforme à un XSD de sortie. (quel que soit le xml bien sûr)

        Pourtant, c'est techniquement possible. Mais ces langages ne sont pas encore assez présents dans le monde du dev web. Quand tu as quelqu'un qui te parle SOA, JBoss, ServiceMix tu as beau savoir que ça n'est que ça n'est qu'une technologie avec ses limites, tu ne pas proposer quelquechose d'équivalent en face.

        • [^] # Re: Le web

          Posté par (page perso) . Évalué à 2.

          Je suis parfaitement d'accord avec toi, l'apport des langage fonctionnels touche surtout à la garantie qu'un code qui compile sera un code qui fonctionne (sauf erreur de conception).

          Exactement, dans ma pratique quotidienne, les seules erreurs qui échappent au compilateur sont “les miennes” i.e. les erreurs intelligentes – mauvais algorithme, mauvais emploi des ressources système – que tu appelles erreurs de conception.

          • [^] # Re: Le web

            Posté par . Évalué à 4. Dernière modification le 11/09/15 à 17:54.

            Effectivement, la force des langages comme OCaml ou Haskell est la puissance sémantique de leur système de types. Outre la garantie qu'il n'y aura pas d'erreurs de typage à l'exécution (ce qui était ici reproché à python, mais ne les distingue pas de langage comme le C si l'on passe sous silence l'absence d'effets de bord), le système est un sous-ensemble riche du calcul propositionnel du second ordre : ce qui offre de plus un bon contrôle sémantique sur le code, mais ne dispense pas des tests unitaires.
            Pour se dispenser complètement de ces derniers, il faut passer à Coq qui lui à tout le calcul des prédicats du second ordre avec logique intuitionniste (sans raisonnement par l'absurde, quoi que on peut même activer ce dernier mais là…).
            Pour ceux qui ne connaissent pas ces notions, disons qu'on peut par exemple exprimer dans le système de types de Coq que l'on définit une fonction qui prend un entier et renvoie son double. Autrement dit on peut exprimer complètement la sémantique du code, et le système vérifie que le code correspond bien à sa sémantique. D'une certaine façon, un code Coq qui compile est garantie sans bugs.

            Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

            • [^] # Re: Le web

              Posté par (page perso) . Évalué à 4.

              Pour ceux qui ne connaissent pas ces notions, disons qu'on peut par exemple exprimer dans le système de types de Coq que l'on définit une fonction qui prend un entier et renvoie son double. Autrement dit on peut exprimer complètement la sémantique du code, et le système vérifie que le code correspond bien à sa sémantique. D'une certaine façon, un code Coq qui compile est garantie sans bugs.

              Dans quel types de contexte est-ce que coq est utilisé. J'avais lu des articles concernant des utilisations dans les transactions bancaires, il s'agissait d'un exemple essentiellement académique sur un très petit sous-système. Du coup je n'ai pas trop d'intuition sur la taille des programmes qu'on peut pratiquement prouver avec coq. Est-il facile de travailler sur les appels-système, comme par exemple pour démontrer dans un programme que toutes les conditions d'erreur sont correctement traitées?

              Est-ce que tu sais ce que devient focal?

              Enfin, je ne suis pas logicien, mais mathématicien, du coup j'ai essayé de me mettre dans la peau do coq. La première seconde, je me suis dit, “hey chouette:”

              Il existe x tel que P <-> Il existe un programme calculant x tel que P

              par contre pour transformer le pour tout en logique intuitionniste, j'ai moins fait le malin puisque la formulation

              pour tout x on a P <-> Non(Il existe x tel que Non P) <-> Il n'existe aucun programme calculant x tel que non P

              me paraît préparer beaucoup de problème à celui qui voudrait s'en servir. :) Du coup que font les intuitionnistes pour traduire les énoncés en “pour tout”? Est-ce que c'est ce “second ordre” que j'ai jusqu'ici négligé qui sauve les meubles? Ou bien est-ce qu'ils se lancent dans des considérations énumératives?

              • [^] # Re: Le web

                Posté par (page perso) . Évalué à 2.

                Du coup je n'ai pas trop d'intuition sur la taille des programmes qu'on peut pratiquement prouver avec coq.

                Les trucs publics les plus gros sur le versant informatique que je connaisse en Coq sont Compcert et Bedrock, respectivement un compilateur C prouvé et un cadriciel de preuve de programmes. Bon, en pratique les limites de la scalabilité en Coq ne sont pas trop là où on s'attend, et des problèmes pratiques débiles te sautent à la figure avant d'atteindre des frontières techniques.

                par contre pour transformer le pour tout en logique intuitionniste, j'ai moins fait le malin

                Je vois pas très bien ce que tu veux dire. Un terme de type ∀x : A. P est une fonction prenant en argument un terme t de type A et renvoyant du P[t]…

                • [^] # Re: Le web

                  Posté par (page perso) . Évalué à 4.

                  D'ailleurs, j'ai l'impression que ta compréhension de ∃x : A. P[x] est aussi un peu biaisée. Un programme de type ∃x : A. P[x] est une paire (t, p) faite d'un programme t : A et d'un programme p : P[t]. C'est la magie de la correspondance de Curry-Howard. Je me permets de mettre un lien vers des slides introductives à moi sur le sujet.

                  • [^] # Re: Le web

                    Posté par (page perso) . Évalué à 2.

                    Merci pour tes slides, dont j'aime bien le ton et le contenu! Tout naïf que je suis je n'avais pas fait explicitement le rapprochement entre l'isomorphisme de Curry-Howard et la logique intuitionniste. :) Je vais donc t'obliger à faire le SAV. :D

                    La façon de comprendre la traduction entre de “truth” et “falsity” en termes de CS “type singleton” et “type vide” est que “A implique B est vraie” et “il existe une et une seule fonction de A vers B”, correct?

                    Est-ce qu'il n'y a pas un poly que tu pourrais me recommander. Je suis mathématicien mais je ne suis pas très familier avec le domaine de la logique proprement dite ou la théorie des types, donc je pense que je pourrais arriver à profiter un peu d'un cours de DEA ou de Master.

                    • [^] # Re: Le web

                      Posté par (page perso) . Évalué à 2.

                      La façon de comprendre la traduction entre de “truth” et “falsity” en termes de CS “type singleton” et “type vide” est que “A implique B est vraie” et “il existe une et une seule fonction de A vers B”, correct?

                      Hum, ta phrase est un peu bancale grammaticalement et je ne comprends pas très bien où tu veux en venir. Je peux te justifier la définition calculatoire de « vrai » et « faux » comme suit. Il y a une et une seule preuve de « vrai », et donc « vrai » est l'équivalent sur le versant logique du type unit d'OCaml, disons (tu as l'air de pratiquer), i.e. le type algébrique à un seul constructeur (type unit = ()). De la même manière, on espère secrètement qu'il n'y a pas de preuve de faux, donc on définit faux comme le type vide, i.e. le type algébrique à zéro constructeurs (je ne crois pas que ça soit possible en OCaml pour des raisons débiles de parsing, mais tu peux l'encoder avec des GADTs).

                      Est-ce qu'il n'y a pas un poly que tu pourrais me recommander. Je suis mathématicien mais je ne suis pas très familier avec le domaine de la logique proprement dite ou la théorie des types, donc je pense que je pourrais arriver à profiter un peu d'un cours de DEA ou de Master.

                      Si tu aimes les catégories, tu peux tenter le HoTT book, même si je dois avouer que ne cautionne pas l'OPA qu'ont fait les homotopistes sur la théorie des types et le rebranding en « homotopique » de plein de choses qui existaient déjà dans la bête théorie des types. À part ça, dans la catégorie « bouquin moderne », je vois pas trop. Type Theory and Functional Programming a l'air pas trop mal à vue de nez.

                      • [^] # Re: Le web

                        Posté par . Évalué à 3.

                        Au sujet du « faux », ne penses-tu pas que les développeurs OCaml peuvent utiliser le type polymorphe 'a option pour représenter cette notion ? L'idée m'est venue en relisant l'article du programme de Hilbert aux programmes tout court de Jean-Louis Krivine, en particulier ce passage au sujet de la correspondance de Curry-Howard :

                        Ce sont des logiciens qui l'ont découverte, tout au moins en ce qui concerne la logique intuitionniste. Mais c'est un informaticien, T. Griffin qui a opéré son extension à la logique classique, trente ans après, en 1990. C'est, de nouveau, une découverte capitale et tout à fait inattendue : en effet, le raisonnement par l'absurde est associé à une instruction très sophistiquée du langage SCHEME (une variante de LISP), qui a été inventée pour gérer, entre autres, les exceptions et le multi-tâches.

                        Or le type 'a option est une manière de gérer les exceptions de manière plus fonctionnelle en OCaml que de lever une exception de type exn. Je m'explique sur l'exemple du calcul du prédécesseur pour les entiers unaires :

                        type nat = Zero | S of nat
                        
                        let pred n =
                          match n with
                          | Zero -> None
                          | S n' -> n'

                        Un entier qui aurait zéro pour successeur est absurde, mais pas pour les autres entiers. Cela se passe comme si lorsque l'hypothèse est absurde on renvoie None, alors que lorsque ce n'est pas le cas on renvoie une conclusion du bon type Some 'a. Ce qui me fait penser à l'interprétation gödelienne de la logique intuitionniste : dans chaque étude de cas, on dispose soit d'une preuve de l'absurdité de l'hypothèse, soit de la prouvabilité du théorème sous l'hypothèse donnée. Cette interprétation te semble-t-elle recevable ? Les leçons de M. Krivine sont trop lointaines pour moi (une dizaine d'années, et déjà à l'époque je n'avais suivi son cours sur le lambda-calcul typé qu'en option) pour que je puisse avancer avec assurance sur ce genre de question.

                        Autrement, je viens de commencer la lecture de ta thèse et j'apprécie beaucoup ton sens de l'humour :-) En conclusion des remerciements, tu en adresses à Jean-Yves et Jean-Louis, que je suppose être MM. Girard et Krivine. J'aurais aimé me procurer les deux tomes de l'ouvrage Le point aveugle, mais le premier tome est en rupture de stock chez tous les distributeurs que j'ai regardé. Sais tu s'il en est prévu une réédition ?

                        Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

                        • [^] # Re: Le web

                          Posté par . Évalué à 2.

                          Pour le code le fonction pred, il faut bien sûr lire

                          let pred n =
                            match n with
                            | Zero -> None
                            | S n' -> Some n'

                          Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

                        • [^] # Re: Le web

                          Posté par (page perso) . Évalué à 2.

                          Au sujet du « faux », ne penses-tu pas que les développeurs OCaml peuvent utiliser le type polymorphe 'a option pour représenter cette notion ?

                          En fait, cette interprétation du faux correspond exactement à une transformation logique connue sous le nom de Friedman's trick. Du côté langage de programmation, cela correspond à ajouter une exception dynamique, ce qu'OCaml a déjà en style direct (i.e. sans passer par une traduction).

              • [^] # Re: Le web

                Posté par . Évalué à 10.

                Pour la taille des programmes que les spécialistes de Coq peuvent écrire, je pense que la réponse de Perthmâd est suffisante. Quand je parle de spécialistes, il faut voir que pour le compilateur C il s'agit d'un projet de Xavier Leroy, le Big Boss OCaml.
                On pourrait rajouter un micro noyau, mais lui certifié par Isabelle.

                Pour le reste de tes questions, je veux bien essayer de répondre, en espérant rester le plus compréhensible possible. En guise d'avertissement, je tiens à préciser que je ne suis ni informaticien, ni développeur, par contre tout comme toi je suis mathématicien de formation, mais également logicien (master Logique Mathématique et Fondements de l'Informatique) porté sur la philosophie (d'où mon pseudonyme).

                Tout d'abord, en logique on distingue la partie qui traite des règles de bonne formation des jugements (règles syntaxiques) de celle qui s'occupe des règles par lesquelles on dérive ou infère les jugements les uns des autres (théorie de la démonstration). Les notions de logique propositionnelle ou des prédicats du premier ou second ordre relèvent de la première partie, alors que la distinction entre logique intuitionniste ou classique de la seconde. Je présenterai d'abord quelques notions syntaxiques, puis dans un second temps la différence entre logique classique et intuitionniste, et enfin je tenterai de montrer les liens entre ces notions et le typage de programme.

                Lorsque l'on s'intéresse à la forme logique de nos jugements, quelqu'en soit le contenu (il fait beau, mon pseudonyme est kantien, Socrate est mortel, Gödel est le plus grand logicien du vingtième siècle, Kant est le plus grand philosophe de tous les temps…), si l'on fait abstraction du rapport sujet-prédicat (la structure sujet-verbe-complément) on trouve qu'ils se subdivisent en jugements affirmatifs (il fait beau), négatifs (il ne fait pas beau), hypothétiques (s'il fait beau alors je vais me promener), conjonctifs (il fait beau et les oiseaux chantent) ou disjonctifs (il fait beau ou il pleut). Tel est le point de vue de la logique propositionnelle. Usuellement, on représente les propositions non analysées, à partir desquelles on construit toutes les autres, par des lettres majuscules A, B, C… À partir d'elles on peut former, par exemple, les jugements : A et B et C, non A ou B, si A alors B etc. Cela doit paraître clair et évident pour un développeur : ce sont tous les opérateurs agissant sur les booléens. Mais pour l'instant on en reste à la logique propositionnelle dite du premier ordre : on ne se permet pas de quantifier sur les variables propositionnelles (aucun article défini ou indéfini, singulier ou pluriel). Quand on autorise une telle quantification, on parle de logique propositionnelle du second ordre. Dans une telle logique, on peut former des propositions de la forme : Pour toutes propositions A,B si A alors B. On note habituellement la forme des jugements hypothétiques (ou implication) par une flèche ->, et la proposition précédente se réécrit Pour toutes A,B A -> B. En anticipant la partie sur le typage, tu pourras comparer au type OCaml 'a -> 'b ;) (l'apostrophe ' a son importance, c'est le quantificateur universel).
                Voilà qui est bien intéressant, mais dans nos phrases nous utilisons des verbes, et la grammaire ne répète-t-elle pas que la phrase minimale est constituée de la structure sujet-verbe-complément ? Les logiciens préfèrent parler de rapport sujet-prédicat ou de rapport prédicatif entre un ou plusieurs sujets. On parle alors de logique des prédicats. Ainsi, dans la phrase « Socrate est mortel » Socrate est le sujet, mortel le prédicat; tandis que dans la phrase « Roméo aime Juliette » aimer est le prédicat Roméo et Juliette en étant les sujets (on parle de prédicat binaire). Tout comme pour la logique propositionnelle, on distingue un premier et un second ordre selon les objets sur lesquels on autorise la quantification : quand on ne quantifie que sur les sujets on est au premier ordre, tandis que si l'on quantifie aussi bien sur les sujets que sur le prédicats on est au second ordre. Je vais tâcher d'illustrer la différence entre ces deux ordres dans la formulation des théories en prenant l'exemple de l'arithmétique.
                Lorsque l'on cherche à axiomatiser l'arithmétique (comme il se doit pour toute théorie mathématique), outre les axiomes de bases comme 0 est un entier, tout entier a un successeur, le successeur d'un entier n'est jamais nul… il faut pouvoir exprimer l'essence même des nombres entiers : le principe du raisonnement par récurrence. En première année de licence, on le présente ainsi : si un proposition est vraie de 0 et qu'elle passe au successeur (si elle est vraie pour n alors elle est vraie pour n+1) alors elle est vraie pour tout entier. On pourrait l'écrire aussi : Pour tout P, (P0 et (Pn -> P(n+1))) -> pour tout n, Pn. Dans une telle formulation, la quantification porte aussi bien sur les propositions que sur les entiers : elle est du second ordre. Par contre, dans la logique du premier ordre on ne peut quantifier sur les propositions, il faut s'y prendre autrement. Alors, au lieu d'un unique axiome, on pose une infinité d'axiomes à travers ce que l'on nomme un schéma d'axiomes : à chaque proposition syntaxiquement bien formée (P) portant sur les entiers, on lui associe son axiome de récurrence : si P est vraie de 0 et qu'elle passe au successeur… La théorie a beau avoir une infinité d'axiomes, elle reste récursivement énumérable : il existe un algorithme pour décider si une formule est ou non un axiome. Par contre il n'existe pas d'algorithme pour décider si une formule est une conséquence déductive de la théorie : tel est le premier théorème d'incomplétude de Gödel (qui a pour corollaire l'impossibilité de résoudre le problème de l'arrêt pour une machine de Turing). Ce qui nous amène à la deuxième partie : qu'est-ce qu'être une conséquence déductive ? ou qu'elles sont les règles pour prouver ?

                Je n'entrerai pas dans le détail de toutes ces régles, ni dans un exposé exhaustif, mais m'arrêterai sur trois règles qui ont leur importance dans la différence et l'opposition entre logique classique et intuitionniste : le modus ponens, le modus tollens et le tiers exclus. La première peut s'exprimer dans le raisonnement suivant : si A alors B, or A donc B. La seconde dans le raisonnement suivant : si A alors B, or non B donc non A (on parle aussi de raisonnement par contraposition : la contraposée de la proposition si A alors B étant la proposition si non B alors non A, le modus tollens n'est que le modus ponens appliqué à la contraposée). Enfin, la troisième affirme que pour toute proposition A, on peut poser A ou non A (entre une thèse et son antithèse, tout tiers est exclus). Et c'est cette dernière règle que les intuitionnistes rejètent : elle permet de prouver l'existence d'objets sans même exhiber un moyen de les construire (on a pour cela qualifié les intuitionnistes de constructivistes). Illustrons cette propriété étonnante du tiers exclus sur un exemple célèbre.
                Théorème : il existe deux nombres irrationnels a et b tels que ab soit rationnel.
                Preuve :
                Posons a = b = racine de 2 qui est irrationnel. Selon le tiers exclus, ou bien ab est rationnel ou bien il ne l'est pas, c'est à dire qu'il est irrationnel. Si le premier cas est vrai, alors on a fini. Supposons donc que ab soit irrationnel. Alors comme (ab)a = ab*a = a2 = 2 est rationnel, il suffit de prendre ab et a pour les deux nombres cherchés.
                CQFD.
                Voilà une preuve bien étrange : elle affirme l'existence de deux nombres ayant une propriété particulière, mais à la fin de la preuve on ne les connaît pas, ne sachant pas laquelle des deux alternatives fournies par le tiers exclus est la bonne. À dire vrai, on peut prouver sans tiers exclus que la deuxième alternative est vraie… mais la preuve est bien plus longue. ;)
                Le principe du tiers exclus est équivalent au principe du raisonnement par l'absurde que l'on peut formuler ainsi : (non A -> A) -> A. Autrement dit : si une antithèse prouve la thèse qu'elle est censée réfuter, alors on peut affirmer la thèse sans hypothèse auxiliaire. Une des conséquence surprenante de la logique intuitionniste est qu'une double négation n'est pas équivalente à une affirmation ( non non A n'est pas équivalente à A). Dans un raisonnement par l'absurde, un intuitionniste conclura à la double négation (non A -> A -> non non A) mais non à l'affirmation comme le ferai un mathématicien « classique ». De même, si le principe du tiers exclus n'est pas prouvable en logique intuitionniste, on peut par contre y prouver la double négation de celui-ci.

                J'espère que la réponse sur la traduction des « pour tout » et la nature du second ordre te semble claire : les intuitionnistes traduisent comme tout le monde, le second ordre permet de quantifier sur les prédicats, mais les intuitionnistes ne concluent pas toujours comme le font les mathématiciens « classiques ». C'est dans les liens logico-déductifs entre énoncés, et non dans leur formulation, que se situe la différence entre logique classique et logique intuitionniste.
                Venons en enfin aux programmes et à leur typage, et donc à la correspondance de Curry-Howard ou correspondance preuve-programme (là où tu t'es dis « chouette » ;). Les langages fonctionnels comme OCaml (ou Haskell, Lisp…) ont pour modèle théorique le lambda-calcul, là où les langages impératifs s'inspirent du modèle des machines de Turing. Le lambda-calcul d'Alonzo Church avait pour ambition de capturer l'essence de la notion mathématique de fonction 1. Le lambda-calcul peut être vu comme un langage de programmation, dans lequel les fonctions sont des citoyens de première classe, où les types sont des formules du prédicats du seconde ordre: telle est la correspondance de Curry-Howard. Cela est du au fait que les règles de typage de ce langage sont analogues aux règles de déduction de la logique intuitionniste. Ainsi, en gros, à chaque fois que l'on type un lambda terme on peut construire en parallèle une preuve d'un théorème : le théorème « dit » ce que fait le programme 2, et celui-ci est une preuve particulière de celui-là.
                Prenons des exemples avec le typage de fonctions en Ocaml. Si l'on définit la fonction let f x = x +1, elle aura pour type int -> int et quand on calcule le terme f 1 on trouve la valeur 2 de type int. Observes bien la forme du type de la fonction ! Ne te rappelle-t-il pas la notation de l'implication logique A -> B (si A alors B) avec ici A = B = int ? C'est bien le cas. Le type int peut être vu comme une constante propositionnelle, et le type de la fonction f comme la tautologie si A alors A. Et quand on l'applique a une valeur du bon type, on applique la règle du modus ponens : si A alors A, or A donc A (1 est de type int, le or A, donc la valeur f 1 = 2 est de type int). La forme générale du modus ponens s'obtient avec la fonction let apply f = fun x -> f x de type ('a -> 'b) - 'a -> 'b que l'on peut paraphraser en : Pour toute proposition A et B, si A alors B or A donc B. On a là une formule du second ordre, et c'est ce second ordre qui confère le polymorphisme au langage. Les fonctions et leur application permettent donc de retrouver les formules hypothétiques. Pour ce qui est des formules disjonctives et conjonctives, elles sont fournies respectivement par les variants et les enregistrements (les variants sont des « ou », les enregistrements des « et »). Comme il manque la négation logique, on retrouve un sous-ensemble de la logique propositionnelle du second ordre. Ainsi, si on regarde les fonctions OCaml comme des preuves et leur type comme des théorèmes, le compilateur vérifie que l'on applique les théorèmes à des prémisses dont la forme est conforme à l'énoncé du théorème : autrement dit, on n'utilise pas les théorèmes n'importe comment, comme quelqu'un qui voudrait appliquer le théorème de Pythagore à un triangle équilatéral.
                Malheureusement, ce système est limité quand à son expressivité sémantique : il n'y a pas de prédicats. C'est là que Coq entre en jeu. Pour un programmeur, y avoir recours peut être disproportionné (sortir un char d'assaut pour tuer une mouche), mais dans des logiciels critiques où le droit à l'erreur n'est pas permis (comme le pilote automatique d'un avion ;) cela peut s'avérer être une solution recevable. Je vais illustrer son principe en utilisant un exemple donné par Perthmâd dans son article sur coq 8.5. Il y définit une fonction qui calcule le nombre d'occurrence d'un entier dans une liste, et prouve que si on concatène deux listes on ajoute le nombre d'occurrence.

                (* import de modules pour les listes et l'arithmétique *)
                Require Import List Arith.
                Fixpoint multiplicity (n : nat) (l : list nat) : nat  :=
                    (* filtrage par motifs sur la liste "l" *)
                    match l with       
                    (* cas où la liste est vide *)
                    | nil     => 0  
                    (* cas où on a un élément "a" en tête de liste, "l'" le reste *)  
                    | a :: l' => 
                        (* test d'égalité de "n" avec l'élément "a" *)       
                        if eq_nat_dec n a             
                        (* appel récursif suivi de la fonction successeur d'un entier *)
                        then S (multiplicity n l')  
                        else multiplicity n l'         
                    end.
                
                Lemma multiplicity_app (n : nat) (l1 l2 : list nat) : 
                  multiplicity n (l1 ++ l2) = multiplicity n l1 + multiplicity n l2.
                Proof.
                  induction l1. reflexivity.
                  simpl. destruct eq_nat_dec; auto.
                  rewrite IHl1. auto.
                Qed.

                En OCaml, cela ressemblerai à ceci :

                (* représentation unaire des entiers naturels *)
                type nat = Zero | S of nat;;
                
                (* prédicat d'égalité décidable entre deux entiers *)
                let rec eq_nat_dec n m =
                  match n, m with
                  | Zero, Zero -> true
                  | Zero, _ | _, Zero -> false
                  | S n', S m' -> eq_nat_dec n' m'
                ;;
                
                (* la fonction multiplicity définie comme en Coq *)
                let rec multiplicity n l =
                  match l with
                  | [] -> Zero
                  | a :: l' ->
                     if eq_nat_dec a n
                     then S (multiplicity n l')
                     else multiplicity n l'
                ;;
                
                (* définition de l'addition sur le type nat *)
                let rec plus_nat n m =
                  match n, m with
                  | Zero, _ -> m
                  | _, Zero -> n
                  | S n', S m' -> S (S (plus_nat n' m'))
                ;;
                
                (* morphisme du type int vers le type nat *)
                let rec nat_of_int n =
                  match n with
                  | 0 -> Zero
                  | _ -> S (nat_of_int (n-1))
                ;;
                
                (* morphisme du type nat vers le type int *)
                let rec int_of_nat n =
                  let rec loop m acc =
                    match m with
                    | Zero -> acc
                    | S m' -> loop m' (acc + 1)
                  in loop n 0
                ;;

                On remarque déjà que le théorème ne porte pas sur le type int mais sur le type nat. D'ailleurs, le type int muni de l'addition est un groupe cyclique isomorphe à un Z/nZ où la valeur de n dépend de l'architecture de la machine (231 sur 32-bit et 263 sur 64-bit), et ne représente qu'imparfaitement le concept de nombre entier. Toutefois, en utilisant les morphismes entre les deux types on pourrait le « traduire » pour le type int.
                Et dans une boucle interactive :

                (* on représente 2 en unaire *)
                # let n = nat_of_int 2;;
                val n : nat = S (S Zero)
                
                (* on crée deux listes d'entiers unaires qu'on concatène *)
                # let l1 = List.map (nat_of_int) [2; 3; 4; 2; 5];;
                val l1 : nat list =
                  [S (S Zero); S (S (S Zero)); S (S (S (S Zero))); S (S Zero);
                   S (S (S (S (S Zero))))]
                # let l2 = List.map (nat_of_int) [2; 3; 4; 2; 2];;
                val l2 : nat list =
                  [S (S Zero); S (S (S Zero)); S (S (S (S Zero))); S (S Zero); S (S Zero)]
                # let l3 = l1 @ l2;;
                val l3 : nat list =
                  [S (S Zero); S (S (S Zero)); S (S (S (S Zero))); S (S Zero);
                   S (S (S (S (S Zero)))); S (S Zero); S (S (S Zero)); S (S (S (S Zero)));
                   S (S Zero); S (S Zero)]
                
                (* le théorème est bien vérifié sur ce cas particulier *)
                # multiplicity n l3 = plus_nat (multiplicity n l1) (multiplicity n l2);;
                - : bool = true

                Là où pour vérifier la correction sémantique de la fonction un développeur OCaml ferai des tests unitaires (qui ne seront jamais exhaustifs étant donné qu'il faudrait tester une infinité de cas), la preuve en Coq nous garantie qu'elle est correcte. Comme dit plus haut, avoir recours à Coq pour cet exemple est sans doute disproportionné par rapport au besoin. Un cas plus proche de la pratique est, par exemple, cette structure de données union-find persistante.

                Si tu as eu la patience de rester en ma compagnie jusqu'au bout, et que je n'ai pas fait trop d'erreurs ou contresens (ces cours sont loin pour moi, Perthmâd me corrigera sans doute sur quelques points), j'espère t'avoir fait entrevoir les théories mathématiques qui se cachent aux fondements de OCaml. Pour la correspondance de Curry-Howard, comme référence accessible en ligne tu as Lambda-calculus, types and models de Jean-Louis Krivine. En ce qui concerne le système Coq, il y a un ouvrage collaboratif Homotopy Type Theory (sous creatives-commons, écrit en utilisant git) ou cet article sur le site Images des Maths du CNRS.


                1. Pour la petite histoire, ce calcul tire son nom d'une notation introduite initialement par Russel et Whitehead dans leur Principia Mathematica (ou apparaît aussi la notion de types). Ces hommes notaient la fonction qui à l'entier a associe son successeur (a -> a+1) ainsi : â.(a+1). Church voulût reprendre cette notation, mais son éditeur ne sachant pas mettre des accents circonflexes sur n'importe quelle lettre, il lui proposa de mettre un lambda majuscule devant la lettre à la place. En OCaml on l'écrirai fun a -> a + 1, mais en Haskell \a -> a + 1 où l'antislash rapelle le lambda minuscule. 

                2. Comme le dit M. Krivine dans son artcicle du programme de Hilbert aux prgorammes tout court c'est une peu plus compliqué que cela : « Nous comprenons mieux, maintenant, la nature de notre jeu mathématique, si mystérieux et si addictif : nous manipulons des programmes. Mais, attention, ce n'est pas de la programmation, puisque nous écrivons des programmes sans connaître leur spécification, et que la partie la plus difficile (donc la plus plaisante) du jeu consiste justement à la trouver. » 

                Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

                • [^] # Re: Le web

                  Posté par (page perso) . Évalué à 7.

                  Merci beaucoup pour ce commentaire détaillé.

                  • [^] # Re: Le web

                    Posté par (page perso) . Évalué à 5.

                    Merci beaucoup pour cet euphémisme. ;)

                    • [^] # Re: Le web

                      Posté par . Évalué à 3.

                      De rien messieurs, j'espère n'avoir pas été trop confus, ni trop abstrait dans ma présentation. Je viens de commencer la thèse de Perthmâd, et dans ses prolégomènes vous pourrez y trouver une exposition plus détaillée du sujet. On y trouve en particulier :

                      • les règles de typage du lambda calcul simplement typé (sans variants, ni tuples) à la page 25 ;
                      • celles du lambda-calcul avec variants et tuples à la page 27 ;
                      • les règles d'inférences de la logique propositionnelle intuitionniste page 30.

                      Puis en haut de la page 33, il montre l'identité formelle entre deux sous-ensembles de ces règles (ce en quoi consiste la correspondance de Curry-Howard) sous la forme d'un tableau de deux lignes et quatre colonnes (la quatrième correspondant à ce que j'ai dit au sujet du modus ponens). Pour les autres règles, il vous suffit de les comparer vous même.

                      Quelques compléments pourront vous être utiles pour comprendre certaines de ses notations. D'abord sur le lambda-calcul, vous n'avez qu'à lire le lambda-terme Lx.t (le L remplace le lambda minuscule) comme l'expression OCaml fun x -> t. Enfin pour ce qui est du lien entre multiplication-conjonction et addition-disjonction (type produit et type somme), constatez que A et (B ou C) = (A et B) ou (A et C) : loi de distribution comme dans les anneaux. Cette idée vient de la théorie générale des algèbres de Boole que l'on peut définir comme des corps dans lesquels tout élément est son propre carré (A et A = A) : l'algèbre de Boole a deux éléments (true et false) étant la plus simple de toutes.

                      Pour information, le principe de cette correspondance peut être étendu au typage de protocole réseau. Le prix jeune chercheur INRIA a été attribué à Véronique Cortier qui travaille, entre autre, sur le projet Belenios (système sécurisé de vote en ligne); système qui cherche un développeur OCaml pour le développement de sa plateforme Web : c'est pas un truc cool en France ?! ;-)

                      Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

        • [^] # Re: Le web

          Posté par . Évalué à 2.

          Pour le web que reproches tu à Ocsigen et pour le xml à la bibliothèque xmlm ?
          Il me semble d'ailleurs que Ocsigen utilise cette dernière pour la production du code html, dont la bonne formation est garantie par le système de type de OCaml (pas de besoin du html validator).
          Le projet Ocsigen développe aussi js_of_ocaml pour compiler du code Ocaml vers javascript (et qui tourne des fois plus vite que du bytecode OCaml), ce qui permet par exemple de faire tester des programmes OCaml dans un navigateur comme le font OCaml Pro avec leur logiciel alt-ergo.

          Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

          • [^] # Re: Le web

            Posté par (page perso) . Évalué à 4. Dernière modification le 11/09/15 à 21:35.

            Je ne leur reproche rien, mais ils ne répondent pas à ce dont je parle : ocsigen (enfin plutôt tyxml) garantie que ma page html est conforme au W3C. Ça peut intéresser les boites qui veulent poster des offres d'emploi sur le forum, mais ne me permet pas de construire un serveur conforme à un wsdl, alors que java permet de faire ça (assez) simplement à travers axis.

            De la même manière, j'aimerai bien pouvoir disposer d'une librairie OCaml qui me permet de m'interfacer avec un webservice existant, en me garantissant que les paramètres d'appels sont conformes à la définition du service.

            Pour la transformation XSL, on peut imaginer un schéma XSD comme un type, et la transformation comme une fonction qui transforme un XSD d'entrée vers un XSD de sortie. Par exemple quelque chose comme ça :

            val apply_xsl: ('a XSD.t, 'b XSD.t) XSL.t -> 'a XML.t -> 'b XML.t

            Je rêverai de disposer d'une librairie qui me lèverai une erreur de typage si ma transformation XSL ne permet pas de valider cette signature, à la compilation bien sûr. Je sais que c'est possible, le langage le permet, mais pour l'instant je ne vois pas d'évolution dans ce sens.

            Je suis un grand fan d'OCaml. Quand je passe sur du Java j'ai l'impression de bégayer à force de répéter mes déclaration1 , mais il faut reconnaître que Java dispose d'un plus grand éventail de solutions pour s'interfacer avec le web. Si OCaml veut réellement prendre l'avantage sur les autres langages, ça n'est pas en prouvant que mon arbre rouge-noir est bien équilibré grâce aux GADT, c'est en s'interfaçant avec le monde extérieur tout en conservant le même niveau d'exigence quand au typage des données.


            1. je pense avec horreur a des déclarations comme int[] myIntArray = new int[]{1,2,3}; 

      • [^] # Re: Le web

        Posté par (page perso) . Évalué à 1.

        Le projet Babel permet de transpiler de l'ES6/7 vers le JavaScript des navigateurs pour pouvoir profiter des dernières avancées du langage côté client. Je pense que c'est ce genre de projet qui permet de rendre JavaScript "supportable" pour certains.

        Après, je m'interroge quand même sur ce que vous appelez "communauté incompétente" toi et d'autres intervenants plus bas. Sur le web, on a quand même l'occasion de tomber assez rapidement sur des gens qui savent ce qu'ils font en JavaScript. Je veux dire, OK, y'a des gens qui font n'importe quoi, mais est-ce que cela est vraiment un handicap pour pratiquer ce langage au quotidien ? Je ne le pense pas. J'ai même l'impression que des gens avec un profil de "développeur fonctionnel" commencent à s'emparer de l'outil JavaScript depuis qu'il évolue vers quelque chose de sympathique. C'est comme ça qu'on commence à retrouver de l'immutable, de la composition, de l'utilisation de fonctions d'ordre supérieur, etc.

        • [^] # Re: Le web

          Posté par . Évalué à 3.

          Comme tu le dis très bien, ça rend le javascript "supportable". Elm et Purescript sont, ÀMHA, le future. Au en tout cas le future sont les langages qui se compilent vers JavaScript (avec une préférence perso pour Elm et PureScript)

          Pour répondre à ta deuxième partie, fait que la communauté soit incompétente ne change absolument rien du langage si tu code dans ta cabane dans la forêt. Mais en réalité, tu utilise des bibliothèques logicielles. Et parce que la communauté est vraiment incompétente elle ne rend pas compte de la mauvaise qualité des bibliothèques, et ces bibliothèques en questions deviennent standard. Et un jour tu utilise une bibliothèque (dans mon cas c'était Select2.js) et je me rend compte d'un bug ou d'une fonctionnalité manquante. Je cherche à le résoudre ou à l'ajouter, commence à lire le code pour faire une pull-request, et là… Kaboum… Je me rend compte… Le code spaghetti, le bug que je cherchais a résoudre avait ses racines bien plus profond dans le code (le bug aurait été pu résolu avec un simple if, mais le problème se posait bien avant que le code n'atteigne cette ligne de code), plein de valeur codées en dur, … Un vrai cauchemar.

          Et mon expérience s'est répété avec une multitude d'autres bibliothèques considérées standard.

          Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

  • # R+D @ Nexedi

    Posté par . Évalué à 7.

    Nexedi here (et je suis Allemand, donc pardonnez mon Français…) Certains de mes collègues suivent cette journal et nous pouvons contribuer quelques informations:

    Concernant R+D à Nexedi:
    - Nous participons habituellement dans les projets R+D. NEO (www.neoppod.org) était le résultat d'un de ces projets. Nous sommes l'équipe responsable pour NEO, parce que nous utilisons NEO comme un alternative à ZEO pour ERP5 (www.erp5.com) et Wendelin (www.wendelin.io).

    Nos projets actuellement:
    DREAM | http://dream-simulation.eu/
    = Simulation d'allocation pour les tâches de la fabrication industrielle
    = à un certain point une alternative open source à des logiciels comme "Plant Simulation"

    WENDELIN | http://www.wendelin.io/
    = Open Source Big Data Platform = une stack avec SlapOS (www.slapOS.org), NEO, ERP5 + calcul "out-of-core" + bibliothèques scientifiques par example scikit-learn, jupyter, pandas

    PRISTINE | http://ict-pristine.eu/
    = Kit de développement logiciel RINA pour le prototype IRATI Linux
    = Réseaux programmables

    OPEN PAAS | http://open-paas.org/
    = plateforme de collaboration de la génération suivante
    = une alternative open source à Google Docs, Office365 etc

    Info sur nos sujets de recherches, les innovations et plus peut être trouvé sur www.nexedi.com/innovation. Aussi, nous avons commencé à bloguer à propos des choses dignes d'intérêt dans www.nexedi.com/blog/

    Concernant le recrutement:
    - Nous recrutons principalement par 6 mois des stages, car il donne aux candidats du temps de contribuer.
    - Les stagiaires travaillent habituellement sur des projets de recherche avec nous. Pour lire leurs expériences, visitez www.nexedi.com/team
    - Nous sommes juste une petite équipe, mais nous jetons un œil à toutes applications. Pour être sérieusement pris en considération, les candidates doivent avoir une certaine "superpuissance" difficile à obtenir.

    Vous êtes bienvenus à poser des questions.

    • [^] # Re: R+D @ Nexedi

      Posté par . Évalué à 2.

      Question: vous avez des personnes à temps plein ou principalement des stagiaires ? Est-ce que les personnes à temps plein travaillent sur ces projets ? Que font des personnes à temps plein ? Est-ce que vous faites que du Zope 2 / Python ? Vous recruter des non-stagiaire ?

      Question: Do you have full time employee or is it mainly interns? Are your full-time employees working on these projects? What are full-time employees doing? Are you only doing Zope 2 and Python? Do you have any non-trainee position?

      • [^] # Re: R+D @ Nexedi

        Posté par . Évalué à 3.

        En ce moment nous sommes ~25 (Française, Japonais, Chinois, Brésilien, Canadian, Indien, Allemand) a Lille - inclus 7 stagiaires.

        Travail dans les projets R+D … c'est un mélange. À Wendelin par exemple, nous avons deux développer temps plein et trois stagiaires.

        Au général, nous fournissons des services de customisation pour notre logiciel libre ERP5, SlapOS et Wendelin (http://www.nexedi.com/service), principalement Python et JavaScript.

        Recruter des non-stagiaire… pas activement à la recherche, mais ne pas hésiter à envoyer un cv (adresse sur http://www.nexedi.com/jobs). +1 si vous connaissez Big Data et peut montrer à gérer toutes les tâches bizarre de développement jeté à vous.

    • [^] # HS langues

      Posté par (page perso) . Évalué à -2.

      (et je suis Allemand, donc pardonnez mon Français…)

      Je rêve de parler aussi bien allemand que tu parles français…
      Ce qui m'épate toujours chez les Allemands, c'est leur capacité à se rabaisser sur leur niveau de langue (qui est équivalent à la capacité des Français à se rehausser sur leur niveau de langue :) )

      • [^] # Re: HS langues

        Posté par . Évalué à 7.

        Juste une question. As-tu écrit ce commentaire pour féliciter frequent, qui s'exprime en effet de manière honorable en français, ou juste pour barbouiller de vomi tes compatriotes, caricaturés en généralités foireuses ?

        • [^] # Re: HS langues

          Posté par (page perso) . Évalué à -3. Dernière modification le 11/09/15 à 11:47.

          As-tu écrit ce commentaire pour féliciter frequent,

          Il me semble que c'est assez évident.
          Si il faut être explicite : pour le féliciter, évidement.
          Je ne compte plus le nombre d'Allemands qui me disent "j'ai honte, excusez-moi, je ne parle pas très bien français" pour ensuite te faire une discussion soutenue en français.

          tes compatriotes, caricaturés en généralités foireuses ?

          Désolé d'avoir de l'expérience en la matière (que ce soit avec les allemands qu'avec les français).
          Un "écrit, lu, parlé" de la part d'un français sur son CV fait toujours rire, surtout les allemands. C'est une réputation internationale que de ne pas croire le niveau de langue quand un français dit qu'il parle bien une langue (c'est aussi connu que de savoir en un mot que la personne est française, tellement les français, moi compris, gardent l'accent : je dis "Hallo" à un allemand, j'ai souvent le droit "ha Franzose". Des faits, rien que des faits)

          "Vomi sur mes compatriotes" dès qu'on ne dit pas une chose genre "les français sont trop biens", que du bonheur à lire ce genre de caricature, tu tombes pile dans la "caricatures des français" au passage, tu n'améliores pas leur réputation… dont tu apportes une pierre à la démonstration qu'elle n'est pas usurpée.

          • [^] # Re: HS langues

            Posté par . Évalué à 9. Dernière modification le 11/09/15 à 12:09.

            Des faits, rien que des faits

            Non, c'est une anecdote. Et le reste, c'est pas mal ton fantasme.

            Linuxfr, le portail francais du logiciel libre et du neo nazisme.

          • [^] # Re: HS langues

            Posté par . Évalué à 5. Dernière modification le 12/09/15 à 09:08.

            (c'est aussi connu que de savoir en un mot que la personne est française, tellement les français, moi compris, gardent l'accent : je dis "Hallo" à un allemand, j'ai souvent le droit "ha Franzose". Des faits, rien que des faits)

            Pour être tout a fait honnête, un Allemand, ça se grille de loin à l'accent aussi, hein, qu'il parle anglais ou français.
            En règle générale, il suffit d'un chtouille d'habitude pour griller à peu près n'importe quel accent national en quelques mots.

            NdM: commentaire réédité par l'équipe de modération

            Linuxfr, le portail francais du logiciel libre et du neo nazisme.

            • [^] # Re: HS langues

              Posté par (page perso) . Évalué à 5.

              Pas forcément que l'accent d'ailleurs. Un non-natif d'une langue va souvent employer un vocabulaire et des tournures de phrases proches de sa langue d'origine. Même quand ce dit vocabulaire ou ces tournures sont peu usités dans la langue cible.

              Sans compter parfois les faux-amis typiques d'une langue à une autre, qui ne sont pas identiques.

            • [^] # Re: HS langues

              Posté par . Évalué à 5.

              Je suis impressionné (peut être parce que je suis germanophile) que "boche" soit utilisé sur ce site, et personne ne dise rien. Alors que je suis sur que si quelqu'un eut utilisé "bougnoule", "boucaque" ou "négro" ils se serait fait moinssé grave.

              Est-ce que mélenchon a enfin réussi à dé-diaboliser la germanophobie, tout comme Marine Lepen a réussi à faire passer son parti de catho intégriste pour un parti progressiste?

              Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

              • [^] # Re: HS langues

                Posté par (page perso) . Évalué à 4.

                Corrigé, merci. Au passage j'ai rajouté les accents manquants. Sinon s/dis/dit/ sur ta signature.

                • [^] # Re: HS langues

                  Posté par . Évalué à 1.

                  Bien vu! Corrigé merci :) .

                  Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

                • [^] # Re: HS langues

                  Posté par . Évalué à 3.

                  Dis Benoît, c'est quoi, cette nouvelle politique de modération ? Vous "corrigez" les messages qui vous déplaisent ? :-o

                  Il faudrait au minimum que vous fassiez une dépêche pour annoncer et justifier votre nouvelle politique. Personnellement, je n'ai pas du tout envie qu'on "corrige" mes messages pour satisfaire une quelconque manie du politiquement correct. Si quelqu'un n'aime pas un commentaire, qu'il le dise, mais qu'on ne se mette pas à le modifier dans le dos de l'auteur…

                  • [^] # Re: HS langues

                    Posté par (page perso) . Évalué à 6.

                    Les règles de modération n'ont pas changé depuis plusieurs années.

                    Le commentaire n'est pas modifié dans le dos de l'auteur : une mention explicite a été ajoutée dans le commentaire, et j'ai ajouté un commentaire explicatif ensuite.

                    • [^] # Re: HS langues

                      Posté par . Évalué à 2.

                      Les règles de modération n'ont pas changé depuis plusieurs années.

                      Leur interprétation, si. L'impolitesse est courante dans les commentaires (attaques personnelles, dénigrement, etc.), et elle n'est quasiment jamais sanctionnée. Ton action constitue donc une rupture avec la politique en vigueur jusqu'à maintenant.

                      • [^] # Re: HS langues

                        Posté par (page perso) . Évalué à 8.

                        Toujours le même problème de la modération: je traite ce que je vois et ce qui est signalé par les lecteurs. Et l'équipe de modération en général fait de même. Sachant que de toute façon, on nous reprochera, a posteriori, d'avoir fait, de ne pas avoir fait et d'avoir mal fait. En parlant d'attaque personnelle, tu t'y livres toi même un peu plus bas en me prenant à partie nominativement, comme si j'étais le seul membre de l'équipe de modération, et comme si tu avais toi-même fait l'effort de signaler les commentaires que tu évoques.

                        • [^] # Re: HS langues

                          Posté par . Évalué à 2.

                          comme si j'étais le seul membre de l'équipe de modération

                          Désolé, mais tu es le seul que j'ai vu éditer des messages. Alors soit les autres ne s'y livrent jamais, soit ils le font silencieusement (ce qui serait malhonnête), soit c'est tellement rare que je ne suis jamais présent quand ça arrive.

                          et comme si tu avais toi-même fait l'effort de signaler les commentaires que tu évoques.

                          Vu qu'il n'y a pas de bouton pour signaler un message, je ne vois pas trop où j'irais le faire. Par ailleurs, j'ai vu des modérateurs participer à des discussions où des propos étaient manifestement insultants, et ils ne sont pas intervenus pour modérer ces messages. J'en déduis qu'il n'y a pas de volonté consistante de faire cesser ces pratiques.

                          Ce qui est choquant ici, c'est ce changement intempestif dans une pratique de modération qui est d'ordinaire, j'insiste, quasi-inexistante. Personnellement, une pratique de modération plutôt active ne me dérange pas, mais à condition qu'elle soit consistante et régulière.

                          • [^] # Re: HS langues

                            Posté par (page perso) . Évalué à 8.

                            Vu qu'il n'y a pas de bouton pour signaler un message, je ne vois pas trop où j'irais le faire.

                            Le système de suivi des suggestions et des bugs du site, le courriel, XMPP, l'IRC, la tribune de rédaction, ce ne sont pas les endroits qui manquent en attendant d'avoir un bouton de signalement.

                            Ce qui est choquant ici, c'est ce changement intempestif dans une pratique de modération qui est d'ordinaire, j'insiste, quasi-inexistante. Personnellement, une pratique de modération plutôt active ne me dérange pas, mais à condition qu'elle soit consistante et régulière.

                            Choquant me paraît un bien grand mot mais admettons. Ça reste difficile d'avoir des exigences de consistance et de régularité avec des bénévoles. Je suis le plus actif en modération a posteriori et je pense être le premier à me plaindre lorsque je ressens un manque d'aide sur le sujet. Mais ça n'empêche pas que tous les modérateurs ne lisent pas l'intégralité du site, que la partie lue ne l'est pas forcément immédiatement à la mise en ligne et que pendant les vacances d'été le nombre de modérateurs est plus réduit alors que les visiteurs semblent plus échaudés (clairement en terme d'activité en modération, cet été fut intense). Seul un algorithme pourrait être consistant et régulier, et je doute qu'un algorithme en modération a posteriori soit souhaitable et possible ici.

                  • [^] # Re: HS langues

                    Posté par . Évalué à 3.

                    J'ai failli répondre quand j'ai vu la modif. Pas tant pour le remplacement d'un mot que pour les accents ajoutes, ca fait bizarre de changer le message au dela de la partie insultante. Apres c'est pas comme si mon commentaire était un chef d'oeuvre de la littérature française, alors bon.
                    Note que ce n'était pas voulu insultant pour 2 sous. J'ai appris hier soir la connotation du mot, pour moi c'etait juste un surnom rigolo pour allemand. M'enfin, si yen a concerné que ca gene, j'utiliserais autre chose a l'avenir.

                    Le cote pervers de l'avoir signale c'est que maintenant tout le monde parle de "travail de pro" dans ce fil, si le but était d'éviter la mention d'un mot insultant, c'est réussi.

                    Linuxfr, le portail francais du logiciel libre et du neo nazisme.

              • [^] # Re: HS langues

                Posté par (page perso) . Évalué à 1.

                j'avais tiqué aussi, autant teuton pourrait passer, il y a certains termes qui conservent une aura nauséabonde de notre histoire commune France/Allemagne :/

                • [^] # Re: HS langues

                  Posté par . Évalué à 5.

                  Même si c'est un terme qui rappelle la guerre, pour moi c'est pas un terme haineux. C'est juste un terme péjoratif. Pas forcément très sympa, mais pas raciste ou insultant.

                  On peut également citer les "Fritz" ou es "Chleus" qui sont du même acabit. Mais bon aller modérer boche, je trouve que c'est un peu du zèle car pour moi son message n'est pas haineux et le simple d'utiliser le mot boche ne suffit pas à rendre en tant que tel.

                  Le politiquement correct a gagné DLFP :-/

                  • [^] # Re: HS langues

                    Posté par (page perso) . Évalué à 3.

                    Même si c'est un terme qui rappelle la guerre, pour moi c'est pas un terme haineux.

                    pour en avoir discuté longuement avec un franco-germanique (double nationalité), ce terme ainsi que les deux autres que tu ajoutes ont un poids plus important que tu le penses àmha, alors que teuton qui pourrait paraître du même ordre est beaucoup moins connoté.

                    Le politiquement correct a gagné DLFP :-/

                    Je ne crois pas : prendre en compte le fait qu'un intervenant allemand s'est donné le mal de poster des commentaires en français sur ce journal rentre peut-être en ligne de compte aussi.
                    Cela me permettrait d'ailleurs de compléter https://linuxfr.org/users/baud/journaux/de-l-accueil-dans-la-communaute-linuxfr d'ailleurs, qui est un de nos marronniers

                    • [^] # Re: HS langues

                      Posté par . Évalué à 1. Dernière modification le 12/09/15 à 15:54.

                      Je ne crois pas : prendre en compte le fait qu'un intervenant allemand s'est donné le mal de poster des commentaires en français sur ce journal rentre peut-être en ligne de compte aussi.

                      En ligne de compte pour quoi ? Les termes du genre "boche", "schleu", "fritz", etc. ne sont pas liés à une haine irraisonnée des Allemands par les Français, mais à des épisodes précis de notre histoire. Je ne crois pas que la gentillesse d'un intervenant allemand puisse effacer les première et seconde guerres mondiales. On peut penser que certaines périodes de l'histoire ont été "nauséabondes", mais elles ont existé.

                      Et, oui, le terme "boche" en présence d'un Allemand est plutôt malpoli. Mais si la modération de Linuxfr veut sanctionner l'impolitesse dans les commentaires, il faudra bosser sérieusement, parce que des messages impolis, il y en a pas mal sans que rarement Benoît Sibaud ne daigne intervenir…

                      • [^] # Re: HS langues

                        Posté par (page perso) . Évalué à 5.

                        Les termes du genre "boche", "schleu", "fritz", etc. ne sont pas liés à une haine irraisonnée des Allemands par les Français, mais à des épisodes précis de notre histoire.

                        Oui, mais l'Histoire appartient au passé, marteler sans cesse ces épisodes n'aide pas à apaiser les tentions et les différences culturelles liées à ces éléments.

                        Je ne crois pas que la gentillesse d'un intervenant allemand puisse effacer les première et seconde guerres mondiales.

                        Aujourd'hui il n'y a plus vraiment d'allemands responsables de ces épisodes tragiques, réutiliser les injures du passé et les rendre coupable d'une situation qu'ils n'ont pas vécu est je pense malheureux.

                        On peut penser que certaines périodes de l'histoire ont été "nauséabondes", mais elles ont existé.

                        On ne doit pas oublier le passé, pour éviter de refaire les mêmes conneries. Mais on ne doit pas faire porter à tout un peuple la responsabilité d'un acte auquel ils n'ont même pas participé.

                      • [^] # Re: HS langues

                        Posté par . Évalué à 6.

                        En ligne de compte pour quoi ? Les termes du genre "boche", "schleu", "fritz", etc. ne sont pas liés à une haine irraisonnée des Allemands par les Français, mais à des épisodes précis de notre histoire. Je ne crois pas que la gentillesse d'un intervenant allemand puisse effacer les première et seconde guerres mondiales. On peut penser que certaines périodes de l'histoire ont été "nauséabondes", mais elles ont existé.

                        C'est complètement déplacé de rappeler régulièrement ces épisodes de l'histoire avec un de ces mots.

                      • [^] # Re: HS langues

                        Posté par . Évalué à 3. Dernière modification le 12/09/15 à 19:15.

                        En ligne de compte pour quoi ? Les termes du genre "boche", "schleu", "fritz", etc. ne sont pas liés à une haine irraisonnée des Allemands par les Français, mais à des épisodes précis de notre histoire.

                        Certaine personne associent le terme "bougnoule" à la guerre d’Algérie. (Et d'autre pense que c'est empreinté au wolof ñuul = qui est noir) Ça veux dire que je peux l'utilisé de manière non raciste?

                        Je ne crois pas que la gentillesse d'un intervenant allemand puisse effacer les première et seconde guerres mondiales. On peut penser que certaines périodes de l'histoire ont été "nauséabondes", mais elles ont existé.

                        Ces salauds de rosbif! Ils nous ont brulé Jeanne d'arc!!

                        Je ne crois pas que la nouvelle génération d'anglais n'aie quoi que ce soit à voir avec le meurtre de jeanne d'arc. Et je crois pas non plus que les allemands nés après 1935 aie quelque chose à voir avec les deux guerres mondiales. Si tu crois que c'est le cas, alors je te considère responsable pour le meurtre de millions de vietnamiens pendant la guerre d'Indochine.

                        Ressasser l'histoire ne sert à rien. Mais bon, puisque tu tiens à remuer la merde allons y :

                        • L'Allemagne et la France cherchaient tout deux à entrer en guerre, n'importe quelle raison aurait suffit pour la première guerre mondiale. D'ailleurs personne n'est sur de qui a commencer la première guerre mondiale.
                        • Vainqueurs de la première guerre mondiale, les français et les anglais ont tenu à punir les allemands en leur infligeant une dette enorme. Plus tard, cette dette a été responsable de l'arrivée au pouvoir d'Hitler et de la seconde guerre mondiale. Tu remarqueras qu'après la seconde guerre mondiale, l'annulation de la dette allemande (avec le plan marchall) a conduit a la paix. Dans un sens, les alliés sont responsable pour la seconde guerre mondiale.
                        • Hitler et les nazis n'ont jamais été Élu par le peuple allemands. La raison principale était que la république de Weimar donnait de gros pouvoir au partis minoritaires (comme l'assemblée nationale française. Et d'ailleur ça va jouer un tour au PS et à l'UMP quand le front national va être élu à 60% de l'assemblée alors qu'il ne représente que 30% des suffrage.)
                        • Pétain a été nommé, et n'a jamais passé par le peuple pour assoir son pouvoir (tout comme Hitler). Est-ce que les français sont des pétinistes? Si non, j'aimerai savoir pourquoi les allemands sont des nazis…
                        • Le régime de vichy a donne des juifs aux nazis. Est-ce que les français d'aujourd'hui sont responsables de la mort de ces juifs? Si, non, j'aimerai savoir pourquoi les allemands d'aujourd'hui le sont…

                         

                        Apparemment mélanchon a réussi à répandre sa germanophobie… Mais c'est pas grave, mélanchon n'a rien à voir avec marine lepen, lui il est de gauche!

                        Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

                        • [^] # Re: HS langues

                          Posté par . Évalué à -1. Dernière modification le 12/09/15 à 19:27.

                          Je n'ai pas dit que le mot "boche" était admirable ou normal, mais son utilisation existe et il est contre-productif de vouloir le maquiller en éditant les messages de ceux qui l'utilisent.

                          Quant à "mélanchon", ce n'est pas de ma faute si tu fais une fixette. Et les délires sur la "germanophobie" de quiconque critique la politique allemande (que Mélenchon est loin d'être le seul à critiquer, donc), je les laisse aux bisounours qui pensent que le débat ne souffre pas la moindre aspérité et qu'il faudrait taire les désaccords sous peur de passer pour un méchant xénophobe.

                          • [^] # Re: HS langues

                            Posté par . Évalué à 2.

                            Mais je critique et suis en parfait désaccord avec la politique de Mme Merkel et de M. Schäuble.

                            Le problème avec Mélanchon c'est la même problème que j'ai avec marine le pen. Marine Le Pen utilise "l'islam", "les musulmans", "les groupes politico-religieux", et quand elle est accusée de racisme, elle répond "je parle des extrémistes!". Mélanchon, qui critique Marine Le Pen alors qu'ils sont très similaires, fait la même chose, il utilise "les allemands", "la politique allemande", "l'allemagne" dans sa rhétorique, et quand ils est accusé de germanophobie il répond très rapidement "mais je parle de la politique libérale" ou "je veux dire la politique de Mme Merkel".

                            Donc s'il parle de la politique de Mme Merkel, pourquoi ne pas être prècis dès le debut? Tout simplement parcequ'il veux parler aux électeur germanophobe. Tout comme je pense que marine lepen veux rassembler les électeurs qui ont peur des noir et des arabes.

                            D'ailleurs, il a même réussi à te convaincre. Tu dis "la politique allemande" au lieu de dire "la politique de Mme Merkel" ou "la politique du CDU allemand".

                            Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

                            • [^] # Re: HS langues

                              Posté par . Évalué à 3.

                              Donc s'il parle de la politique de Mme Merkel, pourquoi ne pas être prècis dès le debut?

                              Parce que Mme Merkel est la dirigeante élue par les citoyens allemands. La distinction que tu fais est totalement gratuite : on parle quotidiennement de « la politique de la France » pour désigner celle de Hollande et du gouvernement Valls, sans que cela ne choque personne.

                              D'ailleurs, il a même réussi à te convaincre. Tu dis "la politique allemande" au lieu de dire "la politique de Mme Merkel" ou "la politique du CDU allemand".

                              La politique du CDU allemand est soutenue par le SPD depuis des années. Ce sont les deux partis majoritaires dans la vie politique allemande. Leur politique correspond à une demande majoritaire de l'électorat allemand. L'expression « politique allemande » est largement justifiée.

                              D'ailleurs, il a même réussi à te convaincre

                              Tu peux garder tes fantasmes pour toi. Je n'ai pas besoin de Mélenchon (dont je n'ai pas lu le bouquin, mais que je suis tout de même capable d'orthographier correctement) pour avoir un avis sur la politique allemande.

                        • [^] # Re: HS langues

                          Posté par . Évalué à 4.

                          ça va jouer un tour au PS et à l'UMP quand le front national va être élu à 60% de l'assemblée alors qu'il ne représente que 30% des suffrage.)

                          Si ça ne jouait un tour qu'au PS et à l'UMP …

          • [^] # Re: HS langues

            Posté par (page perso) . Évalué à 2.

            Un "écrit, lu, parlé" de la part d'un français sur son CV fait toujours rire, surtout les allemands.

            Ça me fait rire, et ce qu'importe qui l'emploie. Cela ne signifie rien.
            Le mieux est je pense d'utiliser l'échelle européenne qui a le mérite de se positionner plus facilement et que chacun des deux partis savent à quoi s'attendre avec le niveau affiché. En plus la plupart des diplômes de langue (tous ?) donnent la correspondance entre le résultat et cette échelle.

            • [^] # Re: HS langues

              Posté par (page perso) . Évalué à 2.

              Cela ne signifie rien.

              c'est C1 l'équivalent de lu, écrit, parlé ? C2 ce serait bilingue ? (ayant appris l'anglais avec des profs français jusque la terminale, je ne vois pas comment je réussirais à prétendre être bilingue un jour… même si prépa + école, c'était des anglais de souche, difficile de rattraper 7 ans d'enseignement à l'écriture et la grammaire de la langue…).
              En gros, au Fosdem j'échange sans trop de difficultés et même si je dois rester un peu plus attentif que si c'était en français, je réussis à bien suivre les confs'.

              Bizarrement, en espagnol où j'ai eu un prof' excellent, j'ai beaucoup moins de difficulté à m'exprimer (bon, la palabra viva était un tout petit mieux comme bouquin que le mot et l'idée en même temps…).

              Des trucs comme le TOEFL (où j'ai eu 650 de mémoire) ou le TOIC n'évaluent pas la capacité à s'exprimer iirc. Je voyais bien la différence entre mes capacités et celle des 4 bilingues de mon groupe d'anglais… (eux avaient généralement plus de 670 au TOEFL…). Cela s'améliore avec la lecture en anglais (Stephen King, LOTR, Larry Niven/Jerry Pournelle…) et les séries en anglais (mieux vaut flinguer les sous-titres français qui dérangent l'attention), mais le déclic est surtout lorsqu'on commence enfin à réfléchir en anglais.

          • [^] # Re: HS langues

            Posté par . Évalué à 6.

            je dis "Hallo" à un allemand, j'ai souvent le droit "ha Franzose". Des faits, rien que des fait

            Et c'est aussi une forme de politesse quand un étranger fait l'effort de s'exprimer dans la langue du coin de pas lui faire remarquer lourdement dès la première phrase, dès le premier mot mal prononcé ou dès la première faute de grammaire.

            Des faits, rien que des faits.

            • [^] # Re: HS langues

              Posté par . Évalué à 5.

              Et avant que ca degenere en troll, la plupart des allemands avec qui j'ai discuté, en anglais il est vrai, ne m'ont jamais fait ce genre de remarques désobligeantes.

              • [^] # Re: HS langues

                Posté par (page perso) . Évalué à -2. Dernière modification le 11/09/15 à 13:47.

                Avant que ça dégénère en troll, je dirai que ce n'est pas obligatoirement vu comme désobligeant, c'est souvent, de ce que j'ai constaté, plus une envie de discuter avec un français et de pratiquer leur français appris à l'école (bon, je vais me faire traiter de troll, mais contrairement aux français qui n' "aiment pas" les allemands, non je ne pense pas à Mélenchon la, les allemands aiment généralement rencontrer des français et débattre)

                Il ne faut pas voir de la désobligeance partout, surtout avec des personnes de culture différente.

                (et surtout, je ne pensais pas du tout que ma remarque anodine car archi-connue attirerait ce genre de réaction…)

                PS : j'en profite, "dès le premier mot mal prononcé ou dès la première faute de grammaire", heu… Justement, on ne parle pas de la France où on te fait remarquer dès la première faute que tu n'as pas bien parlé (ou on te regarde comme un débile ou on te regarde de haut, c'est du vécu quand je suis avec des allemands en France), en Allemagne (comme en UK, USA…) on accepte généralement tes fautes et on se concentre sur la compréhension, c'est très agréable. Argh, je vais encore me prendre un "vomi tes compatriotes" pour ne pas dire que du bien des français…

                • [^] # Re: HS langues

                  Posté par . Évalué à 5. Dernière modification le 11/09/15 à 14:10.

                  j'en profite, "dès le premier mot mal prononcé ou dès la première faute de grammaire", heu… Justement, on ne parle pas de la France où on te fait remarquer dès la première faute que tu n'as pas bien parlé (ou on te regarde comme un débile ou on te regarde de haut, c'est du vécu quand je suis avec des allemands en France),

                  C'est souvent ce qu'on dit, mais je l'ai jamais vraiment constaté. A chaque fois que j'ai remarqué un Francais faire répéter un étranger, c'était bien dans l'esprit de comprendre ce qu'il voulait dire et de rester ouverts, le francais étant une langue vraiment pénible.

                  Après il est vrai que je n'habite pas Paris. :p

                  comme en UK

                  La pour le coup je suis pas d'accord. Les Anglais ont la réputation de penser détenir l'anglais de référence et oublient un peu rapidement que tout le monde ne parle pas anglais si bien qu'eux. J'ai eu beaucoup de collègues anglais qui étaient sans pitié sur le débit de parole au téléphone, et même si on leur demandait de reformuler ou de ralentir le débit, rien a faire, t'as qu'a parler anglais correctement et ils repartaient de plus belle. Après je suis peut etre mal tomber, mais il me semble que les Anglais ont une réputation de bourriques sur le sujet.

                  Ma vie à moi: un coup j'ai eu un entretien de recrutement avec un anglais. J'ai tenu la discussion sans accro et au bout de 15 minutes, j'ai eu le malheur de faire répéter un mot que je n'avais pas compris, j'ai eu le droit a un cinglant: "vous me faites répéter, ca n'est pas acceptable, au revoir".

                  Bon je généralise pas, mais non clairement coté UK, on peut pas dire qu'ils soient tous tolérants :-)

                  • [^] # Re: HS langues

                    Posté par . Évalué à 2.

                    La pour le coup je suis pas d'accord. Les Anglais ont la réputation de penser détenir l'anglais de référence et oublient un peu rapidement que tout le monde ne parle pas anglais si bien qu'eux

                    "Y'a l'anglais, et après y'a les patois."

                    "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

                • [^] # Re: HS langues

                  Posté par (page perso) . Évalué à 3.

                  on accepte généralement tes fautes et on se concentre sur la compréhension

                  Effectivement, cela doit être culturel : on t'emmerde tellement avec la grammaire et les dictées que reprendre quelqu'un peut être vu non pas comme un reproche mais plus comme "quelque chose qui évitera de refaire la faute par la suite"…

                  L'écart de culture est flagrant entre les RMLL et le Fosdem :

                  • au Fosdem, tu es accueilli en anglais et cela change pour le français lorsque ton interlocuteur s’aperçoit que tu es français
                  • aux RMLL, c'est souvent français et quand l'interlocuteur ne parle qu'anglais, parfois c'est la pêche à trouver qui pourrait lui répondre :D

                  'fin bon, j'ai terminé à parler en espagnol avec 2 syriens : ils le comprenaient mieux que l'anglais après avoir passé 2 ans en Espagne :-)

    • [^] # Re: R+D @ Nexedi

      Posté par . Évalué à 2. Dernière modification le 11/09/15 à 09:15.

      Vous êtes bienvenus à poser des questions.

      Bon, ça n'a pas grand chose à voir, mais: connais tu un site web allemand un peu similaire à linuxfr ? Avec des discussions communautaires, des trolls, des corrections d'orthographe et de la technique ?

      • [^] # Re: R+D @ Nexedi

        Posté par . Évalué à 1.

        tu peux essayer http://www.pro-linux.de/

        • [^] # Re: R+D @ Nexedi

          Posté par (page perso) . Évalué à 2.

          Très bien merci!

          Sehr schön, danke! :)

          Si j'ai bien compris, tu travailles à Lille? Vous avez des bureaux en Allemagne?

          • [^] # Re: R+D @ Nexedi

            Posté par . Évalué à 3.

            oui, un petite bureau à Munich

            • [^] # Re: R+D @ Nexedi

              Posté par (page perso) . Évalué à 2.

              Ah j'habite à Bonn / Cologne :)

              • [^] # Re: R+D @ Nexedi

                Posté par . Évalué à 1.

                Ach so! Mais comment ça se fait que je ne t'ai jamais vu aux meet-up "Scala Köln Bonn" ? Alors que tu as l'air un peu orienté Funktional Programmierung.

                Note: je n'y ai été que deux trois fois. Je viens de Liège alors ça fait un peu loin après le boulot.

                • [^] # Re: R+D @ Nexedi

                  Posté par . Évalué à 1.

                  Par ailleurs, les meet-up c'est très bien pour qui veut savoir ce qui se fait de cool en Europe. Le projet Spark et analyse de données de meinestadt.de, le web sémantique pour la chaine de télé ARD, les galeries commerciales Galeria Kaufhof travaillent aussi avec Scala et Cassandra il me semble.

                  J'ai parlé aussi avec quelqu'un qui faisait de la détection d'intrusion en Haskell et j'ai obtenu une mission pour une startup qui fait de la géolocalisation et je vais travailler sur du Scala, Cassandra, et plein d'autres choses intéressantes.

                  Bref, allez dans les meet-up de votre ville ! Peut-être surtout ceux qui sont orientés programmation fonctionnelle.

                  • [^] # Re: R+D @ Nexedi

                    Posté par (page perso) . Évalué à 3.

                    Je suis sensé bientôt faire un exposé sur OCaml devant le Rust USer Groups de Cologne, mais c'est pas encore tout à fait officeil :D

        • [^] # Re: R+D @ Nexedi

          Posté par . Évalué à 1.

          Merci! Je vais regarder ça.

  • # As tu déjà fait du python ou du javascript ?

    Posté par (page perso) . Évalué à -5.

    Ce qui est important pour les clients/utilisateurs, ce sont les fonctionnalités que tu leur apporte avec ton logiciel, pas de savoir ce que tu as utilisé comme outil ;-)

    En parlant de miser sur le bon cheval, pour avoir beaucoup de projets en Python, et un peu en Erlang, y'a pas photo en terme de rapidité de développement ;-)

    Je suis peut-être très idiot, mais à part pouvoir me la pêter auprès d'autres devs, je ne vois pas ce qu'Erlang apporte de +, à part avoir du code 14 fois + compliqué et + lent qu'en Python à architecture équivalente.

  • # Ceph

    Posté par . Évalué à -1.

    Premier message pour abonder à celui de MTux. Un article dans GNU/Linux Mag 180 sur la mise en œuvre de Ceph au Cern. 'pas encore lu.

  • # Facile

    Posté par (page perso) . Évalué à 3.

    Va contacter l'assoce des anciens d'une fac, et va voire où se sont placé les docteurs qui sont allés dans l'industrie. Ils font certainement des choses sympas.

  • # ejabberd!

    Posté par . Évalué à 3.

    Il y a ProcessOne qui développe ejabberd écrit en erlang, ce sont des petits franchouillards si je me trompe pas.
    https://fr.wikipedia.org/wiki/Ejabberd
    https://www.ejabberd.im/

  • # Europe

    Posté par (page perso) . Évalué à 3.

    Salut,
    pas du tout une question piège ou pédante, mais par curiosité, tu entends quoi par Europe?

    • [^] # Re: Europe

      Posté par (page perso) . Évalué à 4.

      Généralement, les gens qui parlent d'Europe pour le taf pensent à l'Espace Économique Européen + Suisse (qui à défaut d'avoir signé pour l'EEE ont des accords similaires, c'est juste la forme qui change).
      Après, il faut être honnête, plus on va vers l'est, moins les gens sont intéressés, et ça tend plus ou moins vers l'Europe de l'Ouest façon UNESCO en pratique.

  • # Cool attitude

    Posté par (page perso) . Évalué à 10.

    Ma boite fait aussi des trucs super cools: JEE, .NET, PHP, mysql, SOAP… Toutes les technos à la mode!

    http://devnewton.bci.im

    • [^] # Re: Cool attitude

      Posté par (page perso) . Évalué à 5.

      Un bon petit Java 5 ? Et vous utilisez Clearcase pour versionner le code source ? Mais c'est vraiment la révolution !

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

    • [^] # Re: Cool attitude

      Posté par . Évalué à -6.

      C'est ironique?
      JEE -> à la rigueur scala natif sans les usines à gaz hibernate, spring n co
      .NET -> Non, sérieux, un truc qui t'isole dans une techno proprio… c'est un troll du vendredi?
      PHP -> super la révolution. En terme d'innovation, j'aurais préféré lire node.js en es6
      mysql -> qu'est-ce qui est cool la dedans? Du relationnel de chez mémé…
      SOAP -> bonjour l'usine à gaz, welcome dans l'usine à gaz de description de format de données xml. Je vomis.

      • [^] # Re: Cool attitude

        Posté par . Évalué à 3.

        JEE -> à la rigueur scala natif sans les usines à gaz hibernate, spring n co

        Et tu la fait comment ta dependency injection sans spring (ou guice, ou autre qui merite probablement le qualificatif usine a gaz)?
        J'imagine que tu fais sans, et tu te retrouves avec une appli tres fortement couple, qui est impossible a tester. Tu te retrouves avec un truc pas tellement moins usine a gaz (spring de nos jours, c'est 15 lignes de java dans ton main et des annotations JDK, et a la rigueur 20 lignes de xml), mais intestable et facile a peter.

        Hibernate est un peu moins tranche, effectivement. Si t'as 3 requetes en lecture et 2 en ecriture, effectivement hibernate est overkill.
        Si 90% de ton appli c'est des acces db et que gerer le sql a la main t'offre un ordre de grandeur de performance, hibernate va te gener plus qu'autre chose, oui.

        Des que tu sort de ces deux cas a la marge, comment tu geres ton mapping orm sans hibernate? Et les transactions? Et les diferents niveaux de cache?
        Tu geres tout a la main j'imagine. Et tu te retrouves a reinventer la roue (hibernate fait la meme chose), sauf que tu le feras mal, et que tu passeras un temps fou a ecrire et debugger du code qui n'est pas le tien a ecrire. Et a chaque nouveau gars qui rejoint l'equipe, tu vas perdre un temps fou a le brieffer sur ta super techno in house qu'est pas une usine a gaz.

        Linuxfr, le portail francais du logiciel libre et du neo nazisme.

    • [^] # Re: Cool attitude

      Posté par . Évalué à 6.

      Pas de CORBA ?

    • [^] # Re: Cool attitude

      Posté par . Évalué à 10. Dernière modification le 12/09/15 à 11:14.

      Toutes les technos à la mode!

      En même temps est-ce un but en soit d'utiliser les technos à la mode ?

      Dans une industrie presque incapable d'apprendre de son passé et une science ou il n'y a rien de fondamentalement nouveau depuis des décennies, les trucs à la mode sont en grand majorité soit:

      • Une n-ième réécriture ou rebranding de la même idée qui existaient hier ou était à la mode il y a 5/10 ans
      • Une rupture franche par rapport à une technologie éprouvée et mure pour en prendre totalement le contre pied en oubliant toute la maturité de la technologie de départ et ça prend 10 ans pour revenir a un compromis entre les approches

      Les trucs à la mode sont majoritairement des trucs pas fini, qui ne le seront jamais (nouveau truc à la mode oblige), qui demandent de jeter tout ce que tu as, qui répond à 10% des besoins (en mentant sur ces 10%: oui c'est disponible ça sera en beta dans la prochaine release), et qui sont écrit par des jeunes loups qui ne voient pas qu'ils réinventent la roue.

      Les technos ne sont que des outils pour répondre à un besoin. Il y a beaucoup de chose intéressantes à faire sans tomber dans le hackernews-driven-developpement, et il y aussi plus épanouissant que de réécrire pour la 5ième fois la même chose avec la techno à la mode du moment. Peut-être même que tes utilisateurs seront content que tu te focalises à résoudre leurs problèmes qu'à tout réécrire par ce que c'est vraiment trop INSUPPORTABLE d'écrire "_byte[] buf = new byte[1024];" alors que je préfère ne pas me répéter.

      S’intéresser aux vrais problèmes plutôt que de regarder son nombril de développeur, c'est majoritairement ce qu'il manque à l'industrie…

      • [^] # Re: Cool attitude

        Posté par . Évalué à 1.

        bien résumé.

        je vois émerger des solutions dans mon domaine (l'infra) et elles ne reprennent pas certains des avantages qu'on avait dans "l'ancien monde" (en fait l'actuel hein).

        Exemple du pool de cpu dans un châssis Power :

        Toutes les VM se partagent des core et peuvent céder des cycles lorsqu'elles ne s'en servent pas.
        Cela permet de faire de la surallocation, mutualiser, partager, bref exploiter au mieux son châssis bien cher.

        C'est de la "scalabilité" aussi bien horizontale que verticale, puisque c'est soit une VM soit plusieurs qui se partagent les ressources mais au sein du même châssis.

        Bref, il émerge des solutions comme mesos couplé avec marathon par exemple où l'on peut faire de la vrai scalabilité horizontale sur plusieurs châssis ou vm.

        Exemple, je fait une demande de ressource au cluster en disant que j'ai besoin de 5 cpu. Mesos se charge de trouver l'endroit où il ya de la puissance et soumet les traitements.

        Sauf que si je n'utilise pas ces 5 cpu en réalité, ils sont tout de même décomptés du pool de ressources disponibles.

        Je perds donc l'avantage précédent mais bon vous voyez monsieur le client, c'est à la mode twitter se sert du même truc et ça tourne sur linux/x86 avec du matos pas cher, donc je peux aligner autant de grillepain que je veux.

        • [^] # Re: Cool attitude

          Posté par . Évalué à 2.

          Je mettrais pas mesos dans le tas du "nouveau qui brille juste pour le plaisir de reinventer la roue" (aka rien a voir avec node, go et consorts).
          Ca resoud le probleme de la creation de vm, qui est chiant a resoudre, de l'utilisation des ressource, et ca te resoud le probleme de l'immutabilite de ton environnement.
          Dit autrement, ca rend tes deployments vachement plus simple et plus robuste (enfin, sous reserve que les devs comprennent les concept d'ephemeralite du cloud, mais ca c'est pas un probleme de mesos). Pour maintenir une webapp a l'ancienne (pur chef) et un consumer kafka dans mesos, mesos est beaucoup moins prise de tete. Et surtout, vachement plus self service.

          Apres, oui, c'est pas utile dans tous les cas. Ca vient de chez twitter, c'est designe pour repondre a leur modele:
          - tres grand nombre de deployements quotidien (non pas que chaque webapp est deployee 20 fois par jour, mais quand t'as 50+ services, tu tapes vite dans la dizaine/centaine de deployments par jour)
          - robustesse dans un environement a la aws ou tes vm peuvent canner sans crier gare
          - grande utilisation des ressources quand tes webapps sont finalement tres peu cpu bound (c'est quand meme souvent le cas dans le consumer facing web)
          - environnement ou les equipes sont distribuees et independantes (les ops peuvent se concentrer sur le gros cluster mesos et l'infra en generale plutot que de creer des vms en permanences pour les equipes de dev)

          Mesos c'est utile si t'as des centaines d'instances qui ont besoin de relativement peu de ressources. C'est plus facile de demarrer 20 conteneur a 0.1 cpus sur 4 vms que de demarrer 20 vms a un coeur chaque.

          Apres, oui, c'est jeune, et c'est instable (btrfs qui deadlock a donne du fil a retordre a l'equipe qui gere ca).
          Mais c'est pas un enieme reecriture de concepts vieux de 15 ans (genre node.js, qui en plus est serieusement a la traine face a jaxrs2).
          Ca repond a un reel probleme qui est mal resolu avec des solutions off the shelf, ou doit etre resolu avec un developement custom un interne.
          Lle tout dans un domaine qui est tres jeune et se cherche encore (infrastructure automation). C'est bleeding edge, clairement, mais c'est pas du fashionista.

          Linuxfr, le portail francais du logiciel libre et du neo nazisme.

      • [^] # Re: Cool attitude

        Posté par (page perso) . Évalué à 10.

        S’intéresser aux vrais problèmes plutôt que de regarder son nombril de développeur, c'est majoritairement ce qu'il manque à l'industrie…

        Je ne sais pas ce qu'est un vrai problème, mais j'aurais préféré qu'on parle des boites qui travaillent dans des domaines ou sur des problématiques cools plutôt que des technos cools.

        Je préfère faire du C++98 pour de la robotique embarquée dans une navette spatiale que du Ocaml pour gérer les annonces d'une agence immobilière.

        http://devnewton.bci.im

        • [^] # Re: Cool attitude

          Posté par . Évalué à 5.

          Je ne sais pas ce qu'est un vrai problème

          Une problematique metier. Genre, gerer les annonces d'une agence immobiliere.
          A l'inverse de problemes crees par la technologie elle meme, genre gerer les dependances de librairie, ou debugger une stack de 25 callbacks en js.

          Apres, oui, ya clairement des gens dont le domaine est de resoudre ces problemes inherents a la technologie, mais pour la grande majorite des developeurs, leur boulot c'est de transformer de l'electricite en argent, pas de resoudre des problemes inherents.
          Si tu bosses dans le web et que tu resoud souvent des problemes inherents, t'as probablement mal choisi ta techno.

          Linuxfr, le portail francais du logiciel libre et du neo nazisme.

          • [^] # Re: Cool attitude

            Posté par (page perso) . Évalué à 8.

            Une problematique metier. Genre, gerer les annonces d'une agence immobiliere.

            Est-ce que ce n'est pas plutôt le concept d'agence immobilière qui est problématique?

            http://devnewton.bci.im

            • [^] # Re: Cool attitude

              Posté par . Évalué à 2.

              Eh, mais t'sais que t'es super marrant comme mec toi!

              Linuxfr, le portail francais du logiciel libre et du neo nazisme.

    • [^] # Re: Cool attitude

      Posté par . Évalué à 1.

      Technos à la mode ne rime pas forcément avec cool.

      Bon, le commentaire de départ est trop large, chacun a son idée du cool. Mais quoi qu'il en soit, il y a moyen de trouver des trucs cool dans pas mal d'endroits. Parfois dans des boîtes dont on ignore l'existence et qui se trouvent à côté. Il faut se renseigner, y croire, tenter sa chance, … même si ça ne marche pas toujours au final. L'embarqué, c'est cool.

  • # L'embarqué c'est cool ?

    Posté par (page perso) . Évalué à 7.

    Bon ben j'en profite même si ça ne rentre pas exactement dans la définition du cool du journal mais j'ai l'impression que ça l'est quand même…
    Dans ma boite on fait de l'embarqué (C++, Ada 2012, Spark prochainement) dans un cadre certifié (DO178C jusqu'au niveau A) ou non. Pour de l'aviation et des drones. On bosse pour squadrone qu'on a co-fondé et on a lancé un projet d'autopilot pour drone avec un haut niveau de qualité (en gros similaire à ce qui se fait côté aviation).
    On fait du mobile cross plateforme aussi (Android - iOS avec coeur commun en C++).
    On fait du web et on essai de garder des technos agréables et productives (en général ruby mais aussi un peu de clojure même si on voudrait en faire plus).
    On fait des applis natives (C++ Qt pour du médical, on tente de faire nos produits en electron aussi).
    En général on fait le max en TDD et parfois du BDD, on aime avoir un haut niveau de qualité dans nos devs.
    On a des plannings en lego (bon ok presque, je suis en train de le finir).
    On a aussi des personnes qui bossent sur des systèmes de reconnaissance (obstacle ou autre) par l'image (vidéo).

    Ha oui, on est à Grenoble et on embauche.

    /pub

    • [^] # Re: L'embarqué c'est cool ?

      Posté par (page perso) . Évalué à 4.

      Ha oui, parce qu'il n'y a pas que la techno qui permet de s'éclater au boulot, on a un mode de management assez particulier, en gros et pour faire très court c'est autonomie et 0 manager. Même si sans les commentaires c'est plus compliqué, voici quelques slides que j'avais présentés au mixit15.
      Et sinon on a une filiale qui démarre à Lyon et une (bientôt 2) personnes à Melbourne.

  • # En Belgique ... Euranova

    Posté par (page perso) . Évalué à 2.

    En Belgique, Euranova est une petite structure qui fait de la R&D un de ses piliers : http://research.euranova.eu/home (HPC, big data, …). Ils travaillent avec du logiciel libre (quasi exclusivement) et ont également rendu disponible un certain nombre de leurs outils.

    (Et je ne travaille pas chez eux ;-))

  • # Pharo

    Posté par . Évalué à 2.

    Moi dans les trucs cools qui se font en France, je citerai Pharo : http://pharo.org/ projet initié et toujours développé en grande partie au sein de l'INRIA. Un SmallTalk libre qui bouge et innove (ou se maintient au niveau des autres technos selon le point de vue) :
    - sur l'IDE : http://gt.moosetechnology.org/index.html ;
    - sur l'hébergement Cloud : https://www.pharocloud.com et en particulier http://pharo.org/news/Ephemeric-Cloud ;
    - sur le dev Web en général : par exemple avec Teapot (http://smalltalkhub.com/#!/~zeroflag/Teapot).

    Je ne l'utilise pas au boulot, mais pour le développement de mon petit Cloud personnel j'aime bien.

Suivre le flux des commentaires

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