barmic a écrit 10455 commentaires

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 1.

    Le cas d'usage que tu décris c'est de la logique métier pour preuve tu explique que c'est des choses demandé par la direction. Un code pas métier c'est un code qui ne touche pas au besoin fonctionnel de l'application (performance, robustesse, etc).

    Il y a d'autres choix que les 3 que tu donne. Par exemple tu peux gérer ça via des batch ou monter une architecture lambda si tu a besoin de temps réelle et tu as tout un tas d'organisation possibles qui vont plus ou moins impacter ton design en fonction des besoins que tu as.

    Choix 3) Des jeux de procédures stockées et de fonctions (et autres, en postgresql le DO INSTEAD est surpuissant si bien utilisé) qui vont être utilisés comme des vues par le client de reporting - mais qui centralisent le code en un point et simplifient grandement la maintenance.

    J'aurais vraiment peur de cette solution. Comment ça se comporte avec un million de ligne ? 100 millions ? Si ta base est en cluster (est-ce distribué ? Est-ce que tu perçois clairement ce qui va entraîner une réduction de tes données ? Quelle est la granularité de lock que tu met sur tes données) ? Faire des traitement de plusieurs secondes sur une base (qui doit déjà prendre la charge de la production) ça me semble pas être une excellente idée.

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

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 1.

    • je peux mettre à jour le schéma de ma BD sans impacter ma couche métier ;

    Ce qui n'a pas de sens. Enfin… Pas dans le sens que tu l'indique. Soit changer ton modèle a des implications métier (ça arrive forcément), soit ça impact uniquement ta couche persistance (quand tu travail en couche).

    • ma couche métier gagne en lisibilité, dans la mesure où les opérations les plus complexes sont réalisées en BD ;

    Je ne vois pas comment tu peux avoir une opération complexe qui ne fais pas partie de ta logique métier… Tu peux parler d'un code purement technique qui serait de la tambouille de données, par exemple faire une projection ou des statistiques sur tes données, mais ça je ne le ferrais jamais dans une procédure stockée. Le faire dans un code à toi, ça permet de le distribuer, de le lancer en mode batch, de l'envoyer dans un job hadoop/spark/storm,… Mais aussi de le tester avec tes outils de tests unitaires classiques.

    • les opérations complexes en BD utilisent moins de ligne de code que leur équivalent dans ma couche métier. Je gagne encore en maintenabilité. Sans compter les gains de performance.

    AMHA garder le même langage que sur le reste de l'application, ainsi que le même protocole de test est bien plus efficace pour maintenir ce code.

    • la BD se suffit a elle-même pour sa compréhension. Pas besoin d'aller lire le code de la couche métier. On gagne encore en maintenabilité.

    C'est là que je vois que j'ai beaucoup évolué ces dernières années (pas forcément en bien). J'étais aussi de ton avis avant. Aujourd'hui, je ne vois pas l'intérêt d'avoir une « base de données qui se suffit à elle-même ». Ta base de données est faites pour soutenir une application et pas pour la beauté du geste.

    • ma BD est garante de la cohérence de mes données. Si une opération complexe peut remettre en cause la cohérence de mes données, elle sera présente dans ma BD et non dans ma couche métier. Ma BD définie ainsi des opérations atomiques ;

    Euh… tu as tes contraintes d'intégrité pour ça et si ça ne suffit vraiment pas tu as des triggers qui peuvent faire le boulot. Je suis pas grand fan, mais si vraiment tu veux de la cohérence forte c'est une possibilité (en se limitant à coder des invariants).

    • ma couche métier est une interface d'accès à mes données, en offrant des services de haut niveau. Un bogue dans ma couche métier ne remet pas en cause la cohérence de mes données. Et ça, c'est super important !

    Et il est impossible d'avoir de bug dans une procédure stockée ? :)

    On oublie souvent qu'aujourd'hui, plus qu'une application, ce qui est important, ce sont les données. Une application, cela se développe, cela se créer. Les données, il faut du temps pour les récolter… Alors quand il faut les réparer… (si cette opération est possible, ce qui n'est pas toujours le cas).

    Si j'en suis vraiment là, je préfère partir sur de l'event sourcing. Mes données sont immutables. Je reçois les données, je les stocke et ensuite je vois comment les organiser pour les rendre utilisable (sans toucher le premier stockage des données). C'est résilient (je peux reconstruire mes projections à tout moment), ça évolue très facilement et c'est facilement distribuable.

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

  • [^] # Re: Backup => il y a de l'idée

    Posté par  . En réponse au journal Comment Github a ressuscité mon logiciel libre. Évalué à 3.

    C'est comme ça qu'il faut faire.

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

  • [^] # Re: Backup => il y a de l'idée

    Posté par  . En réponse au journal Comment Github a ressuscité mon logiciel libre. Évalué à 3.

    Bof, pas beaucoup plus selon moi que toutes les technologies d’authentification à deux facteurs (HOTP, TOTP et assimilés) qui elles sont de plus en plus déployées.

    Je ne dis pas le contraire.

    Exporter un fichier PKCS#12 (contenant le certificat et la clef privée associée), l’importer sur l’autre navigateur. Granted, les interfaces pour ça dans les navigateurs ne sont pas des plus intuitives (je suppose que personne n’a travaillé dessus depuis 1997…), mais ce n’est pas insurmontable.

    En s'assurant de ne pas foutre le certificat n'importe où, avec l'espoire que l'utilisateur ne va pas faire sauter le mot de passe du certificat parce que ça va plus vite.

    Encore une fois, pas plus compliqué que gérer la double authentification par SMS, code TOTP, et tout le toutim. Et ça c’est déployé — et pas seulement par les « gros », même les « p’tits gars » de Framasoft le font.

    Je ne sais pas ce que fait framasoft, mais pour la plupart c'est les gros le déploient et les autres utilisent les services de ces gros.

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

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 5.

    Plus sérieusement, à te lire, on a l'impression que la procédure stockée, c'est le mal. Que tu ne les utilises pas et/ou que tu ne l'aimes pas, c'est ton choix. Dire que c'est de la merde, désolé, je ne peux pas ne pas réagir.

    L'impossibilité de maintenir ce genre de code, le fait de séparer ta logique dans des endroits aussi divers que variés,… J'ai vu trop de projets se mordre les doigts, les mains, les poignets,… après quelques années d'utilisation de ce genre de choses. Cerise sur le gâteau, c'est hyper intrusif dans ton design ! Retirer ce genre de chose est une galère sans nom.

    Une base de données c'est un modèle de données et un système de requête cohérent avec un certain nombre de garantie. Déplacer un bout de ta logique dans ta base de données, c'est foncé droit dans un mur.

    Alors oui, tu peut avoir de bonne raison (souvent c'est la perf) pour faire des petits traitements coté db, mais je préfère faire le chien de garde pour éviter au maximum de le faire et si c'est fait réduire au maximum la logique que tu y met.

    En fait je suis un peu méchant, avec couchdb ça peut avoir du sens parce que selon ce que tu fait tu peut tout mettre dans couch (tu as un reverse proxy http pour le statique et il redirige toutes les requêtes WS vers couchdb). Mais c'est vraiment un cas particulier.

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

  • [^] # Re: Backup => il y a de l'idée

    Posté par  . En réponse au journal Comment Github a ressuscité mon logiciel libre. Évalué à 2.

    Il faut en plus le bon driver dans ton navigateur.

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

  • [^] # Re: Backup => il y a de l'idée

    Posté par  . En réponse au journal Comment Github a ressuscité mon logiciel libre. Évalué à 4.

    C’est pris en charge à ma connaissance par la plupart des serveurs web et par la plupart des navigateurs… et c’est complètement inutilisé.

    Et c'est normal, parce que c'est vraiment vraiment vraiment très complexe.

    Les serveurs web le prennent en charge, cool, mais pour le prendre en compte dans ton code, c'est déjà une autre paire de manche. La mise en place dans le navigateur est compliquée. Coté serveur la gestion connexion/déconnexion n'est pas simple (il faut utiliser un mode où le client n'est pas obligé de s'authentifier). Pour l'utilisateur, transférer son identité sur un autre navigateur n'est pas simple. Tu prends encore plus de pleins fouet les problèmes d'autorité, mais tu peux créer ta propre PKI (on avait dit compliqué ?). On doit renouveler son identité régulièrement (oui les certificats client ont aussi une péremption).

    Sur le papier c'est vraiment bien, mais dans les faits il vaut AMHA laisser ça pour les connexions M2M ou de serveur à serveur.

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

  • # Electrolysis

    Posté par  . En réponse au journal Où en est la version GNU/Linux de Firefox côté performances ? . Évalué à 5.

    Du coup avec Electrolysis, tu vois une différence de réactivité/performance à l'exécution ?

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

  • [^] # Re: L'OS n'est pas le problème

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 2.

    Je sais pas comment ils expliquent de ne pas avoir évaluer ElasticSearch (ou alors je suis bigleux ?).

    Par contre, ils indiquent les qualités et défauts qu'ils voient. C'est original. C'est des critères de décideur pressé pas de technicien (c'est un point de vu différent pas pire pas mieux).

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

  • [^] # Re: L'OS n'est pas le problème

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 10.

    Après il s'agit de Gartner, je suis pas certain d'avoir un jour était intéressé par leurs avis (quelque soit le domaine).

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

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à -8.

    l'intégration de .Net comme langage support pour le développement de fonction/procédure stockée utilisateur ;

    Quelque soit le SGBDR, le mec qui me dit qu'il faut faire de la procédure stockée, mérite d'être pendu haut et court.

    Sinon oui SQL Server est pas mal à ce qu'il paraît. Par exemple, il a un bon support de la norme (ah ! ah !) SQL.

    la pérénité des dumps et la compatibilité descendante (aucun soucis pour charger un dump de SQL Server 2005 sur un SQL Server 2012). Faite la même chose avec un postgresql par exemple… pas sur que cela se fasse sans heurt (avant qu'on me dise que je raconte des cracks : malheureusement testé et approuvé :'( )

    Les ETL ne permettent pas ce genre de choses (prendre en entrée une sauvegarde) ?

    Après, niveau intérêt, le premier que je vois c'est la "conteneurisation" (docker and co.).

    Windows pourra bientôt tourner dans Docker (oui ça surprend toujours la première fois).

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

  • [^] # Re: L'OS n'est pas le problème

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 8.

    C'est précisément ce que fait cassandra. Par défaut son xms et son xmx sont à 4Gio à fin de ne pas perdre de temps avec la gestion de la mémoire et parce que pour limiter les accès disque il a un tas d'index et de cache en mémoire.

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

  • [^] # Re: Quelques règles de base pour vos mots de passe

    Posté par  . En réponse à la dépêche Linux Mint a été compromise. Évalué à 2.

    Pour en ajouter une couche. Quand tu prend des mots (et si on considère que l'outil de brute force prend en compte les mots), il ne faut pas calculer l'entropie de la même manière. Il ne s'agit plus d'une suite de N caractères choisi parmi [A-Za-z0-9._-,], mais d'une suite de M mots choisi dans des dictionnaires de quelques dizaines de milliers de mots (flemme de calculer l'entropie de chacun).

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

  • [^] # Re: Quelques règles de base pour vos mots de passe

    Posté par  . En réponse à la dépêche Linux Mint a été compromise. Évalué à 4.

    Tu te trompes, le nombre de bits d'entropie définit complètement la sécurité d'un mot de passe. Si un mot de passe a b bits d'entropie, alors il faut essayer 2b mot de passes pour le deviner, quelque soit le type d'attaque.

    Faux. Sinon il n'y aurais pas de problème d'utiliser des mots du dictionnaire :)

    La subtilité c'est dans la phrase « il faut essayer 2b mot de passes pour le deviner ». Non il ne faut pas utiliser 2b mot de passe, mais potentiellement jusqu'à 2b mots de passe, hors les outil de brute force ne font des attaques par dictionnaires pour rendre "anticonstitutionnellement" moins solide que "ifiedikieayeijee".

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

  • [^] # Re: Un potentiel sacré bourbier

    Posté par  . En réponse à la dépêche ZFS, Canonical et GPL. Évalué à 10.

    Il convient donc de les remercier.

    Hum tu fais des généralités. Il y a aussi un bon paquet de trolls qui préfèrent attaquer la forme d'un message que son contenu. C'est aussi une bonne façon de rabaisser l'autre et de se flatter soit même.

    Je « pertine » systématiquement les gens qui reprennent mon ortographe sur linuxfr, mais je ne dirais pas que tous les gens qui reprennent l'orthographe sur internet devraient être béatifier.

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

  • [^] # Re: ayatollah mode activé: Traduire "bug" en "bogue" est une aberration!

    Posté par  . En réponse au journal Empêcher GNOME Web (aka Epiphany) de maximiser le volume du système en regardant une vidéo YouTube. Évalué à 3.

    Ensuite, on place un espace avant le deux points.

    Pas en Suisse et il faut que qu'elle soit insécable voir fine et insécable sinon.

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

  • [^] # Re: Dans toute cette jungle...

    Posté par  . En réponse à la dépêche Et si JavaScript allait droit dans le mur ?. Évalué à 5.

    J'ai un petit problème personnellement avec les tests. Mon code JS est vraiment du code glue. C'est de l'angular et c'est vraiment juste une interface entre mes vues et des appels de webservices. Tester unitairement ce code ne fais pas beaucoup de sens parce qu'il ne porte pas vraiment de logique.

    Vous connaissez des choses pour faire des tests de recette autre que selenium qui fait pas vraiment rêver ? (la techno qui est derrière je m'en fout je veux juste pouvoir tester vraiment mes vues)

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

  • [^] # Re: Fossil

    Posté par  . En réponse au journal Le danger github. Évalué à 4.

    Sans compter que je trouve ça agréable de jouer à qui la plus courte :-)

    C'est rigolo 3 minutes, puis un jour tu va commencer à utiliser ta machine (pour faire autre chose que la faire fonctionner) et tu n'aura plus le temps de faire ce genre de choses. Tu va comprendre que ce n'est pas le code d'un logiciel qui va te permettre de le configurer, mais ça configuration. Tu va découvrir que tu introduit des petits bugs en changeant des choses plus ou moins profonde de ton système. Tu fini par te dire que gagner 3Mio et 5s de boot est plus proche de la somatisation qu'autre chose. Au final utiliser un système qui te convient (que ce soit Debian, un autre linux, un BSD ou encore autre chose) dès le départ c'est cool et ça permet de faire autre chose de son temps que de maintenir son système ;-)

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

  • [^] # Re: Pulse audio et bizarreries

    Posté par  . En réponse au journal Empêcher GNOME Web (aka Epiphany) de maximiser le volume du système en regardant une vidéo YouTube. Évalué à 4.

    Il doit bien y avoir une option do-not-touch-that-fucking-volume-never-ever, non ?

    C'est juste une idée, mais peut être que s'il utilise l'interface dbus, il est possible de configurer ton système pour ignorer toutes les commandes venant de cette application qui concerne le son ?

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 2.

    On n'utilise pas les mêmes frameworks du coup j'ai l'impression que ça commence à devenir difficile de savoir de quoi on parle…

    Un framework c'est un morceau de code qui te forunis un ou plusieurs service et qui va structurer ton code (il peut être non-opiniated, mais son boulot c'est de te permettre d'organiser ton code pour accéder aux fonctionnalités qu'il propose).

    aucun d'eux ne m'oblige à utiliser un orm quelconque

    Tu ne désérialise pas tes données dans un objet métier ? Tu te contente d'utiliser des dictionnaires ? Si non tu es obligé d'utiliser un orm (même si c'est le tiens :) ). Hibernate s'utilise très bien comme ça, il faut juste créer une DAO par dessus son objet qui gère la connexion. Changer d'ORM c'est réécrire l'implémentation de ta DAO (tu vire les annotations de tes objets métier et tu les utilise comme tu veux).

    Un framework vraiment intrusif c'est RxJava. Il te pousse à utiliser son propre conteneur (Observable) et à l'utiliser de bout en bout dans tes traitements. Retirer Rx d'un programme c'est très impactant.

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 2.

    Je suppose que c'est à cause de son coté agressif, et c'est vrai qu'il ne me semble pas nécessaire […]

    Et pourtant je pense que ça l'est. Cela suscite des débats un peu plus intéressants que de rester dans une ambiance feutrer en arrondissant les angles et en cherchant un consensus mou à tout prix.

    On est pas dans un milieu diplomatique où chaque phrase doit être pesée et sous-pesée parce que, grand dieux ! Il faut que j'ai mon karma qui grimpe !

    J'ai déjà expliqué pourquoi je peux avoir ce genre de comportement : https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

    Que beaucoup de membres, ne soient pas capable de comprendre ça ne me dérange pas.

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 3.

    À mon avis, ce que le recruteur veux c'est que tu lui montre que tu as conscience de ce biais. Si quelqu'un te recale parce que tu lui a dis « que tu trouve élégant les décorateurs, mais qu'il faut voir au cas par cas parce que ça n'est pas adapté à tous les besoins », mon avis c'est que le recruteur s'est planté.

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 4.

    C'est bien pour ça que j'insiste sur un des avantages des micros frameworks qui est de pouvoir être changés facilement au cas où ça tournerait mal (ou que l'app évolue dans un sens différent), ce qui est loin d'être évident avec un plus gros et qui entraîne d'énormes problèmes pour faire évoluer le framework lui-même. Alors oui, le gros framework ne casse pas la compatibilité, mais pour cause, il n'évolue plus et au bout d'un moment on change tout, le langage avec l'eau du bain !

    Je ne suis pas d'accord avec cette dichotomie. CDI qui est un énorme framework (on parle de Java EE des familles) est très peu intrusif, par exemple. Rx qui est relativement petit va lui lourdement impacter ton code.

    Pour moi il ne faut pas dire, « je prends un framework minimaliste parce que je peux le changer », mais je sais où j'ai mes adhérences et tu as quelques cas :

    • le code dont tu ne peux te passer (hibernate es-tu là ?)
    • le code dont tu peux te passer facilement (bonjour dagger)
    • le code dont l'interface est normalisé (PEP, JSR voir IETF/what ever)

    Chercher à être hors de toute dépendance, n'a pas grand intérêt AMHA.

    On retrouve cette philosophie en Go, de ne pas s'encombrer de ce qui pourrait devenir un boulet par la suite.

    Le langage qui intègre un serveur web dans sa bibliothèque standard ? Ouai :)

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 4.

    j'ai jamais compris la logique d'opposer « avoir un préféré » et « adapter au besoin »

    Alors, la question est idiote, mais la relation est pourtant évidente. Ton choix sera porté par tes goûts. Et tu aura tendance à choisir l'outil qui te plaît plus facilement que celui qui est le plus adapté. Ce qui n'est pas forcément un mal, il vaut mieux quelque chose qui correspond correctement que tu maîtrise que l'outil exact que tu ne sais pas utilisé.

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

  • [^] # Re: Go

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 1.

    Du coup ça me fait penser à une question piège d'entretiens d'embauche :

    Quel est votre design pattern préféré ?

    Ce à quoi il faudrait répondre « aucun, ça dépend du besoin ».

    Personne n'a prétendu que les frameworks étaient nuls.

    Juste des usines à gaz…

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