nlhss a écrit 41 commentaires

  • # C'est marrant...

    Posté par (page perso) . En réponse au journal TapTempo en Crystal-Lang. Évalué à 3 (+3/-0).

    on dirait du ruby.

    Ce serait pas la version compilée de Ruby, ce langage Crystal ?

  • [^] # Re: Faire des tests, c'est bien, mais...

    Posté par (page perso) . En réponse au journal Faites des tests !. Évalué à 3 (+3/-0).

    C'est possible de se passer de tests unitaires dans certains cas particulier comme celui décrit par Claude Simon, mais c'est un cas bien idéal, à savoir un code qui n'est manipulé que par une seule personne.

    Dans 90% des cas, un code est amené à être modifié par un autre développeur que celui qui l'a écrit.

    Une batterie de tests unitaires devient alors un outil indispensable pour un mainteneur afin de garantir que la rétrocompatibilité n'est pas cassée lors d'une modification, d'un refacto ou même simplement une correction de bug.

    Dans des applications développées de manière itérative, il est souvent conseillé lors de la correction d'un bug, d'écrire un test qui échoue lorsque le bug est présent puis de réparer le bug et de valider la correction à l'aide de ce test unitaire.

    Les tests unitaires permettent aussi à peu de frais de vérifier qu'un algorithme ou qu'une fonction marche dans des cas limite (entrée de taille nulle, entiers avec des valeurs de type MAX_INT, MIN_INT, etc).

    Je pense que toi, Claude Simon, et d'après ce que tu dis, tu es parvenu à factoriser ton code de telle sorte que si un bug existait dans une de tes librairies, tu le détecterai automatiquement. C'est une bonne chose d'écrire avec un tel principe, c'est un des piliers d'un code de très bonne qualité de code (DRY = Don't Repeat Yourself). Dans ce cas, tu dois pouvoir te permettre de tester tes softs de manière plus intégrées (pas les libs en elle même mais le comportement des applications en situations réelles).

    L'intérêt des tests unitaires / d'intégration c'est surtout de pouvoir automatiser les sessions de test et d'avoir un point de vue global sur l'état d'un projet.

  • # Il manque des courbes.

    Posté par (page perso) . En réponse au journal Capteurs météo et graphiques Munin. Évalué à 3.

    Et le résultat ?

    J'aurais aimé savoir ce que tu as appris en réalisant cela, et si cela t'a paru pertinent dans le cadre de ton besoin.

  • # test LDLC

    Posté par (page perso) . En réponse au message Netbook actuel 11,6". Évalué à 1.

    Y a ça : http://www.ldlc.com/fiche/PB00217508.html
    mais l'autonomie est pourrie (tu dois pas pouvoir tenir plus de trois heures à mon avis, j'ai le même et c'est très léger comme autonomie comparé par exemple à un macbook).

    Donc si besoin, prévoir une deuxième batterie et je pense que ça devrait répondre à tes critères.

    Sinon passer dans la gamme au dessus : http://www.ldlc.com/fiche/PB00218458.html ou même http://www.ldlc.com/fiche/PB00210499.html (mais bon faut oublier linux sur un mac).

  • [^] # Re: permutations

    Posté par (page perso) . En réponse au message problème sur Codecademy réaffecter deux valeurs . Évalué à -2.

    ma solution est plus stylée (ie ça marche en C avec des valeurs algébriques quelconques minus les valeurs d'arrondi et sans variable intermédiaire).
    le truc des tuples python est sympa je vous l'accorde

  • # permutations

    Posté par (page perso) . En réponse au message problème sur Codecademy réaffecter deux valeurs . Évalué à 0.

    Pour permuter deux nombres sans affectation intermédiaire :

    a=a-b
    b=a+b
    a=b-a

  • # hard drive HS ?

    Posté par (page perso) . En réponse au message Petite colle sur le premier secteur d'un disque dur. Évalué à 2.

    Si tu arrives à passer en mode débug sur ton noyal (je crois qu'il y a un ou deux modules qui font ça via une interface série) tu dois pouvoir trouver le module responsable et les différents call.

    Ça risque d'être un peu overkill et il y a sans doute d'autres choses à faire avant.

    Je suis surpris par la capacité de ce HD, 111GB c'est un disque dur d'il y a dix ans (voir plus). Pas étonnant qu'il ait des problèmes de secteur, surtout s'il était utilisé intensivement. Il me semble qu'il y a des outils pour que le firmware du DD marque lui même les secteurs incapacités comme inutilisables.

    Ça éviterait ces appels systèmes récurrents sur des secteurs défectueux.
    Je pense que cela serait peut être plus productif que de chercher quel est le code noyau qui tente de faire des IO sur des secteurs défectueux.

  • [^] # Re: Coquilles

    Posté par (page perso) . En réponse au journal Un bug ? Qui est le coupable ? Le processeur !!!. Évalué à 4.

    Porcesseur ?

  • [^] # Re: Techniquement

    Posté par (page perso) . En réponse au message Recherche de boulot en temps partiel voir mi-temps. Évalué à 2.

    En plus de ça côté droit du travail, l'employeur ne peut proposer cela assorti d'une clause d'exclusivité. C'est donc gênant.

  • # Je connais une boîte qui...

    Posté par (page perso) . En réponse au message Nerim en 2017 ça vaut quoi ?. Évalué à 1. Dernière modification le 01/06/17 à 01:45.

    Je sors d'une boîte qui fournit justement de la VOIP à destination des PME prioritairement.

    Pas d'idée sur Nerim.

    Je peux te donner plus d'infos en MP (il y a des MP sur linuxfr.org ?) ou ici si ça t'intéresse.

  • [^] # Re: Trous

    Posté par (page perso) . En réponse au message Comment construire un curriculum cohérent en informatique ?. Évalué à 2.

    J'ai un solide socle scientifique et des notions de maths de niveau prépa MP.

    Probabilités OK
    Théorie des graphes OK

    Quand je dis niveau bac+5 je suis conscient qu'il y a un spectre très étendu.

    Je vise le niveau d'une bonne école d'ingénieur spécialisée en informatique mais avec un spectre suffisamment généraliste, capable d'être aussi bon technicien que théoricien de haut niveau sur certains sujets.

  • [^] # Re: petite question : pourquoi CDD de 6 mois et pas directement un CDI ?

    Posté par (page perso) . En réponse au message [poste pourvu] Poste ingénieur R&D en développement à Grenoble - CDD 6 mois en vue d'un CDI. Évalué à 3.

    Je me mets à la place d'une personne en recherche d'emploi :

    oui, dans ce cas c'est une excellente chose l'opportunité que tu proposes. L'empilement CDD -> CDI est légal et possible. Faire un CDD est une bonne chose et c'est un contrat de travail qui a aussi des avantages et des contreparties pour le salarié.

    Ceci dit la flexibilité me semble plutôt du côté de l'employeur dans cette configuration et le risque du côté du salarié.

    Par exemple, cela serait me semblerait risqué pour quelqu'un déjà en CDI de quitter son job pour l'offre que tu proposes.

    je ne voulais pas dire que tu es un mauvais employeur et je sais ce que c'est les petites structures où l'activité économique n'est pas garantie :)

  • [^] # Re: petite question : pourquoi CDD de 6 mois et pas directement un CDI ?

    Posté par (page perso) . En réponse au message [poste pourvu] Poste ingénieur R&D en développement à Grenoble - CDD 6 mois en vue d'un CDI. Évalué à 0.

    Je sais pas mais le CDD de six mois ça fait vraiment période d'essai déguisée ça c'est sûr.

    Ça se comprend mais ça n'est pas très sexy.

    Pour un jeune diplômé par contre c'est une option intéressante (six mois de moins en recherche d'emploi pour une expérience qui semble intéressante et formatrice.)

  • [^] # Re: Retour

    Posté par (page perso) . En réponse au message Premier développement en C. Évalué à -4.

    Je ne te conseille pas le C++.

    Tu devrais installer archlinux et faire du Haskell.

  • # Expérience

    Posté par (page perso) . En réponse au message Conseils pour améliorer mon niveau de maths. Évalué à 1.

    Coucou, j'ai une certaine expérience de la remise à niveau en mathématiques, car sur la dernière année, je me suis préparé au CAPES de mathématiques, essentiellement basé sur le programme de classe préparatoire de MP/MPSI.

    En fait, bien maîtriser les mathématiques c'est un sujet qui est hyper intéressant en soi car ça te donne une réserve de puissance intellectuelle. Mais c'est un savoir qui est aussi un peu laborieux à apprendre. De plus, on dit souvent que les mathématiques ne sont pas applicables à la vie réelle et donc on s'en désintéresse facilement. Rien n'est plus faux en réalité mais elles conservent cette image de discipline austère et difficile d'accès.

    Pour schématiser, l'activité mathématique dans les livre est souvent présentée comme une énumération fastidieuse de théorèmes et de preuves. Savoir prouver et avoir des connaissances en logique est très important pour un développeur je pense. En fait, savoir prouver un algo est sans doute dans l'aspect mathématique le plus intéressant pour un développeur.

    En terme de mathématiques appliquées, il y a aussi des choses à prendre. Les « recettes » des maths, on peut les réutiliser car un ordinateur est avant tout un calculateur.

    En terme de concepts plus élaborés (algèbre linéaire, théorie des groupes) ces derniers sont extrêmement importants, à la fois comme fondation des mathématiques et en terme de culture générale, mais ils demandent aussi un travail approfondi pour être bien maîtrisés.

    Tu peux sélectionner ces différents aspects pour te composer une culture intéressante. Tu ne peux pas rattraper 10 ou 15 d'inactivité mathématique comme cela, tu vas avoir besoin de temps et de respirations pour progresser.

    Avant tout cela il y a tout un vocabulaire à maîtriser, mais celui ci est en général bien résumé dans le premier chapitre d'un bon bouquin de MPSI.

  • # keepassx

    Posté par (page perso) . En réponse au journal Passwords managers sous linux : où en est-on ?. Évalué à 3.

    multiplateforme
    simple d'utilisation

  • [^] # Re: migre

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 0. Dernière modification le 15/07/16 à 12:15.

    C'est une histoire de complexité asymptotique, de pire cas VS cas moyen VS cas favorable, etc.

    Par exemple, sur un tableau déjà trié, un algo asymptotiquement en O(n2) peut être plus efficace qu'un algo en O(Nlog(N)) car ce dernier va faire des tas d'accès inutiles, voire même éventuellement déplacer des éléments alors que ce n'était pas nécessaire.

    When the list is already sorted (best-case), the complexity of bubble sort is only O(n). By contrast, most other algorithms, even those with better average-case complexity, perform their entire sorting process on the set and thus are more complex. However, not only does insertion sort have this mechanism too, but it also performs better on a list that is substantially sorted (having a small number of inversions).
    (wikipédia).

    En gros le tri par insertion, malgré sa plus grande complexité que le quick sort, est plus efficace sur des ensembles déjà trié ou partiellement triés.

  • [^] # Re: migre

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 1.

    La complexité n'est pas le seul facteur. Souvent un algo en log(N) prendra plus de mémoire, ou sera moins robuste/plus long à implémenter, ou encore en moyenne ce sera du O(log(N)) donc dans la plupart des cas satisfaisants.

    Dans tous les cas les algos linéaires ne sont pas tellement des problèmes, ce sont plutôt les algos en O(n²) dont il faut se méfier.

  • [^] # Re: Arguments ?

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 2.

    La maintenabilité est un facteur important. On peut coder rapidement en java (pas aussi rapidement qu'en python mais quand même, ça va assez vite).

  • [^] # Re: migre

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 0.

    Et tu finis avec un gros cluster de trucs totalement hétérogènes. N'oublie pas que la communication entre services est aussi coûteux du point de vue de la maintenance et de l'architecture. Tu avances un modèle « bazar » alors que Java permet de construire des applications complexes de manière nettement plus sûre et surtout dont les performances à l'exécution sont meilleures que nombre de langages de script.

  • [^] # Re: Go ?

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 1.

    Oui, je suis d'accord. On peut faire des casts aussi en java mais en règle générale, il vaut mieux éviter. Si on veut du code générique, mieux vaut éviter les cast de toutes façons.

  • [^] # Re: Go ?

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 2.

    J'ai avancé un argument mais je pense qu'il est bon. Le typage statique est une sécurité pour des très gros projets. Ses inconvénients sont ses forces si tu vois ce que je veux dire. Bon je pense qu'il faut essayer pour être convaincu de l'intérêt du typage statique.

  • [^] # Re: Go ?

    Posté par (page perso) . En réponse au journal Java (EE) Sapu cépalibre.. Évalué à 3.

    Évidemment :)
    C'est même un très gros avantage du point de vue génie logiciel.

  • [^] # Re: Ok, tu veux faire vite mais...

    Posté par (page perso) . En réponse au journal Des vidéos qui envoient du bois. Évalué à 9.

    Oui, je suis d'accord.

    La première conf' , de Quentin est vraiment, vraiment sympa. J'ai beaucoup apprécié son franc parlé et sa vision managériale sur la place du développeur dans une petite boîte.

    Morceau choisi
    Interlocuteur : Ça doit être dur, quand même, de recruter des dév Scala
    Quentin : J'entends ça souvent. Mais en fait, mais non, mais pas du tout. Quand je demande un dév Scala, j'ai trois CV qui atterrissent sur mon bureau. Trois ! Sur une techno standard, j'en aurai environ 50. Imagine le boulot de tri à faire. Ensuite, un dév Scala, il fait ça comme hobbyiste, le soir, chez lui. Donc il est motivé. En fait le salaire il s'en fout, je peux le payer comme je veux puisque lui il aime ce truc. (Résumé : choisis une techno « marginale », tu auras des mecs compétents, motivés, pour un salaire modique et qui aiment ça).

    Une analyse du point de vue du cynique patron mais qui laisse à réfléchir, mais le point principal de cet argument, c'est qu'en effet, les bons programmeurs sont en majorité des gens qui aiment ce qu'ils font (L. Torvalds).

    J'ajoute en passant qu'on connaît tous l'adage « un bon travailleur a de bons outils ». Si 90% des dévs travaillent avec l'outil A, et que l'outil B rend plus compétitif, alors l'outil B est une plus-value essentielle (bon sens élémentaire).

    Toute la conf' est comme ça (ou presque) et franchement bien marrante, donc vous pouvez y aller, si vous avez 60 minutes à perdre :).

  • # Pull request ?

    Posté par (page perso) . En réponse au message Comment forker un projet (bonne conduite). Évalué à 1.

    Bonjour,

    je pense que faire des pull request sans avoir un vrai contact avec l'auteur n'est pas forcément très pertinent. Ce qui va déterminer si l'auteur accepte tes contributions, c'est s'il les juge utiles pour le projet initial, et le seul moyen de faire cela et d'en parler avec lui.

    Je connais peu de développeurs/mainteneurs de logiciels libres qui soient totalement injoignable. Créer un fork est potentiellement intéressant, mais cela va te créer du travail supplémentaire en terme de maintenance (git est fait pour ça en fait, si tu veux merger a posteriori tout en conservant ta fonctionnalité dans une branche locale au fil des évolutions du soft initial).

    Est-ce que tu es bien certain que l'ajout d'une simple fonctionnalité justifie un fork du projet initial ? Cela serait vrai si tu avais une vision à long terme pour ce projet et que l'auteur ne veut plus/ne peut plus s'en occuper. Autrement tu peux, comme je le disais, garder une branche spéciale du projet initial et merger les mises à jour régulièrement.

    Si le projet initial est GPLv2, tout ce que tu peux faire c'est licencier sous GPLv2 je crois, éventuellement si tu te sers uniquement des interfaces du projet initial, tu peux créer un module qui change de licence par rapport au soft principal (mais pas expert sur la question donc à prendre avec des pincettes).