Nicolas Boulay a écrit 15823 commentaires

  • # Vieille solution

    Posté par  (site web personnel) . En réponse au journal Des vieilles bases d'unix à la hype reactive actuelle. Évalué à 3.

    La méthode de remplacer un thread par travail à faire par une fonction cyclique, existe depuis longtemps dans la gestion des interruptions : cf https://en.wikipedia.org/wiki/Interrupt_coalescing

    D'ailleurs, dans le domaine de l'embarqué, pour avoir des boucles ultra courtes, il s'agit simplement de fonction lancé par un timer à intervalle régulier sans gestion de la mémoire (tout est pré-alloué). Je ne sais pas si une personne a déjà essayer de faire un serveur qui pré-alloue les ressources pour gérer 11 000 connections à la fois.

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

  • [^] # Re: Réordonnancement étrange...

    Posté par  (site web personnel) . En réponse à la dépêche De la nécessité d’adopter les opérations atomiques C11 ?. Évalué à 4.

    Cela se justifie par les performances, regrouper des opérations prends moins de temps que de les fragmenter (Lecture/écriture depuis les write cache).

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

  • [^] # Re: Portage ?

    Posté par  (site web personnel) . En réponse au journal Portage de TapTempo en Bash. Évalué à 4.

    La perl aussi ? il y a 2 print, au lieu d'un seul, j'ai l'impression. Il demande un ctl-d au lieu de 'q'.

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

  • # Portage ?

    Posté par  (site web personnel) . En réponse au journal Portage de TapTempo en Bash. Évalué à 4.

    c'est vraiment le service minimum, il n'y a aucune option de ce programme.

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

  • [^] # Re: N'importe quoi !

    Posté par  (site web personnel) . En réponse à la dépêche Interview de Dimitri Fontaine, contributeur majeur à PostgreSQL. Évalué à 3.

    Je crois que l'on s'est mal compris. Je parle du même genre d'api sous entendu dans le code SQL mais écrit dans un langage moins tordu. Je parle bien d'API de haut niveau. Mais pour du code mis en tant que module ajouté à la BDD, pour suivre la mode de µservice qui lie un peu de code avec une BDD.

    Donc, on aurait toujours les garanties ACID, le code ne stock rien en dehors de la BDD, et fonctionne de façon parallélisable, et propose au monde extérieur une API web (JSON, XML, gRPC).

    On peut me dire que la scalabilité sera plus limitée, si on ne peut pas multiplier les front-end de code, mais je répondrais que la limite va vite se déplacer sur la scalabilité de la base elle-même.

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

  • [^] # Re: N'importe quoi !

    Posté par  (site web personnel) . En réponse à la dépêche Interview de Dimitri Fontaine, contributeur majeur à PostgreSQL. Évalué à 5.

    "Le problème, c'est de le faire correctement, de faire un langage dont la syntaxe permette de mélanger le paradigme des SGBDR avec à minima du procédural voire de la POO ou du fonctionnel. Et ça ne (me, du moins) semble pas trivial."

    Je ne comprend pas trop ou est le problème. Il n'est pas possible de faire des fonctions get/set ou de proposer un map/fold sur les tables dans n'importe quel langage ? Je parle bien sûr d'un code type "12 principes" de heroku sans aucun état conservé par le programme lui-même entre 2 requêtes extérieurs.

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

  • [^] # Re: N'importe quoi !

    Posté par  (site web personnel) . En réponse à la dépêche Interview de Dimitri Fontaine, contributeur majeur à PostgreSQL. Évalué à 6.

    A l'inverse, la complexité du SQL vient du fait qu'il essaye de cacher que parfois que l'accès se fait avec une table de hash, et parfois, il parcourt entièrement les tables.

    Avec la mode des µservices, dont il est possible de tout réécrire entre 2 versions d'un logiciel ( ce qui est un impossible pour un gros monolithe et qui rend douloureux tout changement de technologie), il y a un peu de code avec une BDD (genre un modèle DDD persisté, et qui sort en API REST HTTP JSON ou XML ou en protobuf ou les 3).

    Est-ce qu'il serait délirant d'avoir un vrai langage classique lié avec une BDD dans le but de faire un microservice complet ? L'API devrait être simplifié pour fournir les garanties ACID, mais on pourrait éviter les acrobaties dés qu'il faut faire un truc un peu compliqué.

    On éviterait ainsi la communication réseau.

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

  • [^] # Re: Emacs un jour, Emacs toujours

    Posté par  (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 2.

    Je trouve chiante et instable la façon de gérer les extensions emacs : cela a peut être changer mais pour moi, on est loin de npm/ go get /urpmi il s'agit toujours d'aller chercher une version à la main et modifier le fichier de config.

    Et une fois, le truc installé, il faut deviner tout seul comment le module marche. Il me semble que tuareg est fournis de base maintenant, mais il ne semble pas que tu peux "jumper" d'un fichier à l'autre pour trouver définition de code et usage de code. tu n'as pas auto-complétion sémantique ou de library (à moins d'ouvrir tout dans un buffer…) ou de refactoring, ou de vérification de la syntaxe en ligne.

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

  • # cloud9 ?

    Posté par  (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 4.

    Quelqu'un a un avis sur cloud9 ? Avec codinggame, j'avais trouvé l'idée génial d'avoir un éditeur à distance : plus besoin de maintenir une suite d'outils à jour sur chaque machine de chaque développeur ou serveur de build : sauvegarde intégré, build intégré, bref, il y a avait potentiellement beaucoup d'avantage.

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

  • [^] # Re: Language Server Protocol

    Posté par  (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 3.

    Faudrait que j’essaie, il y a un plug-in Emacs pour LSP, et LSP supporte beaucoup de chose.

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

  • [^] # Re: raspberrypi ?

    Posté par  (site web personnel) . En réponse à la dépêche Cozy, votre domicile numérique. Évalué à 4.

    g'mic peut être rapide. Il utilise openMP et il me semble que l'autovectorisation de gcc marche dessus.

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

  • [^] # Re: Perl6

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 3.

    En plus de IEEE754 que je trouve utile pour les cpu, mais compliquer pour les développeurs et les compilateurs, il y a bien d'autre sujet difficile à creuser.

    Je pense à l'usage par des langages des instructions cpu un peu spécifique, il y a eu le SIMD qui a entrainé l’auto-vectorisation dans GCC, mais il y a plein d'autre instruction ésotérique comme pour aes ou la manipulation de bit (popcount).

    Il y a le refactoring de code, on peut par exemple penser à la sortie d'une nouvelle version de lib, et le bordel, l'énergie dépensée uniquement pour porter les applications dans la nouvelle version. Je crois que le problème s'est posé avec Qt4 et Gtk3. On pourrait imaginer un moyen de décrire sémantiquement la migration automatiquement un programme d'une version de lib à l'autre.

    Concernant le test, avec mon expérience dans le code aéronautique, il manque des outils pour générer automatiquement des entrées, pour "couvrir" totalement le code. Ensuite, il faut un moyen pour valider les sorties. Le plus simple est un modèle complet de test. Si on a un "équivalence checker" pas besoin du générateur d'entrée. Les techniques de "fuzzer" s'approche de ce modèle, mais sans garanti sur la couverture du code. Par définition plus un code est complexe, et moins il est couteux de redévelopper un code différent de test, que de faire une couverture total par des tests classiques.

    Pour aller encore plus loin, même si il existe des outils proprio qu'il le fait, on pourrait imaginer des tag pour faire la traçabilité entre la spec, le code, procédure de test et code de tests. Ainsi on peut savoir ce que les tests valident. On peut vérifier que les tests du 1.1 de la spec, couvre bien entièrement le code lié au point 1.1, et non pas un autre test qui le fait par hasard et sans vérifier les sorties (vécu). Si un outil vérifie la cohérence de l'ensemble, il devient facile d'estimer l'impact dans un projet en cas de modification de spec. Actuellement, c'est fait avec divers outils, Excel inclus.

    J'imagine qu'il y a plein d'autres problèmes de ce genre.

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

  • [^] # Re: Perl6

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 8. Dernière modification le 09 février 2018 à 08:50.

    Une autre question, est-ce que vous faites des rencontres avec des codeurs pour qu'ils exposent leur problème de la "vie réelle". Je suis souvent soufflé par le manque de contexte des chercheurs en informatique que je rencontre.

    Un dev génial d'un nouveau langage qui est surpris d'apprendre qu'il existe des programmes qui se chiffrent en millions de ligne de code. Un chercheur en compilation qui ne comprends que très vaguement les contraintes hardwares des cpu modernes (false sharing sur les lignes de cache, dépendances read-after-write, write buffer,…). Un codeur linux qui cherche une solution précise dans la littérature scientifique sur un problème de lock, mais il ne trouve que des solutions mono-cpu, ce qui n'existent plus.

    Pourquoi rien n'est venu remplacer IEEE754 qui est une horreur à traiter automatiquement, car il n'y a aucune propriétés mathématiques utilisables ?

    Bref, cela aurait un sens d'organiser les "rencontres recherche et développeurs", avec les développeurs qui exposent leur problèmes, et les scientifiques qui expliquent leur solution. Qu'en penses-tu ?

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

  • [^] # Re: Perl6

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 5.

    "Our code releases tend to be quite specific to exact Coq versions, so don't expect any of the below to work in any Coq version beside the one specified; yes, even newer versions that are only off by a few characters!"

    Sérieux ! Les scientifiques devraient un peu plus se pencher sur l’intérêt de la compatibilité ascendante ! C'est impossible d'utiliser ce genre de code avec ce genre de contrainte. C'est la deuxième fois que je vois ce genre de problème avec un code issue du publique.

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

  • [^] # Re: Perl6

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 3.

    "tu écris un programme efficace/optimisé que tu veux utiliser en production, et un programme simple et naïf que tu utilises comme "spécification" (ou implémentation de référence), et tu essaies de montrer qu'ils sont équivalents."

    ou l'inverse, la version simple étant le modèle de teste. As-tu des noms de langages qui font ça ?

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

  • [^] # Re: Math

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 4.

    Oui, mais ce n'est pas avec "l'idée" que tu as assez d'information pour savoir si c'est bidon ou nécessaire et suffisant.

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

  • [^] # Re: Math

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 6.

    Le problème que tu oublies est que le nombre de personnes ayant les compétences pour vérifier réellement la démonstration du théorème de Fermat est d'une dizaine de personne dans le monde. Une preuve formelle permet justement de ne pas avoir besoin de ça.

    Ensuite, si tu veux faire référence à un résultat qui existe déjà, c'est facile d'imaginer des libraries pour ça. Quand tu rentres dans les détails, c'est toujours plus simple de lire du code, que de décoder ce que voulait dire l'auteur d'un texte.

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

  • [^] # Re: Perl6

    Posté par  (site web personnel) . En réponse au journal La recherche en langages de programmation au quotidien. Évalué à 4.

    Question vérification, dans le domaine du hardware (vhdl), il existe des tas d'outils "d'equivalence checking".

    En gros, ses outils vérifient formellement que 2 descriptions hardware sont équivalentes, bien que complètement différentes (VHDL haut niveau vs description de porte).

    Est-ce qu'il existe des langages ou des outils qui font cela sur des langages répandus ?

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

  • [^] # Re: Cargo culte agile

    Posté par  (site web personnel) . En réponse au journal Culte du Cargo et développement informatique. Évalué à 3.

    Il faut aussi que les chefs "respectent" le sprint de 3 semaines (imposé par eux, car 2 semaines, c'est "trop court"). En général, il y a toujours un autre projet qui a besoin de modif maintenant tout de suite. Et tant pis, si cela fout en l'air le sprint en cours, la sortie d'une version de test, le boulot de l'équipe de teste pour les 2 semaines suivantes et la réunion avec le client pour l’acceptation.

    Pour moi, l'agile, c'est la différence entre se caler sur une horloge, et demander à tout le monde si il est pret pour la suite. Plus il y a de monde et plus c'est le bordel pour savoir qui est prêt quand. Avec une horloge globale, c'est bien plus facile de se synchroniser et de prévoir certaine réunions.

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

  • [^] # Re: Accéder aux caméras IP

    Posté par  (site web personnel) . En réponse à la dépêche La fin des IPv4 est très proche ! Les ennuis aussi…. Évalué à 4.

    Il était question de rendre obligatoire l'IPV6 en France à la sortie de tous nouveau appareil connecté, je ne sais pas si c'est finalement passé.

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

  • [^] # Re: largeur

    Posté par  (site web personnel) . En réponse au journal Une CSS « froide » pour l'hiver : Steelblue. Évalué à 3.

    Ce n'est pas possible de faire chaque commentaire sur 2 colonnes ? Faire les colonnes dans une boite et non des boites sur 2 colonnes ?

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

  • [^] # Re: Quelle liseuse conseillez-vous ?

    Posté par  (site web personnel) . En réponse au journal Galère lors de l'achat d'un livre numérique. Évalué à 3.

    Il existe des sites de vente de BD numérique sans DRM ?

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

  • [^] # Re: largeur

    Posté par  (site web personnel) . En réponse au journal Une CSS « froide » pour l'hiver : Steelblue. Évalué à 4.

    J'utilise firefox sous linux.

    Euh, d'accord, mais j'ai du mal à voir de quoi tu parles en particulier. Peux-tu préciser un peu ?

    Sur les sites "modernes", il y a en général, un grand texte mono-colonne au milieu et plus grand chose sur les cotés("mobile first"). Sur un écran large, c'est horrible, cela fait perdre plein de place. L'ancienne CSS me laisse des grands vides sur les cotés.

    Pour la nouvelle CSS, la mono-colonne est très large, cela fait moins de place gâchée, mais la lecture est rendue plus complexe. Je proposais de tenter de transformer les blocs de textes d'une "certaine largeur" en 2 colonnes, pour toujours gagner de la place tout en facilitant la lecture.

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

  • [^] # Re: Quelle liseuse conseillez-vous ?

    Posté par  (site web personnel) . En réponse au journal Galère lors de l'achat d'un livre numérique. Évalué à 5.

    Est-ce qu'il existe des liseuses pour BD ? J'imagine que cela ressemble plus à une tablette pour avoir la couleur de bonne qualité et un éclairage fin.

    Parce que le volume des BD est encore plus important que celui des livres.

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

  • [^] # Re: Linked Data (RDF)?

    Posté par  (site web personnel) . En réponse à la dépêche Scrutari, moteur de recherche pour sites gentils. Évalué à 5.

    2004 à priori : https://www.w3.org/TR/rdf-primer/

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