Par curiosité et aussi parce que j'étais en train de développer un programme en C récemment, j'ai lu pas mal du code de Git récemment et effectivement, j'étais assez étonné de voir que Git ne s'embarrasse généralement pas de libérer la mémoire en cas d'erreur. En revanche pour la gestion des fichiers, j'ai trouvé que la gestion était assez intéressante. Par exemple, lorsque Git veut lire ou écrire l'index (.git/index):
Il verrouille le fichier en créant un autre fichier nommé .git/index.lock
(Notez que si ce fichier verrou existe déjà, il y a deux possibilités : 1/ une autre instance de git est déjà en train d'être exécutée et dans ce cas, on sort ; 2/ l'état global est corrompu, le fichier verrou existant devrait être effacé manuellement)
L'API tempfile ajoute chaque fichier verrou à une liste chainée et enregistre une fonction de callback au cas où le programme se termine (notamment avec atexit() et signal()).
Cette fonction de callback va effacer tous les fichiers verrous de la liste chainée (s'ils existent) au moment où le processus se termine
Dans le cas où le processus se termine correctement, les fichiers verrous auront tous été renommés (.git/index.lock => .git/index) donc il n'y a rien à faire. Autrement, les fichiers verrous temporaires sont effacés et l'état global est préservé.
Un autre exemple est le git clone. Si vous avez déjà remarqué, stopper un git clone en plein milieu ne laisse pas de bordel derrière lui, le répertoire créé se retrouve vide. Au moment de faire un git clone, la commande clone enregistre elle aussi une fonction de callback pour nettoyer les fichiers en cas d'erreur ou d'interruption (voir https://github.com/git/git/blob/master/builtin/clone.c#L935).
N'est-ce pas déjà ce que fait l'outil mr développé par le valeureux Joey Hess ? Mais je me trompe peut-être, c'est un outil que je n'ai jamais utilisé...
Pour ma part, le fait d'avoir le coude et tout l'avant bras sur le bureau, que ça soit pour taper au clavier ou faire joujou avec la souris, a fait complètement disparaitre mes douleurs au niveau du poignet. En plus, l'avantage, comme le cite le commentaire du dessus, c'est qu'on peut avoir une feuille A4 posé devant le clavier : pratique pour travailler.
Et autant quand on avait des écrans cathodiques qui occupaient toute la place sur le bureau, c'était difficile de poser le clavier et la souris loin, mais maintenant avec l'écran plat au fond du bureau, y'a plus de problème.
Autre truc qui aide, baisser les élévateurs du clavier, pour garder l'axe avant-bras/poignet le plus plat possible, et apprendre à taper à dix doigts.
Et enfin, un document que j'avais trouvé sur le net y'a qques années, et qui contient qques conseils intéressants (notamment à propos du débat sur la configuration des éditeurs/terminaux : lettres claires sur fond noir, ou lettres noires sur fond clair ?) : http://www.cgsst.com/stock/fra/guide-dergonomie.pdf
Pour ceux qui auraient la flemme de cliquer, c'est la page sur laquelle je tombe quand je me rends sur le site avec mon navigateur webkit-compatible, 'rekonq'. Pourtant Safari est annoncé comme supporté, donc rekonq devrait l'être aussi. Mais outre ça, je trouve ça insupportable de me faire accueillir par une page comme ça. A la limite, un pop-up pour me dire que mon expérience utilisateur sera moisie, mais qu'on me laisse voir la page avec le navigateur que j'ai choisi !
Enfin, sans me faire l'avocat du diable, je ne suis pas très convaincu par l'argumentaire concernant la rapidité de la recherche. J'y connais pas grand chose en site web, mais j'imagine que voyage-scnf reçoit un peu plus que trois requêtes de béta-testeurs simultanément. Qui peut dire que ce nouveau site pourra tenir la charge quand il y aura des millions d'utilisateurs ?
D'après l'excellente analyse du site "arrêt sur images" sur ce sujet, les associations de consommateurs se rangent pourtant du côté des FAI. En effet, elles soutiennent que l'augmentation de la TVA sur les abonnements internet permettraient finalement de lever la barrière (psychologique) de l'abonnement à 30€ imposée par Free il y a qques années. A terme, cela voudrait dire que les FAI remonteraient tous leurs prix et que la compétivité que la France avait dans ce domaine disparaitrait...
Donc, si jamais il y a augmentation effective de cette fameuse TVA, vivement que Free continue à faire son abonnement à 30€, quitte à perdre de la marge.
Sauf erreur, il me semble que le logiciel "PlayOnLinux" fait déjà ce que tu cherches, c'est-à-dire créer des scripts d'installation d'applications windows pour Wine. Voir http://www.playonlinux.com/fr
Tu as du louper la réponse de l'auteur qui se trouve un peu plus loin, concernant les accès "stat64()" :
"
@Fred , tu as tout a fait raison. En fait ça fait un moment que sais qu'il faut que je modifie ce billet pour y apporter plus de précisions. Oui il ouvre tout le répertoire ~/.mozilla récursivement : grep open skype.log | grep mozilla | wc -l donne 254. (Pour les non initiés je compte le nombre de lignes qui contiennent open et mozilla dans le fichier). Avec le log que j'ai (je ne l'ai pas fait tourner très longtemps) je ne peux pas affirmer qu'il ouvre effectivement le fichier bookmarks.html. Par contre il touche effectivement aux fichier de sauvegarde. grep open | skype.log | grep mozilla | grep bookmark | wc -l donne 4 (mes 4 fichier de sauvegarde).
"
En résumé, l'auteur dit que skype ne se contente pas seulement des "stat64()" mais qu'il fait bien les "open()" qui vont avec..
En fait, j'avais aussi donné suite à leur première réponse mais je n'avais jamais rien reçu en retour... Tu as été plus chanceux que moi.
Bref, tant mieux qu'ils jouent le jeu entièrement. À nous maintenant de faire connaitre cette procédure au plus grand nombre !
Oui, ils repassent une version télévisée de cette pub tous les matins sur bfm en ce moment. "une rencontre.. une rencontre ; une claque.. une claque ; internet.. internet". Je me marre à chaque fois..
Quand j'ai lu ce journal, avec une grande stupeur (linuxfr est-il vraiment l'endroit rêvé pour un discours anti-anonymat ?), je n'avais pas encore regardé qui en était l'auteur. Puis, j'ai compris.. il ne faut pas lire beaucoup de trolls dans les commentaires de journaux/dépêches pour voir le nom réapparaitre un certain nombre de fois (même si en général il faut déplier les commentaires).
Puis finalement, au même titre que l'anonymat, un autre principe parfois menacé, la présomption d'innocence, me laisse imaginer une possibilité. Enfin, ça serait du coup une fausse innocence mais bref... peut-être que notre ami Zenitram a en fait lu des livres de psychologie sociale ! Celui que j'ai lu le mois dernier, par exemple, était vraiment intéressant : "La soumission librement consentie" de Joule et Beauvois (c'est la suite de leur bestseller "Petit traité de manipulation à l'usage des honnêtes gens"). Il aura alors particulièrement retenu le chapitre qui traite de contre-propagande. En gros, voici la recette :
1/ Prenez un public plutôt favorable à une certaine opinion : genre le public de linuxfr vis à vis des libertés (au moins informatiques)
2/ Faites lui entendre une contre-propagande un peu grotesque (comme celle de ce journal ou dans le même genre - parce que celle là, je l'aime bien - "les caméras de surveillance, ça me dérange pas : j'ai rien à me reprocher") à laquelle il est fortement probable que le public n'adhère pas (c'est tout le principe de la manoeuvre)
3/ et voilà, c'est cuit ! Vous avez maintenant un public bien plus favorable à l'opinion de départ qu'il ne l'était à la base !
Donc merci qui de nous rendre encore plus militants pour les libertés du citoyen, ceci sans même qu'on s'en aperçoive, merci Zenitram !
Il me semble qu'au delà de l'aspect climatique, il y a aussi une dimension beaucoup plus importante : celle d'arrêter de gâcher, sous le prétexte que c'est gratuit ou pas grave. Et un jour, il faudrait enfin un sacré changement de mentalité sur cet aspect...
J'utilise rekonq depuis hier, et c'est que du bon ! Je peux enfin me débarrasser de firefox pour tous les sites web qui passaient pas avec konqueror (genre gmail). Avec archlinux, la dernière version est dans AUR : yaourt -S aur/rekonq
Y'a des fois où c'est pas possible de le faire avec des fonctions (inline ou pas). Les macros offre la concaténation des arguments (opérateur ##) et c'est sacrément utile !
Alors là, je suis partagé... En effet, je suis assez fan de méga (voire monstro) macro qui permettent de factoriser du code assez bien. Par exemple, mon dernier exemple en date, pour ceux qui connaissent, le codage d'une bibliothèque pour l'environnement Lua (petit moteur de script, très portable et donc parfait pour l'embarqué). L'ajout de nouveaux types dans Lua est très redondant et si on veut déclarer et utiliser ces types, les macros sont vraiment super.
Après, il faut savoir leur donner de la gueule. Je suis d'accord que dans l'exemple ci-dessus, c'est vraiment dégueu, mais il suffit de coder la macro comme du code normal (avec les retours chariots et l'indentation d'un code propre), puis avec une commande de remplacement on rajoute un '\' en fin de chaque ligne (sauf la dernière) et enfin (le meilleur !!), grâce à l'outil génial "tal" (http://thomasjensen.com/software/tal/), pour lequel on a évidemment rajouté un raccourci dans vim, on aligne proprement les '\' en fin de ligne. Et voilà, le tour est joué ! Au prochain épisode, comment débugger les macros avec gdb...
Ce qui compte surtout, c'est que la personne qui écrit (ne serait-ce qu'une ligne) un journal pour relater un truc intéressant, fasse un résumé correct qui met en avant les informations essentielles.
Ici, l'information intéressante c'est le concept du système d'exploitation et pas du tout le fait que microsoft research participe à des projets avec des universités.
Bref, pas besoin d'être technique et fourni, juste précis et exact.
Il ne me semble pas avoir souhaité la mort d'aucun site. J'ai lu pcinpact pendant qques années, surtout pour les news grand-public (matos, tendance, etc) qu'on ne trouve pas sur linuxfr. Après, pour les news relatant de trucs un peu avancé (au moins dans les domaines que je connais), les journalistes tapent souvent à côté (inexactitude, lancement de troll, etc). Le pire étant les lecteurs ("montre moi tes lecteurs, je te dirais qui tu es").
La dernière fois, le gars écrit au moins 5 fois dans sa news "la puce SoC". J'envoie très aimablement que cette formulation est erronée : soit on se la joue à la française et on dit "le système intégré sur puce", soit on reste en anglais et on dit "le SoC". Mais on va pas commencer à parler du "noyau Linux Kernel" ! Bref, l'auteur n'a rien répondu mais ses fidèles lecteurs m'ont -évidemment- insulté pour "intégrisme". Vivement qu'ils ne viennent jamais dans les débats de linuxfr alors !
Ceci étant dit, pour le problème qui nous intéresse, l'article de pcinpact n'est pas méchant (on aura juste relever la tentative de troll à la dernière phrase). En fait, c'est surtout ce journal qui transforme cette tentative en véritable troll !
Cet article illustre vraiment la méconnaissance des gens/pcinpact sur la réalité des entreprises. Encore heureux qu'une multinationale comme Microsoft ait des départements de recherche et développement qui travaillent avec le milieu académique. Ensuite, que les projets initiés soient distribués librement n'a rien d'étonnant non plus : surtout de la part d'instituts académiques publiques (au moins en france).
Bref, puisque c'est vendredi (ou c'était vendredi y'a vraiment pas longtemps), je me permet de dire que ça me fait bien ch*** de lire des dépêches pcinpact sur linuxfr...
# En parlant de Git...
Posté par Joël . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 9.
Par curiosité et aussi parce que j'étais en train de développer un programme en C récemment, j'ai lu pas mal du code de Git récemment et effectivement, j'étais assez étonné de voir que Git ne s'embarrasse généralement pas de libérer la mémoire en cas d'erreur. En revanche pour la gestion des fichiers, j'ai trouvé que la gestion était assez intéressante. Par exemple, lorsque Git veut lire ou écrire l'index (
.git/index
):.git/index.lock
lockfile
(https://github.com/git/git/blob/master/lockfile.h) qui s'appuie sur l'APItempfile
(https://github.com/git/git/blob/master/tempfile.h)tempfile
ajoute chaque fichier verrou à une liste chainée et enregistre une fonction de callback au cas où le programme se termine (notamment avecatexit()
etsignal()
)..git/index.lock
=>.git/index
) donc il n'y a rien à faire. Autrement, les fichiers verrous temporaires sont effacés et l'état global est préservé.Un autre exemple est le
git clone
. Si vous avez déjà remarqué, stopper un git clone en plein milieu ne laisse pas de bordel derrière lui, le répertoire créé se retrouve vide. Au moment de faire un git clone, la commande clone enregistre elle aussi une fonction de callback pour nettoyer les fichiers en cas d'erreur ou d'interruption (voir https://github.com/git/git/blob/master/builtin/clone.c#L935).# myrepo
Posté par Joël . En réponse au journal Gérer son espace de travail git avec "gws". Évalué à 3.
Il y a aussi l'outil
mr
par l'excellent et incontournable Joey Hess : http://myrepos.branchable.com/Visiblement, ça gère même tous les types de repo de manière tout à fait transparente.
# Mr ?
Posté par Joël . En réponse au journal scm.py : gérer simplement plusieurs dépôts Mercurial et Git. Évalué à 1.
N'est-ce pas déjà ce que fait l'outil mr développé par le valeureux Joey Hess ? Mais je me trompe peut-être, c'est un outil que je n'ai jamais utilisé...
[^] # Re: coude posé
Posté par Joël . En réponse au journal Ergonomie et aménagement du poste de travail : retours et appels à expériences. Évalué à 2.
Pour ma part, le fait d'avoir le coude et tout l'avant bras sur le bureau, que ça soit pour taper au clavier ou faire joujou avec la souris, a fait complètement disparaitre mes douleurs au niveau du poignet. En plus, l'avantage, comme le cite le commentaire du dessus, c'est qu'on peut avoir une feuille A4 posé devant le clavier : pratique pour travailler.
Et autant quand on avait des écrans cathodiques qui occupaient toute la place sur le bureau, c'était difficile de poser le clavier et la souris loin, mais maintenant avec l'écran plat au fond du bureau, y'a plus de problème.
Autre truc qui aide, baisser les élévateurs du clavier, pour garder l'axe avant-bras/poignet le plus plat possible, et apprendre à taper à dix doigts.
Et enfin, un document que j'avais trouvé sur le net y'a qques années, et qui contient qques conseils intéressants (notamment à propos du débat sur la configuration des éditeurs/terminaux : lettres claires sur fond noir, ou lettres noires sur fond clair ?) : http://www.cgsst.com/stock/fra/guide-dergonomie.pdf
# En bref
Posté par Joël . En réponse au journal Un concurrent pour Voyages-SNCF. Évalué à 10.
Déjà, ça je suis pas fan : https://beta.capitainetrain.com/splash/unsupported_browser
Pour ceux qui auraient la flemme de cliquer, c'est la page sur laquelle je tombe quand je me rends sur le site avec mon navigateur webkit-compatible, 'rekonq'. Pourtant Safari est annoncé comme supporté, donc rekonq devrait l'être aussi. Mais outre ça, je trouve ça insupportable de me faire accueillir par une page comme ça. A la limite, un pop-up pour me dire que mon expérience utilisateur sera moisie, mais qu'on me laisse voir la page avec le navigateur que j'ai choisi !
Enfin, sans me faire l'avocat du diable, je ne suis pas très convaincu par l'argumentaire concernant la rapidité de la recherche. J'y connais pas grand chose en site web, mais j'imagine que voyage-scnf reçoit un peu plus que trois requêtes de béta-testeurs simultanément. Qui peut dire que ce nouveau site pourra tenir la charge quand il y aura des millions d'utilisateurs ?
[^] # Re: fatche ça va être dur d'attendre vendredi
Posté par Joël . En réponse au journal N05 4M15 135 H4CK3R5. Évalué à 5.
# Association de consommateurs
Posté par Joël . En réponse au journal Sacrés fournisseurs Internet.... Évalué à 2.
Donc, si jamais il y a augmentation effective de cette fameuse TVA, vivement que Free continue à faire son abonnement à 30€, quitte à perdre de la marge.
# PlayOnLinux
Posté par Joël . En réponse au journal Création d'un package d'application wine. Évalué à 4.
[^] # Re: BIDON
Posté par Joël . En réponse au journal Cinq cent milliards de petits liens, et moi, et moi, et... Skype. Évalué à 3.
"
@Fred , tu as tout a fait raison. En fait ça fait un moment que sais qu'il faut que je modifie ce billet pour y apporter plus de précisions. Oui il ouvre tout le répertoire ~/.mozilla récursivement : grep open skype.log | grep mozilla | wc -l donne 254. (Pour les non initiés je compte le nombre de lignes qui contiennent open et mozilla dans le fichier). Avec le log que j'ai (je ne l'ai pas fait tourner très longtemps) je ne peux pas affirmer qu'il ouvre effectivement le fichier bookmarks.html. Par contre il touche effectivement aux fichier de sauvegarde. grep open | skype.log | grep mozilla | grep bookmark | wc -l donne 4 (mes 4 fichier de sauvegarde).
"
En résumé, l'auteur dit que skype ne se contente pas seulement des "stat64()" mais qu'il fait bien les "open()" qui vont avec..
[^] # Re: Petite précision
Posté par Joël . En réponse au journal ASUS : remboursement de la licence windows. Évalué à 3.
Bref, tant mieux qu'ils jouent le jeu entièrement. À nous maintenant de faire connaitre cette procédure au plus grand nombre !
[^] # Re: La poste restante
Posté par Joël . En réponse au journal ASUS : remboursement de la licence windows. Évalué à 4.
[^] # Re: Et niveau liberté ?
Posté par Joël . En réponse au journal Nouveau jouet ?!. Évalué à 4.
[^] # Re: Il y a internet et internet
Posté par Joël . En réponse au journal Il y a internet et internet, mais une escroquerie reste une escroquerie.. Évalué à 2.
# Psychologie sociale
Posté par Joël . En réponse au journal De l'incohérence des pro-anonymat. Évalué à 2.
Puis finalement, au même titre que l'anonymat, un autre principe parfois menacé, la présomption d'innocence, me laisse imaginer une possibilité. Enfin, ça serait du coup une fausse innocence mais bref... peut-être que notre ami Zenitram a en fait lu des livres de psychologie sociale ! Celui que j'ai lu le mois dernier, par exemple, était vraiment intéressant : "La soumission librement consentie" de Joule et Beauvois (c'est la suite de leur bestseller "Petit traité de manipulation à l'usage des honnêtes gens"). Il aura alors particulièrement retenu le chapitre qui traite de contre-propagande. En gros, voici la recette :
1/ Prenez un public plutôt favorable à une certaine opinion : genre le public de linuxfr vis à vis des libertés (au moins informatiques)
2/ Faites lui entendre une contre-propagande un peu grotesque (comme celle de ce journal ou dans le même genre - parce que celle là, je l'aime bien - "les caméras de surveillance, ça me dérange pas : j'ai rien à me reprocher") à laquelle il est fortement probable que le public n'adhère pas (c'est tout le principe de la manoeuvre)
3/ et voilà, c'est cuit ! Vous avez maintenant un public bien plus favorable à l'opinion de départ qu'il ne l'était à la base !
Donc merci qui de nous rendre encore plus militants pour les libertés du citoyen, ceci sans même qu'on s'en aperçoive, merci Zenitram !
# :(
Posté par Joël . En réponse au journal Sozi : vers un système de présentation alternatif libre. Évalué à 1.
[^] # Re: En pleine semaine de la conférence sur le climat ...
Posté par Joël . En réponse au sondage L'uptime de ma machine principale. Évalué à 7.
[^] # Re: rekonq !!
Posté par Joël . En réponse au journal Rekonq, navigateur webkit pour Kde. Évalué à 6.
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Joël . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 1.
# patrick_g ?
Posté par Joël . En réponse à la dépêche Xorg 7.5, xserver 1.7, xdc2009, passé, présent et avenir. Évalué à -10.
[^] # Re: Petit joueur....
Posté par Joël . En réponse au journal ha le php et ses élites. Évalué à 2.
[^] # Re: Petit joueur....
Posté par Joël . En réponse au journal ha le php et ses élites. Évalué à 1.
Après, il faut savoir leur donner de la gueule. Je suis d'accord que dans l'exemple ci-dessus, c'est vraiment dégueu, mais il suffit de coder la macro comme du code normal (avec les retours chariots et l'indentation d'un code propre), puis avec une commande de remplacement on rajoute un '\' en fin de chaque ligne (sauf la dernière) et enfin (le meilleur !!), grâce à l'outil génial "tal" (http://thomasjensen.com/software/tal/), pour lequel on a évidemment rajouté un raccourci dans vim, on aligne proprement les '\' en fin de ligne. Et voilà, le tour est joué ! Au prochain épisode, comment débugger les macros avec gdb...
[^] # Re: Méconnaissance
Posté par Joël . En réponse au journal Projet de Système d'Exploitation par Microsoft, outils libres et innovation. Évalué à 3.
Ici, l'information intéressante c'est le concept du système d'exploitation et pas du tout le fait que microsoft research participe à des projets avec des universités.
Bref, pas besoin d'être technique et fourni, juste précis et exact.
[^] # Re: Méconnaissance
Posté par Joël . En réponse au journal Projet de Système d'Exploitation par Microsoft, outils libres et innovation. Évalué à 5.
La dernière fois, le gars écrit au moins 5 fois dans sa news "la puce SoC". J'envoie très aimablement que cette formulation est erronée : soit on se la joue à la française et on dit "le système intégré sur puce", soit on reste en anglais et on dit "le SoC". Mais on va pas commencer à parler du "noyau Linux Kernel" ! Bref, l'auteur n'a rien répondu mais ses fidèles lecteurs m'ont -évidemment- insulté pour "intégrisme". Vivement qu'ils ne viennent jamais dans les débats de linuxfr alors !
Ceci étant dit, pour le problème qui nous intéresse, l'article de pcinpact n'est pas méchant (on aura juste relever la tentative de troll à la dernière phrase). En fait, c'est surtout ce journal qui transforme cette tentative en véritable troll !
# Méconnaissance
Posté par Joël . En réponse au journal Projet de Système d'Exploitation par Microsoft, outils libres et innovation. Évalué à 8.
Bref, puisque c'est vendredi (ou c'était vendredi y'a vraiment pas longtemps), je me permet de dire que ça me fait bien ch*** de lire des dépêches pcinpact sur linuxfr...
[^] # Re: JIWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Posté par Joël . En réponse au journal HTML5, radio, musique libre. Évalué à 3.