> mais dès qu'on veut faire la moindre petite chose c'est à la fois puissant, expressif et beaucoup plus souple qu'une chaîne de format.
Bon, quitte à entrer dans le troll, allons-y franchement.
Comment fais-tu :
* pour utiliser gettext avec ce magnifique système ? Les défenseurs de C++ ont toujours tendance à considérer ce point comme négligeable et à l’occulter ; en pratique, il ne l’est absolument pas (négligeable)
* un équivalent de tee, qui sorte ta chaine à la fois sur cout et sur un fichier de log ?
> * You cannot assign to, or delete, predefined properties of the built-in JScript objects.
Peut toujours être utile pour du logging
> * You cannot add expando properties to the built-in objects.
String.prototype.rot13 = function() { … }
Oui, on peut faire autrement, mais cette méthode ne me semble pas absurde
> * You must supply the correct number of arguments to function calls.
Non, parce que c’est le seul moyen en javascript de faire les arguments optionnels
> * The arguments property is not available within function calls.
Non, parce que c’est le seul moyen en javascript de faire un nombre variable d’arguments (le va_args du C, *args du python…)
Si c’est le nombre de commentaires, je peux aider.
Je trouve scandaleux que des individus égoïstes m’interdisent de travailler le dimanche pour la seule raison que ça dérange leur petit confort et leurs petites habitudes personnelles.
Le monsieur t’a montré une page avec des données factuelles accessibles à n’importe qui, et toi tu réponds par un argument d’autorité ?
Si tu penses que ce type a tort, montre les chiffres faux au lieu de faire du FUD. Cette page ne semble pas demander des études BAC+12 en climatologie pour être comprise et vérifiée, juste d’un peu de temps.
(pour éviter toute incompréhension : je parle bien évidemment du second lien)
> Le problème de ces traités c'est que c'est des "packages" , avec des trucs nuls et certains trucs biens , la grande soupe
Tu veux dire… comme le choix d’un candidat ou d’un programme politique dans à peu près tout régime démocratique ?
Si on a des professionnels du droit et si on a inventé des concepts tels que l’isonomie, le respect des contrats, la rule of law et tout le tintouin, ce n’est pas pour se prévenir des méfaits de trois pauvres anomistes, mais bien parce qu’il est difficile pour un individu de déterminer la compatibilité d’une règle avec l’intérêt bien compris, qu’il soit particulier ou général…
…maintenant, tu pourrais rétorquer que l’hégémonie positiviste moderne dans le domaine de la philosophie du droit et l’extension concomitante de la législation aux dépends du droit naturel (droit naturel en tant que processus institutionnalisé, s’entend) rend (1) difficile le jugement des règles en elle-mêmes par l’individu, (2) leur évolution tributaire de la volonté de quelque législateurs, offrant ainsi des garanties moins fortes d’adéquation de ces règles législatives avec l’intérêt de chacun (ou de tous, comme tu veux, j’ai tendance à trouver cette dichotomie plutôt artificielle ;)) et je serai d’accord avec toi. Mais comme on dit chez moi, GIGO. On ne peut pas décemment accepter sans cesse l’extension de la sphère de la politique pour se plaindre ensuite des ravage du positivisme juridique.
…
C’est malin, tu viens de me faire rompre ma promesse à moi-même de ne pas troller en cette semaine hyper-chargée. echo 127.0.0.1 linuxfr.org | sudo tee -a /etc/hosts. Ça m’évitera de retomber dans le panneau…
reversed() est une fonction que tu pourrais écrire toi-même. La preuve, je te fais une implémentation naïve en trois lignes :
def reversed(l):
… for i in xrange(len(l)-1, -1, -1):
……yield l[i]
Voire, encore plus court :
def reversed(l):
… return (l[i] for i in xrange(len(l)-1, -1, -1))
(la construction (f(x) for x in iterable) est assez récente, c’est une sorte de map que l’on retrouve dans les langages fonctionnels, mais qui travaille (et renvoie) sur des itérateurs au lieu de listes)
Et c’est bien une méthode de parcours, pas la construction d’une liste en sens inverse.
La notion d’itérateur existe en python, hein. Et même si l’itérateur qui lit en sens inverse n’existe pas de base, c’est l’affaire de quatre lignes pour en faire un (pas optimisé, certes). Avantage par rapport à ceux de C++, c’est que faire un iterateur perso, en python, c’est trivial, l’affaire d’une fonction (et avec les closures, c’est encore plus simple). En C++, c’est déjà plus coton.
pmount n’était même pas installé, donc ça devait pas être ça (parce que Gnome savait monter les clefs usb, par exemple).
En même temps tu parles de debian là, ça doit être pour Gnome 1.0 :) (plus sérieusement, l’arrivée de GVFS a l’air d’avoir changé quelques trucs à ce niveau)
Pareil, au niveau bugs totalement incompréhensibles, j’en ai eu un joli il n’y a pas longtemps.
Un ami m’appelle « je n’arrive pas à monter ma partition windows avec gnome »
Il avais grosso-modo mis une entrée dans /etc/fstab avec l’option user (et noauto), pour monter sa partition avec ntfs-3g. J’arrive, je constate qu’effectivement nautilus me jette de manière fort impolie « vous n’avez pas la permission de lire /dev/sda2, vil faquin ».
Je rentre dans un terminal, je tape mount /dev/sda2 (pas en root, toujours en utilisateur normal)… et ça fonctionne alors comme un charme.
(Je passe les deux heures passées à trouver comment fait Nautilus pour monter cette partition. J’ai fini par trouver que Nautilus passait la demande à GFVS (la lib), qui la passait à gvfsd, qui utilisait mount)
Après une demi-heure de grattage de neurone, pas la moindre idée. Je me dis alors : peut-être gvfsd passe-t-il en nobody au moment du montage. Je remplace /bin/mount par un script qui fait whoami >> /tmp/me avant d’appeler mount.real (l’ancien mount). $ mount /dev/sda2 fonctionne toujours. Nautilus fonctionne toujours pas. Et dans /tmp/me, le même nom d’utilisateur pour les deux commandes.
Je recréé l’environnement à l’identique de celui qui fonctionne dans /bin/mount, toujours rien à faire. Je finis par jeter l’éponge et enlever ce noauto de /etc/fstab.
Je dois avouer que ce bug continue tout de même à m’intriguer…
(le grand classique aussi, oublier de recompiler avant de voir si un patch a corrigé le bug…)
Si (enfin, plus sarcastique/ironique que franchement péjoratif, comme en français d’ailleurs) :
http://en.wiktionary.org/wiki/so-called
(idiomatic) So named; called by such a name, with a very strong connotation that the item is not worthy of that name.
(mathematics, sciences) Same as above, without the negative connotation.
http://dictionary.cambridge.org/define.asp?key=75376&dic(...) :
- used to show that you think a word that is used to describe someone or something is not suitable or not correct
It was one of his so-called friends who supplied him with the drugs that killed him.
- used to introduce a new word or phrase which is not yet known by many people
It isn't yet clear how destructive this so-called 'super virus' is.
Ce trolle me lasse, mais tu as réussi à me faire réagir
> Mais que publier sous GPL c'est bien mieux parce que cela témoigne généralement d'un degré d'altruisme et d'engagement pour autrui plus élevé et en tous cas nécessaire au bon fonctionnement de la société humaine.
C’est la raison la plus stupide que j’aie jamais entendu parler pour défendre la GPL. Je code en GPL pour faire hype, pour « étaler mon altruisme désintéressé » (comme la confiture et la culture ?)
À moins que tu cherches à signifier que tous les BSDistes sont de sales égoïstes anomistes qui veulent détruire la société ?
class DAOUser:
…def __init__(self, config):
……self._dao = eval(config['dao']['constructor'])(config['dao']) # dans un cas réel, tu utiliserais un truc un peu moins bourrin que eval, mais l’idée est là
> Enfin, même sur une application stateless, le bouton back est problématique. Comment gères-tu si la dernière opération modifié le modèle. Tu l'exécutes une deuxième fois ?
Une requête GET ou HEAD n’est pas censé modifier ton modèle. Pour les requêtes POST et PUT, l’UA est censé demander à l’utilisateur (ce que tous font, à ma connaissance). De plus, tu peux tout simplement répondre un code 3xx sur ta requête POST, et plus de problème.
> Enfin, les applications Stateless sont plus sensible cross-site-scripting.
Évidemment, vu qu’il est tout simplement impossible de faire un lien sur une ressource stateful…
En tant qu’utilisateur, c’est chiant. cf voyages-sncf, par exemple.
> On voit bien ces personnes qui au moins utilisent les styles n'ont pas compris leurs principes (les styles peuvent être personnalisés).
Oui, enfin, passer trois heures à modifier les styles pour qu’ils deviennent potable pour faire un document de trois pages, ça va cinq minutes, mais ça devient vite lourd.
Et tout le monde n’est pas graphiste/typographe et n’a pas les compétences pour faire des styles jolis…
Version imprimante : il vaut mieux un pilote sous BSD, parce que je suis à peu près certain que je peux le porter sur tout OS libre, tandis qu’un driver sous GPL nécessitera de me prendre le chou avec les licences (c’est compatible ou pas ? ha, zut, non. Ha, mais c’est pas vraiment un « derivative work », donc je peux quand même… ou c’en est un et je peux pas ? quels sont les critères objectifs pour que ce soit considéré comme un « derivative work » ?) et pourrait même m’empêcher de le redistribuer.
[^] # Re: Une si bonne API
Posté par Moonz . En réponse à la dépêche Sortie de Qt 4.6. Évalué à 3.
Bon, quitte à entrer dans le troll, allons-y franchement.
Comment fais-tu :
* pour utiliser gettext avec ce magnifique système ? Les défenseurs de C++ ont toujours tendance à considérer ce point comme négligeable et à l’occulter ; en pratique, il ne l’est absolument pas (négligeable)
* un équivalent de tee, qui sorte ta chaine à la fois sur cout et sur un fichier de log ?
[^] # Re: Une si bonne API
Posté par Moonz . En réponse à la dépêche Sortie de Qt 4.6. Évalué à 2.
[^] # Re: Surprise
Posté par Moonz . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 3.
> * You must declare all variables.
Oui
> * You cannot assign to, or delete, predefined properties of the built-in JScript objects.
Peut toujours être utile pour du logging
> * You cannot add expando properties to the built-in objects.
String.prototype.rot13 = function() { … }
Oui, on peut faire autrement, mais cette méthode ne me semble pas absurde
> * You must supply the correct number of arguments to function calls.
Non, parce que c’est le seul moyen en javascript de faire les arguments optionnels
> * The arguments property is not available within function calls.
Non, parce que c’est le seul moyen en javascript de faire un nombre variable d’arguments (le va_args du C, *args du python…)
[^] # Re: au fait...
Posté par Moonz . En réponse au journal Le réchauffement climatique est une vaste blague. Un complot.... Évalué à 1.
Je trouve scandaleux que des individus égoïstes m’interdisent de travailler le dimanche pour la seule raison que ça dérange leur petit confort et leurs petites habitudes personnelles.
[^] # Re: Comparaison hasardeuse
Posté par Moonz . En réponse au journal Le réchauffement climatique est une vaste blague. Un complot.... Évalué à 1.
Si tu penses que ce type a tort, montre les chiffres faux au lieu de faire du FUD. Cette page ne semble pas demander des études BAC+12 en climatologie pour être comprise et vérifiée, juste d’un peu de temps.
(pour éviter toute incompréhension : je parle bien évidemment du second lien)
[^] # Re: Bon pour le poil
Posté par Moonz . En réponse au journal Le fait du prince. Évalué à 2.
Tu veux dire… comme le choix d’un candidat ou d’un programme politique dans à peu près tout régime démocratique ?
[^] # Re: Eureka !
Posté par Moonz . En réponse au journal Le réchauffement climatique est une vaste blague. Un complot.... Évalué à 2.
PIB(t) = PIBmax . ( 1 - exp(-tau.t) )
> un monde fini ne peut générer qu'une quantité finie de "truc"
Et l’eau ça mouille.
Demain je t’expliquerai le truc du feu qui brûle.
Mais je vois pas trop le rapport avec la choucroute.
[^] # Re: C'est marrant ça..
Posté par Moonz . En réponse au journal Une bonne définition du droit d'auteur ?. Évalué à 2.
…maintenant, tu pourrais rétorquer que l’hégémonie positiviste moderne dans le domaine de la philosophie du droit et l’extension concomitante de la législation aux dépends du droit naturel (droit naturel en tant que processus institutionnalisé, s’entend) rend (1) difficile le jugement des règles en elle-mêmes par l’individu, (2) leur évolution tributaire de la volonté de quelque législateurs, offrant ainsi des garanties moins fortes d’adéquation de ces règles législatives avec l’intérêt de chacun (ou de tous, comme tu veux, j’ai tendance à trouver cette dichotomie plutôt artificielle ;)) et je serai d’accord avec toi. Mais comme on dit chez moi, GIGO. On ne peut pas décemment accepter sans cesse l’extension de la sphère de la politique pour se plaindre ensuite des ravage du positivisme juridique.
…
C’est malin, tu viens de me faire rompre ma promesse à moi-même de ne pas troller en cette semaine hyper-chargée. echo 127.0.0.1 linuxfr.org | sudo tee -a /etc/hosts. Ça m’évitera de retomber dans le panneau…
[^] # Re: Merci google de nous proté
Posté par Moonz . En réponse au journal Une bonne définition du droit d'auteur ?. Évalué à 2.
[^] # Re: Le problème
Posté par Moonz . En réponse au journal Une bonne définition du droit d'auteur ?. Évalué à 5.
[^] # Re: Première remarques
Posté par Moonz . En réponse à la dépêche Go : Un nouveau langage chez Google. Évalué à 2.
def reversed(l):
… for i in xrange(len(l)-1, -1, -1):
……yield l[i]
Voire, encore plus court :
def reversed(l):
… return (l[i] for i in xrange(len(l)-1, -1, -1))
(la construction (f(x) for x in iterable) est assez récente, c’est une sorte de map que l’on retrouve dans les langages fonctionnels, mais qui travaille (et renvoie) sur des itérateurs au lieu de listes)
Et c’est bien une méthode de parcours, pas la construction d’une liste en sens inverse.
[^] # Re: Première remarques
Posté par Moonz . En réponse à la dépêche Go : Un nouveau langage chez Google. Évalué à 4.
[^] # Re: Oui, parfois, même les voies de linux sont insondables
Posté par Moonz . En réponse au journal L'informatique ou comment devenir fou. Évalué à 1.
En même temps tu parles de debian là, ça doit être pour Gnome 1.0 :) (plus sérieusement, l’arrivée de GVFS a l’air d’avoir changé quelques trucs à ce niveau)
# Oui, parfois, même les voies de linux sont insondables
Posté par Moonz . En réponse au journal L'informatique ou comment devenir fou. Évalué à 5.
Un ami m’appelle « je n’arrive pas à monter ma partition windows avec gnome »
Il avais grosso-modo mis une entrée dans /etc/fstab avec l’option user (et noauto), pour monter sa partition avec ntfs-3g. J’arrive, je constate qu’effectivement nautilus me jette de manière fort impolie « vous n’avez pas la permission de lire /dev/sda2, vil faquin ».
Je rentre dans un terminal, je tape mount /dev/sda2 (pas en root, toujours en utilisateur normal)… et ça fonctionne alors comme un charme.
(Je passe les deux heures passées à trouver comment fait Nautilus pour monter cette partition. J’ai fini par trouver que Nautilus passait la demande à GFVS (la lib), qui la passait à gvfsd, qui utilisait mount)
Après une demi-heure de grattage de neurone, pas la moindre idée. Je me dis alors : peut-être gvfsd passe-t-il en nobody au moment du montage. Je remplace /bin/mount par un script qui fait whoami >> /tmp/me avant d’appeler mount.real (l’ancien mount). $ mount /dev/sda2 fonctionne toujours. Nautilus fonctionne toujours pas. Et dans /tmp/me, le même nom d’utilisateur pour les deux commandes.
Je recréé l’environnement à l’identique de celui qui fonctionne dans /bin/mount, toujours rien à faire. Je finis par jeter l’éponge et enlever ce noauto de /etc/fstab.
Je dois avouer que ce bug continue tout de même à m’intriguer…
(le grand classique aussi, oublier de recompiler avant de voir si un patch a corrigé le bug…)
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Moonz . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 3.
http://en.wiktionary.org/wiki/so-called
(idiomatic) So named; called by such a name, with a very strong connotation that the item is not worthy of that name.
(mathematics, sciences) Same as above, without the negative connotation.
http://dictionary.cambridge.org/define.asp?key=75376&dic(...) :
- used to show that you think a word that is used to describe someone or something is not suitable or not correct
It was one of his so-called friends who supplied him with the drugs that killed him.
- used to introduce a new word or phrase which is not yet known by many people
It isn't yet clear how destructive this so-called 'super virus' is.
http://www.thefreedictionary.com/so-called , synonymes :
Adj.1. so-called - doubtful or suspect; "these so-called experts are no help"
[^] # Re: oh
Posté par Moonz . En réponse au journal La souris pour Emacs. Évalué à 7.
… on lui dit ou pas ?
[^] # Re: Triste en effet
Posté par Moonz . En réponse au journal Claude Lévi Strauss bronsonnisé. Évalué à 2.
Opposable, j’ose espérer, rien n’étant trop beau pour une telle œuvre civilisatrice…
[^] # Re: Unladen Swallow ?
Posté par Moonz . En réponse à la dépêche Publication de Unladen Swallow 2009Q3. Évalué à 7.
[^] # Re: Craintes
Posté par Moonz . En réponse au journal La mort d'un troll : GCC supportera les plugins. Évalué à 4.
Remarque, tu as raison : sur ton IETFnet, tu aurais été tranquille des botnets sur le MSnet…
[^] # Re: Craintes
Posté par Moonz . En réponse au journal La mort d'un troll : GCC supportera les plugins. Évalué à 10.
> Mais que publier sous GPL c'est bien mieux parce que cela témoigne généralement d'un degré d'altruisme et d'engagement pour autrui plus élevé et en tous cas nécessaire au bon fonctionnement de la société humaine.
C’est la raison la plus stupide que j’aie jamais entendu parler pour défendre la GPL. Je code en GPL pour faire hype, pour « étaler mon altruisme désintéressé » (comme la confiture et la culture ?)
À moins que tu cherches à signifier que tous les BSDistes sont de sales égoïstes anomistes qui veulent détruire la société ?
[^] # Re: Rien de transcendant dirait-on
Posté par Moonz . En réponse au journal Noop : encore un nouveau langage ou bien nouvelle génération de langage. Évalué à 2.
class PGSqlDAO:
…def __init__(self, config):
……self._dbConn = Postgres(config['user'], config['password'], config['database'])
……#etc.
Avec une config (provenant par exemple d’un fichier YAML)
config['dao']['constructor'] = 'PGSqlDAO'
config['dao']['user'] = 'admin'
config['dao']['password'] = 'admin'
config['dao']['database] = 'test'
et dans l’utilisateur du DAO:
class DAOUser:
…def __init__(self, config):
……self._dao = eval(config['dao']['constructor'])(config['dao']) # dans un cas réel, tu utiliserais un truc un peu moins bourrin que eval, mais l’idée est là
[^] # Re: Rien de transcendant dirait-on
Posté par Moonz . En réponse au journal Noop : encore un nouveau langage ou bien nouvelle génération de langage. Évalué à 2.
[^] # Re: Mon expérience
Posté par Moonz . En réponse à la dépêche Play! 1.0 est sorti. Évalué à 3.
Une requête GET ou HEAD n’est pas censé modifier ton modèle. Pour les requêtes POST et PUT, l’UA est censé demander à l’utilisateur (ce que tous font, à ma connaissance). De plus, tu peux tout simplement répondre un code 3xx sur ta requête POST, et plus de problème.
> Enfin, les applications Stateless sont plus sensible cross-site-scripting.
Évidemment, vu qu’il est tout simplement impossible de faire un lien sur une ressource stateful…
En tant qu’utilisateur, c’est chiant. cf voyages-sncf, par exemple.
[^] # Re: Pourquoi j'ai arrêté les traitements de texte WYSIWYG
Posté par Moonz . En réponse au journal Pourquoi j'utilise et utiliserai KDE et KOffice 2. Évalué à 3.
Oui, enfin, passer trois heures à modifier les styles pour qu’ils deviennent potable pour faire un document de trois pages, ça va cinq minutes, mais ça devient vite lourd.
Et tout le monde n’est pas graphiste/typographe et n’a pas les compétences pour faire des styles jolis…
[^] # Re: Et pourtant...
Posté par Moonz . En réponse au journal La guerre des trolls aura bien lieu. Évalué à 3.