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.
> Je vois de moins en moins l'intérêt.
Il faut admettre que pour les langages haut niveaux, C# est bien plus agréable que Java. Très honnêtement, si je ne devais choisir qu’entre Mono et Java pour développer une appli Linux-only, je choisis sans hésiter Mono/C#/GTK# à Java/(Swing|AWT|SWT).
(maintenant, si on sort de l’opposition C#/Java, il y a Vala qui me paraît pas mal du tout – évidemment, on est plus dans le même registre – et les classiques ruby/python qui ont encore toute ma préférence)
> La France ? Ah non, raté, c'est ton paradis libéral outre-Atlantique.
Au niveau du système financier, l’europe est plus proche (même si assez éloigné) du modèle libéral, justement – enfin, ça dépend de ce que tu appelles « libéral », bien sûr (au niveau légal, c’est à peu près kif-kif ; en pratique, c’est un secret de polichinelle que l’indépendance de la FED est bien moindre que celle de la BCE ; au niveau des résultats, la politique monétaire de la BCE est bien plus proche de ce qu’un libéral comme Ron Paul approuverait que celle de la FED)
Quand tu arriveras à faire quelque chose d’aussi dévastateur (sous FF, je m’en sors pas sans un killall firefox) avec une balise b, tu me feras signe. En attendant, je désactive globalement un truc qui permet de faire une telle merde, et ça me saoule quand j’ai à le réactiver, même si je sais pertinemment que ça ne va pas me péter à la gueule (mon côté fainéant).
De plus, mon ordinateur est relativement vieux. Honnêtement, je ressens une différence sensible entre une navigation avec noscript et sans noscript au niveau de la vitesse.
> D'autre part, ce que tes exemples montrent, c'est que quand la vérité est trop criante, elle finit toujours par se frayer un chemin tant bien que mal. Pas facile d'étouffer la voix de ceux qui ont raisons.
Oui, au bout d’un certain temps. Mais substituer un paradigme plus juste à un faux ne se fait pas en un claquement de doigts. Qu’est-ce qui te fait dire que nous ne sommes pas dans cet intervalle ?
Pour le coup, je suis à 200% d’accord avec Courtillot… commencer le graphique à 0, c’est moins impressionnant pour le lecteur pressé mais vachement plus intellectuellement honnête.
> partons du principe que rien n'est du a l'homme et continuons a envoyer des tonnes de CO2 pour rien dans l'atmosphere!
Encore une fois, empêcher l’homme d’envoyer des tonnes de CO2 dans l’atmosphère a un coût. Énorme. Qui fera très mal à nous, riches occidentaux, mais qui pourrait être réellement dramatique pour les pays en voie de développement. Il convient donc de mettre en relation ce coût avec le risque.
Je ne me prononce ni dans un sens ni dans l’autre, ici, mais je fais remarquer que dire « même si ya aucun danger c’est pas plus mal de pas relâcher du CO2 dans l’atmosphère, au cas où… » est terriblement naïf… et funeste.
> Le principe de precaution c'est quoi deja?
Une monstruosité abjecte et absurde.
Si tu as d’autres questions du genre, n’hésite pas à demander :)
> Ce genre d'intervention c'est ce qui a permis a Bush et consort de refuser de faire des voitures plus efficaces depuis 30 ans
Bush est un ingénieur d’études dans une entreprise de constructions d’automobiles ? On m’aurait menti ?
[^] # 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.
[^] # Re: on compare pas les carottes et les oranges, non ?
Posté par Moonz . En réponse au journal Plusieurs bourses internationales migrent sous unix. Évalué à 2.
Il faut admettre que pour les langages haut niveaux, C# est bien plus agréable que Java. Très honnêtement, si je ne devais choisir qu’entre Mono et Java pour développer une appli Linux-only, je choisis sans hésiter Mono/C#/GTK# à Java/(Swing|AWT|SWT).
(maintenant, si on sort de l’opposition C#/Java, il y a Vala qui me paraît pas mal du tout – évidemment, on est plus dans le même registre – et les classiques ruby/python qui ont encore toute ma préférence)
[^] # Re: rhalala
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 1.
[^] # Re: rhalala
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 2.
Au niveau du système financier, l’europe est plus proche (même si assez éloigné) du modèle libéral, justement – enfin, ça dépend de ce que tu appelles « libéral », bien sûr (au niveau légal, c’est à peu près kif-kif ; en pratique, c’est un secret de polichinelle que l’indépendance de la FED est bien moindre que celle de la BCE ; au niveau des résultats, la politique monétaire de la BCE est bien plus proche de ce qu’un libéral comme Ron Paul approuverait que celle de la FED)
[^] # Re: Petit joueur....
Posté par Moonz . En réponse au journal ha le php et ses élites. Évalué à 3.
Petit extrait :
#define REWRITE_FUNCTION_SIMPLE(return_type, function_name, signature, orig_call) \
return_type function_name signature { \
return_type return_value; \
char *new_path; \
\
PRINT_DEBUG(#function_name ": %s\n", path); \
\
new_path = translate (path); \
return_value = orig_##function_name orig_call; \
free (new_path); \
return return_value; \
}
REWRITE_FUNCTION_SIMPLE(FILE*, fopen, (const char *path, const char *mode), (new_path, mode))
REWRITE_FUNCTION_SIMPLE(FILE*, fopen64, (const char *path, const char *mode), (new_path, mode))
REWRITE_FUNCTION_SIMPLE(FILE*, freopen, (const char *path, const char *mode, FILE *stream), (new_path, mode, stream))
// … et plein d’autres fonctions comme ça
[^] # Re: Accessibilité
Posté par Moonz . En réponse à la dépêche Vidéo : Mark Shuttleworth et Linux : Ergonomie et cadence. Évalué à 7.
<script>for(;;) alert('plop');</script>
Quand tu arriveras à faire quelque chose d’aussi dévastateur (sous FF, je m’en sors pas sans un killall firefox) avec une balise b, tu me feras signe. En attendant, je désactive globalement un truc qui permet de faire une telle merde, et ça me saoule quand j’ai à le réactiver, même si je sais pertinemment que ça ne va pas me péter à la gueule (mon côté fainéant).
De plus, mon ordinateur est relativement vieux. Honnêtement, je ressens une différence sensible entre une navigation avec noscript et sans noscript au niveau de la vitesse.
[^] # Re: Critique argumentée des élucubrations climatiques de Courtillot
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 2.
Oui, au bout d’un certain temps. Mais substituer un paradigme plus juste à un faux ne se fait pas en un claquement de doigts. Qu’est-ce qui te fait dire que nous ne sommes pas dans cet intervalle ?
[^] # Re: augmentation du C02
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 3.
[^] # Re: augmentation du C02
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 2.
[^] # Re: chouette
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 1.
Encore une fois, empêcher l’homme d’envoyer des tonnes de CO2 dans l’atmosphère a un coût. Énorme. Qui fera très mal à nous, riches occidentaux, mais qui pourrait être réellement dramatique pour les pays en voie de développement. Il convient donc de mettre en relation ce coût avec le risque.
Je ne me prononce ni dans un sens ni dans l’autre, ici, mais je fais remarquer que dire « même si ya aucun danger c’est pas plus mal de pas relâcher du CO2 dans l’atmosphère, au cas où… » est terriblement naïf… et funeste.
> Le principe de precaution c'est quoi deja?
Une monstruosité abjecte et absurde.
Si tu as d’autres questions du genre, n’hésite pas à demander :)
> Ce genre d'intervention c'est ce qui a permis a Bush et consort de refuser de faire des voitures plus efficaces depuis 30 ans
Bush est un ingénieur d’études dans une entreprise de constructions d’automobiles ? On m’aurait menti ?
[^] # Re: chouette
Posté par Moonz . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 2.
Si ce n’est pas « nous », qui ce sera ?