Moi, ce qui me surprend c’est le fait que le paramètre soit une variable global et pas un paramètre passé par la pile. Et ça, silencieusement.
En fonction du type du paramètre, l’argument est soit en copie, soit par référence. Ce n’est clairement pas évident pour quelqu’un qui ne maîtrise pas le langage. Note que cette remarque peut-être valable sur d’autre langage, je pense notamment au Java.
Ben juste parce que le mec qui a fait ça avant il est mauvais.
Je ne suis pas d’accord, le truc écrit dans les années 90 (pour des vieilles bases de code) on été écrite avec des contraintes de l’époque. L’ancien dev. n’est pas nécessairement plus mauvais.
Le nouveau développeur qui a réussi son stage de fn d'année réussira mieux que le dino qui a écrit tout ça avant lui.
Je vois plutôt l’inverse, les jeunes qui sortent de l’école ne savent utiliser que des IDE qui font tout à leur place, si la fonction n’existe pas, oups ! Le jeune va te refaire tout un super design car le langage permet plein de nouveau truc. Sauf que par manque d’expérience, il va se prendre les pieds dans le tapis de cas tordu : « Ah bon, ça peut arriver ? ».
Je fais passer des entretiens techniques dans ma société pour des embauches, j’ai eu mon premier candidat qui a su me dire que le c++ avait des normes, il a même réussi à me les nommer… mais pas à me dire, même vaguement, ce qu’elles apportent.
Je crois qu’ici on est dans un petit monde clos avec un niveau technique supérieur à la moyenne… ça fausse le débat.
C’est plus ou moins tombé en marche. Le problème c’est que les touches sont interprétées par le serveur X, donc l’application windows que j’utilise… que ce soit MobaXterm ou Xming, il ne semble pas tenir compte du layout de windows.
Ce qu’il te dit c’est que le bout de code que tu as écris, Linux ne retournera jamais NULL… donc ce n’est pas la bonne façon de savoir si on peut allouer. De toute façon, tant qu’il y a du swap, tu peux allouer.
J’ai essayé setxkbmap, mais il ne fonctionne pas, enfin, il ne trouve pas les définition des touches dans la debian que j’ai installé sur mon PC de boulot.
Le serveur X11 reçoit des ordres de dessin depuis le réseau (historiquement) et les exécutent sur ton écran (plutôt ta carte graphique).
X11 est tellement lié au réseau que les premières versions, tu ne pouvais pas avoir d’affichage sans carte réseau… ensuite, il y a eu l’interface loopback.
L’avantage de se système c’est que peu importe où sont exécuté les applications, elles s’affichent sur ton écran.
On peut même lancer une application sur un serveur A, le windows manager sur un serveur B et le Desktop manager sur un serveur C.
Dans les problèmes classique de l’architecture : il y a eu des problèmes de sécurité qui n’avait pas été anticipé car a l’époque ce n’était pas encore courant ; il y a eu des problèmes de performance notamment avec l’arrivé de la 3D temps réel. Dans les problèmes de performances, je me souviens qu’en jouant avec la molette pour faire défiler un pdf dans acrobat reader (distant), acrobat envoyait les ordres de dessin comme des listes de lignes. Mais des lettres courbes, ça fait beaucoup de lignes, et on arrivait à 200/300Mbit/s de débit. Aujourd’hui, avec les CPU qui arrivent à faire de la compression LZW rapide, il est plus efficace de transférer des bitmap plutôt que des lignes…
Pour afficher, il faut utiliser la libX11 ou équivalente, mais comme dit précédemment, il vaut mieux passer par des bibliothèques plus moderne comme Qt.
Espérant avoir répondu au moins partiellement à tes interrogations.
De mon point de vue, c’est l’écriture inclusive qui est ridicule. Car voulant énumérer /tous/ les sexes, tu en énumères que deux. Quid des transgenres, hermaphrodites, etc.
Et pourquoi on ne trouverait pas aussi des terminaisons pour les hommes noirs, jaunes, blancs/rouges/verts (en fct. des émotions), et puis des confessions religieuses aussi…
Pourquoi chercher à être exhaustif en listant tous les cas, alors que le neutre existe déjà ?
Tu sais, le seul moyen de ne pas fabriquer des failles, c’est de ne pas développer.
Les pointeurs ne sont qu’un outil, il faut apprendre à les utiliser, comprendre à quoi ils servent et enfin prendre suffisamment de recul pour savoir quand les utiliser ou non.
Se limiter parce qu’il y a un risque n’est àmha pas la meilleure solution.
mouais, moi je vois un noyau linux captif dans un windows, et un noyau linux captif dans un environnement Android, plus des linux enfermés dans des clouds.
Pourquoi captif ? Linux est en relation direct avec plein de monde, sur Android, il gère les communications externe, les interactions avec l’utilisateur, etc. d’accord, il n’est pas en relation direct avec les applicatifs puisqu’il y a Dalvik en intermédiaire. Mais je ne trouve pas que le noyau Linux soit captif.
Sur windows, il communique avec les applications et le hardware, il rend service à l’utilisateur qui lui est peut-être captif (c’est mon cas au boulot 😭), mais le noyau n’est pas captif… au pire, on ne l’a pas laissé emmener ses amis (GNU) avec lui.
J’ai un système à simuler qui contient un certain nombre d’éléments. Plusieurs process qui accède aux données pour répondre aux messages à la place des vrais systèmes en temps réél.
Lorsqu’on change des données pour changer d’état, je veux que l’ensemble soit toujours cohérent.
D’où l’idée de faire du transactionnel. Mais je n’ai pas besoin de persistance, à la fin de mon test, je vais réinitialiser l’ensemble pour le suivant.
Oui. Je me demandais juste s’il n’y avait pas mieux. Après l’avantage de cette solution, c’est que on peut avoir des process codé dans d’autres langages.
[^] # Re: Performance
Posté par Anthony Jaguenaud . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 3.
Je suis parfait, je ne peux rien rater ! 😇 même si je pense que tu as raison…
[^] # Re: Je hais le C++
Posté par Anthony Jaguenaud . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 5.
Moi, ce qui me surprend c’est le fait que le paramètre soit une variable global et pas un paramètre passé par la pile. Et ça, silencieusement.
En fonction du type du paramètre, l’argument est soit en copie, soit par référence. Ce n’est clairement pas évident pour quelqu’un qui ne maîtrise pas le langage. Note que cette remarque peut-être valable sur d’autre langage, je pense notamment au Java.
[^] # Re: Performance
Posté par Anthony Jaguenaud . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 9.
Je ne suis pas d’accord, le truc écrit dans les années 90 (pour des vieilles bases de code) on été écrite avec des contraintes de l’époque. L’ancien dev. n’est pas nécessairement plus mauvais.
Je vois plutôt l’inverse, les jeunes qui sortent de l’école ne savent utiliser que des IDE qui font tout à leur place, si la fonction n’existe pas, oups ! Le jeune va te refaire tout un super design car le langage permet plein de nouveau truc. Sauf que par manque d’expérience, il va se prendre les pieds dans le tapis de cas tordu : « Ah bon, ça peut arriver ? ».
Je fais passer des entretiens techniques dans ma société pour des embauches, j’ai eu mon premier candidat qui a su me dire que le c++ avait des normes, il a même réussi à me les nommer… mais pas à me dire, même vaguement, ce qu’elles apportent.
Je crois qu’ici on est dans un petit monde clos avec un niveau technique supérieur à la moyenne… ça fausse le débat.
[^] # Re: Performance
Posté par Anthony Jaguenaud . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 8.
Moi je vois des managers, des chef de département qui n’ont pas 100k€ à dépenser pour une mise à jour de code qui :
Lorsqu’il y a une bonne base de code qui marche, de bibliothèque qui fonctionne, pourquoi prendre le risque de tout changer ?
[^] # Re: xkeycaps
Posté par Anthony Jaguenaud . En réponse au message Windows BÉPO et serveur X. Évalué à 2.
Merci, je retiendrais.
C’est plus ou moins tombé en marche. Le problème c’est que les touches sont interprétées par le serveur X, donc l’application windows que j’utilise… que ce soit
MobaXterm
ouXming
, il ne semble pas tenir compte du layout de windows.[^] # Re: Au pied de la lettre
Posté par Anthony Jaguenaud . En réponse au journal Réflexion d'un utilisateur de Firefox avec un processeur Intel en 2019. Évalué à 2.
Ce qu’il te dit c’est que le bout de code que tu as écris, Linux ne retournera jamais NULL… donc ce n’est pas la bonne façon de savoir si on peut allouer. De toute façon, tant qu’il y a du swap, tu peux allouer.
La bonne solution c’est les limitation cgroup.
# Setxkbmap ne marche pas :'(
Posté par Anthony Jaguenaud . En réponse au message Windows BÉPO et serveur X. Évalué à 2. Dernière modification le 27 mai 2019 à 14:40.
J’ai essayé setxkbmap, mais il ne fonctionne pas, enfin, il ne trouve pas les définition des touches dans la debian que j’ai installé sur mon PC de boulot.
# Du dessin
Posté par Anthony Jaguenaud . En réponse au message renseignement sur le server X11. Évalué à 5.
Le serveur X11 reçoit des ordres de dessin depuis le réseau (historiquement) et les exécutent sur ton écran (plutôt ta carte graphique).
X11 est tellement lié au réseau que les premières versions, tu ne pouvais pas avoir d’affichage sans carte réseau… ensuite, il y a eu l’interface loopback.
L’avantage de se système c’est que peu importe où sont exécuté les applications, elles s’affichent sur ton écran.
On peut même lancer une application sur un serveur A, le windows manager sur un serveur B et le Desktop manager sur un serveur C.
Dans les problèmes classique de l’architecture : il y a eu des problèmes de sécurité qui n’avait pas été anticipé car a l’époque ce n’était pas encore courant ; il y a eu des problèmes de performance notamment avec l’arrivé de la 3D temps réel. Dans les problèmes de performances, je me souviens qu’en jouant avec la molette pour faire défiler un pdf dans acrobat reader (distant), acrobat envoyait les ordres de dessin comme des listes de lignes. Mais des lettres courbes, ça fait beaucoup de lignes, et on arrivait à 200/300Mbit/s de débit. Aujourd’hui, avec les CPU qui arrivent à faire de la compression LZW rapide, il est plus efficace de transférer des bitmap plutôt que des lignes…
Pour afficher, il faut utiliser la libX11 ou équivalente, mais comme dit précédemment, il vaut mieux passer par des bibliothèques plus moderne comme Qt.
Espérant avoir répondu au moins partiellement à tes interrogations.
[^] # Re: Premier vote
Posté par Anthony Jaguenaud . En réponse au journal Appel de plusieurs organisations à imposer un minimum d'interopérabilité pour les GAFA. Évalué à 10.
De mon point de vue, c’est l’écriture inclusive qui est ridicule. Car voulant énumérer /tous/ les sexes, tu en énumères que deux. Quid des transgenres, hermaphrodites, etc.
Et pourquoi on ne trouverait pas aussi des terminaisons pour les hommes noirs, jaunes, blancs/rouges/verts (en fct. des émotions), et puis des confessions religieuses aussi…
Pourquoi chercher à être exhaustif en listant tous les cas, alors que le neutre existe déjà ?
[^] # Re: Quelques liens pour t'aider
Posté par Anthony Jaguenaud . En réponse au message exercice en python3. Évalué à 2. Dernière modification le 21 mai 2019 à 17:18.
Avec le reformatage du code, je comprends mieux.
Le premier me semble un peu complexe pour le besoin. Je partirai donc du second. En faisant deux étapes :
[^] # Re: Quelques liens pour t'aider
Posté par Anthony Jaguenaud . En réponse au message exercice en python3. Évalué à 2.
Merci, il y avait eu de la perte à cause des
<
.[^] # Re: Quelques liens pour t'aider
Posté par Anthony Jaguenaud . En réponse au message exercice en python3. Évalué à 2.
Salut,
commençons par le début. Quand je lance ce programme, j’ai une erreur.
Mon interpréteur python n’aime pas la ligne :
Que cherches-tu as tester ?
Peux-tu m’expliquer l’erreur suivante ?
TypeError: object of type 'int' has no len()
# Un autocollant RTFM
Posté par Anthony Jaguenaud . En réponse au sondage Quel objet inutile avez‐vous sur votre bureau ?. Évalué à 3.
Je ne l’ai jamais collé, mais il est là !
[^] # Re: Garantie de disponibilité pièces de rechanges
Posté par Anthony Jaguenaud . En réponse au journal L'increvable le retour. Évalué à 1.
En montant l’escalier…
--->[]
[^] # Re: sécurité et pointeurs
Posté par Anthony Jaguenaud . En réponse au message structure dans une fonction sans pointeur. Évalué à 3.
Tu sais, le seul moyen de ne pas fabriquer des failles, c’est de ne pas développer.
Les pointeurs ne sont qu’un outil, il faut apprendre à les utiliser, comprendre à quoi ils servent et enfin prendre suffisamment de recul pour savoir quand les utiliser ou non.
Se limiter parce qu’il y a un risque n’est àmha pas la meilleure solution.
# Utiliser ton gestionnaire de paquet ?
Posté par Anthony Jaguenaud . En réponse au message mon programme n'arrive pas a trouver la lib. Évalué à 2.
Sur debian, sokoban est dans le paquet : games-puzzle
Je ne l’ai pas trouvé pour fedora.
[^] # Re: Mais il va rester quoi à Linux ?
Posté par Anthony Jaguenaud . En réponse au journal Windows est enfin prêt pour le desktop . Évalué à 3.
Pourquoi captif ? Linux est en relation direct avec plein de monde, sur Android, il gère les communications externe, les interactions avec l’utilisateur, etc. d’accord, il n’est pas en relation direct avec les applicatifs puisqu’il y a Dalvik en intermédiaire. Mais je ne trouve pas que le noyau Linux soit captif.
Sur windows, il communique avec les applications et le hardware, il rend service à l’utilisateur qui lui est peut-être captif (c’est mon cas au boulot 😭), mais le noyau n’est pas captif… au pire, on ne l’a pas laissé emmener ses amis (GNU) avec lui.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Merci pour les réponses. Par contre, je ne vois pas la section « Why Not Use TinyDB » :'(
[^] # Re: Transactionnel et en RAM sont incompatibles
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 5.
La durabilité doit être le temps d’un test. La base sera réinitialisé pour le suivant.
Donc, la transaction sera durable dans mon environnement et mon besoin.
[^] # Re: Transactionnel et en RAM sont incompatibles
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
J’ai un système à simuler qui contient un certain nombre d’éléments. Plusieurs process qui accède aux données pour répondre aux messages à la place des vrais systèmes en temps réél.
Lorsqu’on change des données pour changer d’état, je veux que l’ensemble soit toujours cohérent.
D’où l’idée de faire du transactionnel. Mais je n’ai pas besoin de persistance, à la fin de mon test, je vais réinitialiser l’ensemble pour le suivant.
[^] # Re: Redis ?
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Je vais regarder, merci.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Bah, mon besoin c’est surtout de partager les états de mon système qui sont des (clé—valeur)… Une base relationnel me semble un peu overkill.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Oui. Je me demandais juste s’il n’y avait pas mieux. Après l’avantage de cette solution, c’est que on peut avoir des process codé dans d’autres langages.
# ZODB
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
J’avais trouvé ça. Quelqu’un l’a-t-il utilisé ?
Y-a-t-il mieux ?
[^] # Re: Pas mieux, ou presque
Posté par Anthony Jaguenaud . En réponse au message Qt : positionnement "proportionnel" d'un bouton. Évalué à 3.
Regarde du côté des ressorts (stretch) en mettant les bon coef. ça doit faire ce que tu veux…
voir là.
Tu met dans un VBoyLayout un stretch dessus, un HBoxLayout, un stretch dessous.
Dans le HBoxLayout un stretch gauche, bouton, strech droite.
C’est des souvenir ;-)
J’espère avoir pu t’aider.