Batchyx a écrit 1261 commentaires

  • [^] # Re: Chacun son style

    Posté par  . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.

    Ce genre de truc se fait a travers des plugins

    Désolé... Moi je croyais qu'un logiciel prenant autant de place que deux DVD Debian n'avais pas besoin de plugin, puisque pour que ça prenne cette taille c'est que ça devait intégrer tout ce qui existait sur terre ...

    Et puis SVN ça va bien 5 minutes, et de ce que j'en lis, VS n'est pas adapté aux workflow des SCM distribués. On dirait Eclipse et son plugin pour Git, qui est complètement imbitable que même linus torvalds ne retrouverai pas ses petits.

    Tu assumes totalement si tu n'en configures qu'un des deux, il est tout a fait possible de changer les parametres dans toutes les config a la fois d'un coup.

    Ça c'est quand c'est moi qui fait la config, et encore, c'est tellement chiant de devoir resélectionner toujours l'option que parfois j'oublie. Et si c'est pas moi, mais quelqu'un d'autre et qu'il ne fait pas gaffe ...
    Franchement, ou est la justification du fait de séparer les deux complètement ? La conffe de développement est si différente de la conffe de prod ?

    Tools -> Options -> Projects & Solutions -> VC++ Project Settings -> C/C++ File Extensions

    Manifestement à l'époque ou je l'utilisait (y a 6 mois), je t'avais pas attendu pour trouver ce menu, puisque j'y vois un c++ et h++ dedans... Bien sur, après c'est reconnu comme source C++, mais ça veut pas pour autant le compiler. À la place ça me met une erreur bien flippante du genre "t'a tout merdé, réinstalle!". On sens le logiciel de qualité !

  • [^] # Re: Chacun son style

    Posté par  . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 6.

    Moi la dernière fois que j'ai cherché à l'utiliser (vs2010), y avais une indentation de merde qui marchait pas, c'était chiant pour splitter des fenêtres (surtout si tu veux des fenêtres de 80 de largeur), y avais aucune intégration avec git/mercurial, et je suis même pas sûr qu'il y avais ne serait-ce que cvs ou svn, et les options des projets restent comme d'habitude complètement imbitables (surtout sous windows ou linker est une vraie galère) et mal organisé avec encore leur séparation minable debug-release ou par défault tu n'en configure qu'un seul des deux. Sans parler de la gestion chiante des fichiers (impossible d'arriver à lui faire respecter l'arbo du système de fichier !) et de l'importation (si tu veux importer 500 fichiers .h++/.c++ qui n'ont pas de projet ... ben t'est foutu. bonne chance pour lui faire bouffer du .c++/.h++ en tant que "source C++" et "header C++" sans devoir lui dire pour chaque fichier).

    Sans oublier le système d'aide qui est tellement évolué avec des services qui se lancent en tâche de fond ... tout ça pour qu'au final il t'affiche une erreur ! Et puis oui, l'éditeur de texte, qui ne vaut pas mieux qu'un bête notepad++ (ne parlons pas d'Emacs/vim), et encore, notepad++ à une recherche incrémentale utile il me semble. Sinon sur les avantages que devrai pouvoir sortir un IDE, la fonction "rechercher la définition" qui me trouve des définitions qui ne sont dans des classes ayant rien à voir avec même pas le même nombre d'argument, et qui au final ne trouve même pas la bonne dans le lot. La completion de code C++ qui veut me compléter des méthodes après un point en prenant tout les noms de classes existants (même s'ils appartiennent à des librairies windows alors que je fait du C++03 pur)

    Après je pourrai râler sur bien d'autres choses spécifique à la gestion du C++ dans VS, mais ça serait spécifique et non général. Et pour le peu de C# que j'ai fait, monodevelop >>>>>> VSC#

  • [^] # Re: Chacun son style

    Posté par  . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.

    Un compilateur qui ne préviens pas quand on utilise une variable non-initialisée, ou bien ça n'est pas un compilateur, ou bien l'idiot de programmeur à viré les warnings, et donc c'est de sa faute.

    On peut en virer des warnings dans Java aussi...

  • [^] # Re: Chacun son style

    Posté par  . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.

    Cela pose les mêmes problèmes quand même.

    Si tu à un vieux pointeur que tu ne met pas à jour qui pointe vers un objet qui n'est plus utilisé (détruit quoi), puis que tu utilise ce pointeur, en C++ ton programme risque de planter, ça sera peut être visible avec valgrind (surtout avec ptrcheck), ou ça ne fera rien du tout.

    Avec Java tu est certain que ta vielle référence pointe sur un objet valide (mais pas le bon), donc tu ne verra rien, sauf peut être une fuite mémoire, mais ça les devs java sont habitués ...

    et ne parlons pas des NullPointerException, qui ont le même effet dans les deux langages.

  • [^] # Re: Modestie...

    Posté par  . En réponse à la dépêche Un entretien avec Lennart Poettering. Évalué à 3.

    Oui, tu a besoin de comprendre en quoi Avahi est un logiciel mal conçu, monolithique et de comprendre que Bonjour/Zeroconf est tellement bien que c'est pas la peine de prévoir des extensions vers des protocoles futurs. Tu doit donc savoir que le jour ou l'on souhaitera améliorer Avahi, il faudra forker et/ou récrire from scratch et modifier toutes les intégrations d'Avahi aux différents logiciels.

    Tu doit comprendre qu'il ne faut surtout pas que chaque application se lie à une couche de découverte de machines/services générique pouvant être implémenté (ou non) par le démon de ton choix, mais qu'à la place chaque application doit se concentrer sur Avahi.

  • [^] # Re: Modestie...

    Posté par  . En réponse à la dépêche Un entretien avec Lennart Poettering. Évalué à 10.

    Parce que tu n'est pas programmeur.

    Moi j'ai envie de faire des logiciels qui savent aussi bien tourner en tant que démon, que tourner en tant qu'utilisateur simple voulant avoir le service temporairement.
    L'exemple le plus simple, c'est bien le serveur HTTP avec PHP : à la fois utile en tant que service mais aussi pour l'utilisateur simple qui veut utiliser une interface web sur le port 1430.

    Et pour faire ces logiciels, je pouvais utiliser n'importe quoi : shell, python, C, C++, Java... et avec la librairie de mon choix, qui pouvait faire des grosses abstractions bien plaisante. Je pouvais utiliser ce que je voulais dans mon logiciel : si je fait du shell, je peux utiliser wget, nc -l, ou n'importe quoi avec mes sockets. Et dans les autres languages, je pouvais utiliser la librairie que je voulais, qui en général avait le bon goût d'être portable, et pas seulement entre des systèmes posix.

    La, ce système de socket activation pète absolument tout, et l'API est complètement centré sur le C. En shell il faudra que j'm'implémente la bidouille des variables d'environnement pour récupérer le fd du socket (qui risque de péter à chaque nouvelle version de systemd), Avec python je pourrai peut être m'en sortir en bidouillant pour appeller les fonctions C qui vont bien, mais par exemple, en Java je peux mourrir. Déjà quand on voit la vieillesse générale des JVM qui sont installées, même si un support systemd appairait (ce qui serai déjà un miracle) dans une nouvelle version (ce qui serai un autre miracle), je risquerai jamais de pouvoir l'utiliser. Et ça c'est lorsque c'est moi qui code le machin. Parce que si c'est un logiciel Java dont j'ai pas le source, qui à été prévu pour être portable mais utilisé principalement sous windows, le support systemd je pourrai me le mettre ou je pense.

    J'ai parlé de Java parce qu'il fait pas mal dans l'esprit "la portabilité, envers et contre tout", mais ce n'est pas le seul. Rien que des bibliothèques C++ de gestion de socket propres et portables ne seront pas utilisables en l'état.

    Et bidouiller chaque bibliothèque pour ajouter le support de systemd... Comme tout développeur, y a des parties ou j'ai envie de faire le meilleur code qui soit, et d'autres ou j'ai simplement envie que ça marche avec le moins d'effort. Pas sûr que beaucoup de monde fasse l'effort de rajouter pas mal de code en plus pour une fonctionnalité qui va être chiante à tester.
    Et ça va surtout faire chier ceux qui voulait une librairie 100% POSIX qui marche partout, parce que au final ils n'auront plus une librairie 100% POSIX qui marche partout. Tout ça parce que Linux n'est même plus foutu de supporter correctement POSIX au démarrage.

    La portabilité, c'est aussi pouvoir exécuter des logiciels prévus pour être portables, même s'ils ont été principalement développé sur des systèmes complètement étrangers.

  • [^] # Re: EBICS

    Posté par  . En réponse au journal Transmissions bancaires : toujours pas dans un format ouvert, et encore plus cher !. Évalué à 5.

    tu clique sur le lien "EBICS" du nourjal, et il y a au moins trois liens pointant vers les specs, choisi celui que tu veux...

  • # EBICS

    Posté par  . En réponse au journal Transmissions bancaires : toujours pas dans un format ouvert, et encore plus cher !. Évalué à 10.

    En quoi EBICS n'est-t'il pas libre ? J'ai pu récupérer la spécification en moins de deux clics. Ça n'est que du webservice sur HTTPS/TLS, avec apparemment les xsd disponibles, toute la sémantique bien décrite comme il faut, et je n'ai pas réussi à trouver une quelconque mention d'une licence ou royalties à payer.

    Ou c'est juste que les banques veulent faire payer alors que c'était gratuit avant ?

  • [^] # Re: mauvaise idée

    Posté par  . En réponse au journal CAPTCHA. Évalué à 2.

    Sauf qu'il y a des problèmes qui ne sont pas solubles par un ordinateur, notamment les problèmes de l'arrêt ou les preuves de comportement d'un programme (qui découlent de l'arrêt). Et encore aujourd'hui, on n'a pas d'algorithmes pour écrire des programmes ;)

    Ça ferait des bons tests CAPTCHA pour des sites webs de programmeurs.

  • [^] # Re: Et comment feront les chauffards

    Posté par  . En réponse au journal Après les voitures sans permis, voici les voitures sans conducteurs :). Évalué à 2.

    Les vrais se mettent à gauche de la chaussée. C'est tellement mieux sur une route étroite et sinueuse, en côte.

    Et non ça n'est pas anecdotique, ça l'était encore il y a trois heures.

  • [^] # Re: et ftp alors ?

    Posté par  . En réponse au journal Firefox : ça continue. Évalué à 6.

    Bonne idée, cachons tout ce qui sert à rien dans ta voiture à manivelle.

    • Virons tout les voyants du tableau de bord. Ça gène le conducteur, ces symboles abscons. Toutes façon on vois bien quand ça tombe en panne.
    • Virons le compte tour. De toute façon on entend le moteur¹
    • Virons les clignotants. Michu ne sait ce que c'est.
    • Virons la ceinture de sécurité, ça l'emmerde quand elle veut tourner la tête pour regarder les pubs.
    • Virons le compteur de vitesse, ça sert qu'à 1% des gens²
    • Virons le choix de la bande de radio, tout le monde écoute Europe2 de toute façon. Et virons le réglage du volume, de toute façon t'est toujours tout seul dans ta caisse.
    • Virons la jauge à éssence. Quand t'en a plus beaucoup, ta voiture téléphone à google, indique ta position³ et un camion citerne va venir te remplir ton réservoir en cachette, il faudrai surtout pas dire à Michu ce que c'est de l'essence, d'où ça viens et pourquoi ça pose des problèmes.

    ¹ Sauf sur une électrique.
    ² Ça pourrait presque être véridique.
    ³ Bien entendu, ça va alimenter les bases de données de la DCRI

  • [^] # Re: Histoire du son et conclusion

    Posté par  . En réponse au journal PulseAudio ou comment casser ce qui marche (pour le plaisir de casser). Évalué à 3.

    Ce n'est pas parce que le mixage est dans le hardware qu'il ne peut pas être contrôlable en userspace. Tu contrôle déjà bien le mixage fait par la carte son des bips systèmes, du PCM et de la sortie CD vers les différentes sorties (jack, SPDIF, enceinte interne...) de ta carte.

  • # T'aurai pas eu la cure ...

    Posté par  . En réponse au message Le multicast: Bonjour. Évalué à 2.

    d'avoir pris ".local" comme tld pour ton réseau interne ? Parce que si c'est le cas, j'en donne pas cher, moi, de ton réseau.

  • [^] # Re: Oh que ça m’énerve se prétendu « bon sens » !

    Posté par  . En réponse au journal Énergie nucléaire et bon sens. Évalué à 9.

    À faire plancher des chercheurs en algorithmique pour qu'il trouvent le moyen de paralléliser des algorithmes intrinsèquement séquentiels et d'obtenir autre chose qu'un code qui avec deux core est trois fois moins performant que le code non-parallèle sur un seul core.

  • [^] # Re: Démographie allemande

    Posté par  . En réponse au journal Énergie nucléaire et bon sens. Évalué à 3.

    C'est con, mais un nuage passe, 12V -> 8V, le PC s'eteint, le HDD aie...
    Donc, forcement tu doit ramener la tension de sortie a une tension stable. Du coup, un
    DC/DC régulé... finalement, le même cout que l'onduleur de départ; sans avoir la
    possibilité de transporter / vendre / partager l'électricité produite.

    Si tu exploite directement ton panneau solaire tu n'aura pas autant de problème que tu veut le croire, mais tu aura simplement un rendement pourri, parce que tu va le contraindre à délivrer une certaine tension alors qu'un panneau solaire est un générateur de courant. Pour profiter d'un générateurs de courant, il faut mieux utiliser des tensions plus hautes et réguler ensuite. Donc de toute façon il te faut le bidule vendu avec ton panneau solaire qui varie la tension en fonction de l'ensoleillement pour maximiser le rendement, et il te le faudra que tu fasse de l'AC ou du DC.

  • [^] # Re: Scepticisme, quand tu nous tiens...

    Posté par  . En réponse au journal le langage E et l'informatique distribuée. Évalué à 3.

    C'est pas "on doit", c'est obligatoire. Le taux de panne augmente avec le nombre de machine, c'est mathématique (1000 machines fiables à 99.99%, ça fait déjà 10% de proba pour qu'une d'elle tombe en panne). Il y aura au moins une machine ou un bidule réseau qui tombera en panne, momentanément ou définitivement.

    Si ton système ne résiste pas à une quelconque panne alors c'est pas un système distribué.

  • # Parce que <> ne fait pas ce que tu crois.

    Posté par  . En réponse au message Lancer le programme 'chat' sur un port série. Évalué à 2.

    $ man bash

    Ouverture en Lecture/Écriture d'un descripteur de fichier

     L'opérateur de redirection
    
             [n]<>mot
    
     conduit  à  l'ouverture du fichier dont le nom résulte du développement
     du mot, à la fois en lecture et en écriture et lui affecte le  descrip‐
     teur de fichier n ou bien le descripteur 0 si n n'est pas mentionné. Si
     le fichier n'existe pas, il est créé.
    

    D'ailleurs, la redirection >&0 devrai t'avoir mis la puce à l'oreille. C'est de la bonne grosse redirection de flux imbitable ce qu'on à là.

  • [^] # Re: Simplifiable.

    Posté par  . En réponse au message juste pour le fun je suis tombé sur ce bout de code très ..... Évalué à 4.

    brk est un appel système.
    malloc est une fonction C (qui utilise brk et mmap)

    Donc il faut remplacer malloc par brk ?

  • # Simplifiable.

    Posté par  . En réponse au message juste pour le fun je suis tombé sur ce bout de code très ..... Évalué à 2.

    la fonction raise() permet déjà de s'envoyer un signal.

  • [^] # Re: tail -f /dev/ttys2

    Posté par  . En réponse au message Sniffer port RS232. Évalué à 4.

    Ce que ton tail -f va lire, ton programme ne le lira pas.

    Et toute façon, ça interceptera pas ce qui sort du port.

  • [^] # Re: relativité

    Posté par  . En réponse au journal De mon objectivité et mon sens critique en lisant un lien de Tristan Nitot. Évalué à 2.

    Exact, et il n'y a pas que les frottements sur la route, il y a aussi toutes les pertes mécaniques.

    Y a des jolis graphiques ici : http://www.teslamotors.com/blog/roadster-efficiency-and-range
    et surtout celui là :

    Wh/mile vs. Speed

    à 130 km/h (80 mph dans le vieux système impérial), l'aérodynamisme ne représente que ~57% des pertes, alors que les pertes mécaniques représentent ~28% et les frottement sur les roues représentent ~14%...

  • [^] # Re: Euh

    Posté par  . En réponse au journal [DÉTENTE] Liste de logiciels débiles. Évalué à 1.

    Si on se concentre uniquement sur la fonctionnalité "Lister les paquets non-free de ma debian", oui c'est parfaitement normal, mais si on se concentre sur la fonctionnalité "un Richard Matthew Stallman virtuel qui fait comme le vrai", alors c'est clairement un bug, ou alors, je n'imaginait pas qu'il puisse considérer sa propre licence de documentation comme étant non-libre ;)

  • [^] # Re: Euh

    Posté par  . En réponse au journal [DÉTENTE] Liste de logiciels débiles. Évalué à 4.

    Il faudrait ajouter une condition : il faut que le logiciel fonctionne.

    $ vrms
                 Non-free packages installed on Batchy
    
    autoconf-doc              automatic configure script builder documentation
    automake1.9-doc           A tool for generating GNU Standards-compliant Makefile
    gcc-4.4-doc               documentation for the GNU compilers (gcc, gobjc, g++)
    gcc-doc-base              several GNU manual pages
    gcj-4.4-doc               documentation for the GNU Java tools (gcj, gij)
    gdb-doc                   The GNU Debugger Documentation
    
      6 non-free packages, 0.2% of 2555 installed packages.
    

    Je ne vois pas le vrai RMS en train de dire que le manuel de gcc n'est pas libre ;)
  • [^] # Re: Les Fonctions Génériques

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.

    Je ne vois pas en quoi c'est différent de ce que l'on fait en C++ avec la spécialisation de méthodes templates.

  • [^] # Re: Plusieurs

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 4.

    J'ai du mal à voir en quoi les map sont des "sac fourres tout" avec cet exemple. Souvent en java j'utilise des maps privés comme des systèmes d'indexation (et en java, je crois que c'est le seul système d'indexation qui existe), autrement dit, c'est souvent du style map[obj.id] = obj; et je vois pas en quoi c'est incompatible avec la clarté/lisibilité/amour/.... sachant que ça n'a pas beaucoup de différence avec une liste d'objet.