LupusMic a écrit 1481 commentaires

  • [^] # Re: Merci

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Modèles de CV pour Writer de LibreOffice saison ultime (?). Évalué à 4.

    Comment ça un CV pour ParcoursSup, ils vous font rédiger des CV autant vides qu'inutiles pour « postuler » à l'université ?!!

  • [^] # Re: quand on lit ces notes...

    Posté par  (site web personnel, Mastodon) . En réponse au journal pankkake bronsonisé. Évalué à 5.

    Ça a l'air plus compliqué que ça : https://eu.indystar.com/story/news/crime/2020/07/23/jessica-doty-whitaker-what-we-know-shooting-along-canal/5486333002/

    Des insultes ont été échangées, des armes montrées, puis quelqu'un a tiré de loin. Réduire l'action à « elle a été tuée parce qu'elle a crié ALM » est très malhonnête.

  • [^] # Re: fullstack : bullshit

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Formation « Développeur d’applications Fullstack » à l’Institut National Polytechnique de Toulouse. Évalué à 4.

    Je pense que ton erreur est de focaliser sur les technologies. Et j'espère que ce n'est pas l'erreur de cette formation, toute formation universitaire qui réduit le monde à une pile de technologies est vouée à former des zéalotes.

    Être fullstack ne signifie pas que tu maîtrise l'ensemble des technologies : ça signifie que tu comprends le rôle de chaque élément de la pile technologique, quelles sont les implications des choix faits à chaque échelon, et que tu a suffisament d'agilité pour changer régulièrement de langage si possible, voire d'idiome programatique.

    Je suis un fullstack devops (double buzz word), ceci dans le sens où je suis capable de composer une application du storage à l'expérience utilisateur, en passant par les systèmes de cache, de proxy, de déployement, de test en continu, d'architecture réseau, etc. Évidement, je ne suis pas bon dans tout, mais je sais le faire et je sais faire appelle aux bonnes personnes pour compléter mes compétences.

    Mais je trouve un peu facile de jeter fullstack avec l'eau du bain. Il il y a 10 ans, fullstack n'existait pas car c'était la norme : un dev web était un dev LAMP, mixant tout dans la même page source (PHP/HTML/CSS/JavaScript/SQL).

    Je finirais par répondre à ton focus sur l'opérationnelité de l'étudiant qui serait illusoire avec une telle formation. Quelque soit les langages que l'on connaît, il y a toujours une phase d'apprentissage du langage du projet. On y échappe pas, malgré l'expérience, ça prend toujours facilement un mois, pour commencer à être opérationnel. Apprendre un nouveau langage de programmation n'est qu'un détail, il est rare de tomber sur un langage dont on ne connaît pas les idiomes fondateurs (surtout qu'on a eu une formation correcte à travers C++).

  • [^] # Re: Paquet *.deb

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Micro Music Player (mmp), le lecteur musical minimaliste, sort en version 3.0. Évalué à 2.

    Ceci dit, il vaut mieux, si tu utilises make, de considérer les variables génériques :

    $(CC) $(CXX) $(LD) $(MAKE) $(RM)
    
  • [^] # Re: Merci

    Posté par  (site web personnel, Mastodon) . En réponse au journal Cohérence des fonctions d'arrondi. Évalué à 3.

    Pour tout ce qui est calcul monétaire, l'usage des nombres flottants devrait être illégal. Seul l'emploi d'une bibliothèque éprouvée pour les calculs monétaires devrait être considéré. J'ai travaillé sur quelques IS où PHP était utilisé, et les développeurs m'ayant précédé avaient opté pour des flottants, quand il s'agissait du prix des prestations… Évidement, au final, cela se traduisait par une comptabilité incohérente et des fausses factures, des faux bilans, etc. Finalement, l'usage des fonctions bc_* s'est généralisé pour travailler sur les nombres décimaux, alors que malheureusement, le web bouge vers le JS, qui est encore pire en matière de gestion de l'approximation de la représentation des nombres décimaux en nombres flottants, misère !

  • # mtrace

    Posté par  (site web personnel, Mastodon) . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 2.

    J'ai aussi tenance à encapsuler l'allocation mémoire, pour tenter de gérer les cas d'erreur au mieux. Le soucis est que ceci rend compliqué l'usage de mtrace pour détecter les fuites mémoires (puisque toutes les allocations proviennent du même site d'appel à malloc. Alors oui, on peut commencer à envisage d'écrire des routines compatibles avec mtrace, mais ça devient compliqué.

  • [^] # Re: Outil graphique

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à 2.

    C'est vrai que c'est meilleur frais, les épinards.

    En fait, j'ai un énorme avec cette tendance à mettre tout en web. C'est lent, ça n'est pas ergonomique, ça pose des problèmes de sécurité, ce n'est pas utilisable hors ligne, etc.

  • [^] # Re: Outil graphique

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à -2.

    Je hais les application web.

  • # Outil graphique

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à 3.

    Il y a quelques années je m'étais amusé à écrire une application Gtk permettant de tester une regex. C'est encore toujours un embryon, je l'ai juste mis à jour pour compiler avec de nouvelles moutures de Boost. Pull requests bienvenues : https://github.com/LupusMichaelis/warg

  • [^] # Re: Ne pas toujours utiliser les expressions rationnelles

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à 3.

    Ou même pour les adresses de courrier électroniques, c'est impossible d'écrire une Regex qui prenne en compte l'ensemble des RFC régissant le format des courriels.

  • [^] # Re: «Il concurrence donc directement les langages C et C++.»

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 3.

    C'est ce que j'ai longtemps cru moi aussi.

    http://linux.die.net/man/2/mmap

    MAP_ANONYMOUS
    The mapping is not backed by any file; its contents are initialized to zero. The fd and offset arguments are ignored; however, some implementations require fd to be -1 if MAP_ANONYMOUS (or MAP_ANON) is specified, and portable applications should ensure this.

    http://linux.die.net/man/3/jemalloc

    Traditionally, allocators have used sbrk(2) to obtain memory, which is suboptimal for several reasons, including race conditions, increased fragmentation, and artificial limitations on maximum usable memory. If --enable-dss is specified during configuration, this allocator uses both mmap(2) and sbrk(2), in that order of preference; otherwise only mmap(2) is used.

    Je te conseille aussi de lire les vidéos de autour de Jemalloc qui sont très instructives.

  • [^] # Re: «Il concurrence donc directement les langages C et C++.»

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 2.

    brk permet de demander au kernel une plage adressable ; mmap de l'adresser.

  • [^] # Re: «Il concurrence donc directement les langages C et C++.»

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 3.

    s/istream|cout/std::&/
  • [^] # Re: «Il concurrence donc directement les langages C et C++.»

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 5.

    malloc est implémenté en termes de mmap, qui est un appel système. malloc est un dans le man 3, seules les commandes dans le manuel 2 sont des appels systèmes, des primitives comme on dit en Français.

  • [^] # Re: «Il concurrence donc directement les langages C et C++.»

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 5.

    malloc n'est pas un appel système.

  • [^] # Re: Politique de sécurité

    Posté par  (site web personnel, Mastodon) . En réponse au journal NuTyX, une distribution atypique . Évalué à 1.

    on a pas parlé de goto en même temps ;)

  • [^] # Re: Politique de sécurité

    Posté par  (site web personnel, Mastodon) . En réponse au journal NuTyX, une distribution atypique . Évalué à 1.

    Connais-tu un cas concrès ?

    http://en.wikipedia.org/wiki/MD5#cite_note-5

    le moindre fichier pas correct… boom

    md5sum ne garanti pas qu'un fichier correspondant à ta somme de contrôle md5sum soit celui délivré originellement. C'est bien pour un premier filtre, mais après il faut utiliser une méthode un peu plus fiable.

    Tu peux siter des distro dons les miroirs sont https ?

    Aucune, ce qui serait un problème si aucun mécanisme de signature n'était employé. Par exemple, Debian utilise GPG pour garantir l'intégrité et l'origine du paquet. Certains miroirs sont fournis à travers rsync d'ailleurs, ce qui passe via SSH.

    Date de création de la distro debut 2007, le domain nutyx.org date du novembre 2007

    Un chat d'un an, c'est adulte. Un éléphant d'un an, c'est trop jeune.

    Si tu pouvais m'en pointer une précisément.
    src/cards_depends.cc:42
    src/cards_depends.cc:69 // looped memory leak <3
    J'en ai vu quelques autres, mais là j'ai pas le temps.

    Pour parcourir des dossiers, des containers et des fichiers c'est pas la bonne methode ?

    http://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoning

    On va aller dire ça aux devel du kernel, de gtk, de gnome, de xfce, de curl, de libarchive,etc, etc

    Il y a trop de C dans du C++. Il faut choisir, car il y a des différences subtiles entre le C et le C++, sans compter les divergences entre les deux standards depuis C99. Si tu fais du C, fais-le dans des .c, pas des .C (ou .cc, .cpp, etc)

    l'horrible using namespace std
    Pourquoi "horrible" tu peux développer ?

    C'est une mauvaise pratique pour les raisons suivantes :

    • dans le scope global, cela entraîne des collisions de noms
    • dans un en-têtes, cela pourri les clients de la classe
    • ça réduit la lisibilité : je sais ce qu'est std::string, mais il faut que je vérifie si string est bien std::string
    • ça viole le principe de séparation des responsabilités.

    J'aurai bien aimé passé au nouveau C++11 d'autant que c'est pour cette raison qu'il y a du C pour les dépendances. J'ai pas osé m'aventurer avec le container unordered_set (pour les deps c'est ce qu'il faut) mais on était encore en 2013

    Ouais, bon, on est en 2015, on fait du C++14 maintenant :p

    Oui, et quel est le prob ? sed est mon ami

    Mais pas celui des utilisateurs de ton programme. Et ça démontre que tu ne prends pas au sérieux ces problématiques fondamentales en charge, ce qui est gênant pour quelqu'un qui prétend fournir une distribution Linux.

  • # Politique de sécurité

    Posté par  (site web personnel, Mastodon) . En réponse au journal NuTyX, une distribution atypique . Évalué à 1.

    Pour l'instant, la distribution est visiblement trop jeune: https://github.com/8l/nutyx/blob/master/chroot/cards/Pkgfile

    Pas de https, un simple md5 (qui est facilement spoofable de nos jours).

    Quand au code C++, il y a un peu trop de C (malloc, strcmp), des commentaires en français, l'horrible using namespace std, code dans le style C++98 (mais je peux comprendre le conservatisme pour un outil aussi central), beaucoup de boucles, du chemin de fichier en dur, de l'usage excessif de std::endl (ceci n'est pas équivalent à '\n'), un gros if/else dans le main plutôt qu'un comand design pattern (one-liner), plein de memory leak parce que trop C (je pense essentiellement à la gestion des dépendances), etc.

    Mais c'est un travail intéressant.

  • [^] # Re: communauté

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Publication d'evQueue sous licence libre. Évalué à 2.

    J'avoue que je suis un crétin qui pinaille sur des détails à la con, tel que la sécurité et la correction (correctness, pas sur que l'emploi en français soit correct) du développement :p

    J'ai commencé à essayer d'utiliser et d'améliorer le code, mais je n'y ai pas consacré beaucoup de temps. Je publierais un export Git et vous envoie le lien via courriel.

  • [^] # Re: communauté

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Publication d'evQueue sous licence libre. Évalué à 2.

    Obtenir des retours est toujours une bonne chose

    Ceci est discutable. Pas mal de personnes se sont prises des coups en montrant leur code PHP particulièrement dégueulasse. Bon, le PHP fournit contient quelques maladresses (htmlentities pour gérer du XML, sériously?) Ici, c'est principalement du C++ (enfin, surtout du C plus ou moins objet), ça réduit le nombre de râleurs possibles. Mais n'ayez point peur, je viendrais vous embêter avec ces sprintf non-vérifiés, ces ignobles allocations nues, les terrifiants héritages publics sans destructeurs virtuels, ce code sans tests, ces données en dur (mots de passe et proxy compris) et surtout cet ignoble class DB qui impose d'être clonée pour chaque requête car elle gère la désallocation du MYSQL_RES dans le destructeur.

    Plus sérieusement, pourquoi ne pas avoir utilisé MySql++ et Boost par exemple ?

  • [^] # Re: L'attente

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Minetest 0.4.12, le retour du cube. Évalué à 1.

    Ce n'est pas un problème de vieillesse. Minetest semble se compiler avec des en-têtes pour libnss qui ne correspondent pas à la bibliothèque dynamique avec laquelle tu essaye de lier :

    • make clean, pour être certain de ne pas avoir de vieux .o (hahaha).
    • assures-toi de n'avoir qu'une version des en-têtes de la bibliothèque
    • vérifie que les chemins vers les en-têtes correspondent avec les chemins vers les bibliothèques.
  • [^] # Re: Linus multifonction

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie du noyau Linux 3.19. Évalué à 10.

    Ça peut aussi être une bonne occasion de montrer à ces gamins ce que « to hack » signifie littéralement.

  • [^] # Re: Un langage complexe ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à -1.

    « Chez moi ça marche » n'est pas un argument. Par contre « Chez moi A est lent, et B est rapide », est un argument :p

  • [^] # Re: Un langage complexe ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 0.

    Et Minecraft est d'une lenteur monstrueuse à cause de ce choix. Quand on compare à Minetest, on se demande comment Mojang peut continuer à vouloir utiliser ce veau.

    Précisons que Minecraft était un jeu indépendant, et que donc le choix de la technologie ne répond pas au besoin technique mais au besoin de diminuer le coût de production.

  • [^] # Re: Un langage complexe ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 3.

    Tu peux citer des jeux commerciaux qui utilisent PyGame ? Pour des point-n-click c'est intéressant, mais je doute qu'on puisse faire un jeu qui exige des ressources (FPS, RTS, etc). D'ailleurs, Python est une erreur pour tout jeu demandant des performances d'affichage et demandant du parallélisme. Et le problème est justement le GC qui a encore un lock global.

    Unity est principalement utilisé par des indépendants ou des amateurs. Tout comme XNA.

    UnrealScript est en effet un bon exemple.

    Bref, le choix de la technologie est évidement dépendant du type de jeu qu'on veut développer. Mais il est évident que le C++ reste le langage de choix pour développer un jeu vidéo sérieusement.

    Il serait intéressant de creuser cette page Wikipedia qui n'est pas très étayée : http://en.wikipedia.org/wiki/Game_programming#Programming_languages