Ben entre un accès à une variable et un appel de fonction, il y a une différence énorme, qui ne se voit pas dans la syntaxe ruby.
Je ne sais même pas comment on fait référence à une fonction en ruby mais il doit certainement falloir une syntaxe spéciale, alors qu'en python, si tu parles de la fonction "x", ben t'écris "x", et si tu parles du résultat de "x", ben t'appelles "x", donc comme ça : "x()"
"ceux qui veulent des guillemets dans leurs fichiers sous Unix"
Ouais, putain de jeunes, tu leur donnes des chiffres et lettres pour leurs noms de fichiers, ils veulent des espaces, des accents et des guillemets. Non mais franchement, "sous unix" en plus quoi.
Ruby aussi est un sous-langage, "getarray" est bien une fonction, et mentionner son nom fait un appel (potentiellement coûteux) sans prévenir, ce qui est détestable. Vive les "()" explicites !
(et hail to python chez qui mentionner "getarray" est comme on pourrait s'y attendre bien un pointeur vers la fonction)
C'était une des fonctions potentiellement consommatrices, par exemple aussi ext2/3 mettent plein de super-blocs, alors que fat c'est plutôt 1 ou 2 max.
De toute façon, je ne suis pas sûr qu'ext2/3 soit particulièrement conçu pour allonger la durée de vie des clefs usb, avec sa journalisation et toutes ses features très confortables pour un disque dur, il aurait plutôt tendance à raccourcir la vie de ta clef usb.
> xemac (j'arrive jamais à l'écrire correctement, alors pas la peine de me crier dessus parce que ça s'écrit pas comme ça;)
Si tu sais à l'avance toi même que ça ne s'écrit pas comme ça, et qu'il te suffirait de maximum 5 secondes montre en main pour le vérifier, j'imagine que la faute est volontaire...
Un concept d'avenir sauf que c'est inutilisable avec Jython et IronPython qui sont censés améliorer la vitesse de Python il me semble. (et le C reste chiant à écrire et à maintenir)
Pour effacer, il y en avait une avec une gomme (peu visible d'ailleurs la gomme) et une autre avec une croix rouge, comme pour supprimer/effacer.
L'icone "burn" ne fonctionne que pour les anglophones.
Cela montre bien que la compréhension d'une icone dépend énormément de l'utilisateur.
Il en est de même pour les icones "sauvegarder", encore représentées par des disquettes 3"1/2 : les disquettes ne sont non seulement plus utilisées, mais elles sont tellement vieilles que de plus en plus de gens ne sauront même pas ce que l'icone représente ! (il suffit d'être né après par exemple)
On peut voter blanc en ne choisissant rien et en cliquant sur "next" directement, ce que je ne me suis pas privé de faire plusieurs fois tellement les icones proposées n'étaient pas compréhensibles.
"
- les données personnelles doivent être chiffrées
- seule la partie client doit être en mesure de les déchiffrer.
"
Le concept des en:Zero-knowledge_web_applications est intéressant mais malheureusement pas encore très répandu.
Au contraire, un outil qui fait purement recherche plein texte, plutôt qu'une fonction gadget d'un sgbd, sera surement mieux. Voir aussi xapian, mnogosearch, etc.
"
Prenons un cas plus simple. J'ai un tableau a = ["a","b","c"] et une fonction bete :
def rend_x (vecteur)
vecteur = ["x", "x", "x"]
end
Je voudrais appeler rend_x(a), et que a soit transformé en ["x", "x", "x"] (c'est-à-dire donc, que ma fonction modifie directement l'élément a -- j'insiste: c'est un exemple jouet, en pratique je m'en fout complètement, je veux juste qu'il ne recopie pas /a/ à l'appel de la fonction).
"
C'est dans ces cas-là que je pense qu'il est *nécessaire* d'avoir fait du C pour comprendre Ruby/Python/Java/autre-langage-impératif-commun.
Quand tu appelles "rend_x(foo)", dans ta fonction, "vecteur" et "foo" sont 2 variables distinctes, elles peuvent pointer au même endroit, et c'est le cas au début de ta fonction, mais elles peuvent aussi pointer des endroits différents, avec une simple affectation.
En l'occurence, quand tu fais "vecteur = ...", tu fais pointer "vecteur" vers d'autres données, sans modifier "foo" du coup. Tu alloues un nouveau tableau, totalement distinct de ton précédent ["a","b","c"], et les 2 ne sont pas à la même adresse.
(Note: à moins d'avoir des pointeurs sur pointeurs comme en C, tu ne peux pas modifier la variable "foo", mais tu peux modifier le contenu de là où elle pointe)
Si tu veux modifier le tableau, tu peux faire
vecteur[0] = "x"
vecteur[1] = "x"
vecteur[2] = "x"
En Python, il est possible de faire
vecteur[:] = ["x", "x", "x"]
qui va modifier en place le contenu de "vecteur" (il va le déréférencer), et qui ne va pas faire pointer "vecteur" vers un nouveau tableau. Un équivalent existe peut-être en Ruby, je ne connais pas assez.
Ou sinon un équivalent à :
vecteur.clear()
vecteur.extend(["x", "x", "x"])
Ou encore (méthode à éviter)
vecteur.clear()
vecteur += ["x", "x", "x"]
(qui n'est pas *du tout* équivalent à vecteur = vecteur + ["x", "x", "x"], car ce dernier ferait pointer vecteur autre part, alors que chez le premier "+=" est une opération en place pour les tableaux uniquement)
A ce moment là, le client peut transmettre n'importe quoi comme historique (comme pour les mails certes, mais si c'est pour avoir les mêmes défauts que le mail...).
On doit peut-être trouver une réponse là : http://www.waveprotocol.org/
Dans la démo de wave, quelqu'un peut être invité à joindre une wave, et celui-ci dispose alors de tout l'historique des échanges sur la wave. Je pense que le serveur contient donc l'historique.
L'AGPL3 est une licence qui demande de donner le source aux gens qui ne font que l'utiliser même à travers un browser. Cela dit, elle n'est pas encore très répandue.
A noter avec le mot clef "with" (depuis Python 2.5) la présence de "contextes" pour les locks, on peut donc remplacer le try..finally par
"""
with sdtoulock:
... sys.stdout.write("toto")
... sys.stdout.flush()
"""
[^] # Re: trollons-nous dans les bois...
Posté par Octabrain . En réponse au message Récupérer en une seule ligne un élément d'un tableau retourné par une fonction. Évalué à 2.
Je ne sais même pas comment on fait référence à une fonction en ruby mais il doit certainement falloir une syntaxe spéciale, alors qu'en python, si tu parles de la fonction "x", ben t'écris "x", et si tu parles du résultat de "x", ben t'appelles "x", donc comme ça : "x()"
[^] # Re: Grande revelation.
Posté par Octabrain . En réponse au journal Google partage vos données avec vos proches .... Évalué à 7.
Ouais, putain de jeunes, tu leur donnes des chiffres et lettres pour leurs noms de fichiers, ils veulent des espaces, des accents et des guillemets. Non mais franchement, "sous unix" en plus quoi.
[^] # Re: Ben moi..
Posté par Octabrain . En réponse au journal Linus à propos des contributions de Microsoft. Évalué à 3.
[^] # Re: Ben moi..
Posté par Octabrain . En réponse au journal Linus à propos des contributions de Microsoft. Évalué à 5.
# L'orthographe
Posté par Octabrain . En réponse au journal Manger des pommes.. Évalué à 4.
[^] # Re: Ben moi..
Posté par Octabrain . En réponse au journal Linus à propos des contributions de Microsoft. Évalué à 4.
[^] # trollons-nous dans les bois...
Posté par Octabrain . En réponse au message Récupérer en une seule ligne un élément d'un tableau retourné par une fonction. Évalué à 3.
(et hail to python chez qui mentionner "getarray" est comme on pourrait s'y attendre bien un pointeur vers la fonction)
[^] # Re: Ben moi..
Posté par Octabrain . En réponse au journal Linus à propos des contributions de Microsoft. Évalué à 7.
[^] # Re: Problème de droits ? Non, de fs
Posté par Octabrain . En réponse au journal ACL : la solution pour les media de transport de données en Ext2+, ReiserFS, XFS…. Évalué à 2.
# Problème de droits ? Non, de fs
Posté par Octabrain . En réponse au journal ACL : la solution pour les media de transport de données en Ext2+, ReiserFS, XFS…. Évalué à 3.
[^] # Re: un troll de moins
Posté par Octabrain . En réponse au journal Launchpad est libre. Évalué à 5.
Si tu sais à l'avance toi même que ça ne s'écrit pas comme ça, et qu'il te suffirait de maximum 5 secondes montre en main pour le vérifier, j'imagine que la faute est volontaire...
[^] # Re: un troll de moins
Posté par Octabrain . En réponse au journal Launchpad est libre. Évalué à 6.
# pseudo ?
Posté par Octabrain . En réponse au journal Launchpad est libre. Évalué à 10.
[^] # Re: Ça pour une nouvelle ..
Posté par Octabrain . En réponse à la dépêche Google sort un serveur NX libre. Évalué à 2.
[^] # Re: Euh
Posté par Octabrain . En réponse au journal Icones Oxygen - Sondage pour k3b. Évalué à 3.
L'icone "burn" ne fonctionne que pour les anglophones.
Cela montre bien que la compréhension d'une icone dépend énormément de l'utilisateur.
Il en est de même pour les icones "sauvegarder", encore représentées par des disquettes 3"1/2 : les disquettes ne sont non seulement plus utilisées, mais elles sont tellement vieilles que de plus en plus de gens ne sauront même pas ce que l'icone représente ! (il suffit d'être né après par exemple)
[^] # Re: Pourquoi autant des propositions
Posté par Octabrain . En réponse au journal Icones Oxygen - Sondage pour k3b. Évalué à 3.
[^] # Re: C'est ça pour vous l'art?
Posté par Octabrain . En réponse au journal [HS] Le droit des femmes et la liberté d'expression. Évalué à 2.
Pas forcément positive, et c'est là que tu te trompes.
[^] # Re: Sécurité des données
Posté par Octabrain . En réponse au journal GPL et le web. Évalué à 3.
- les données personnelles doivent être chiffrées
- seule la partie client doit être en mesure de les déchiffrer.
"
Le concept des en:Zero-knowledge_web_applications est intéressant mais malheureusement pas encore très répandu.
[^] # Re: Mysql ou postgresql full text search
Posté par Octabrain . En réponse au journal indexer et chercher du pdf en mode console. Évalué à 3.
# Héritage de C
Posté par Octabrain . En réponse au message Fonction : passage de référence. Évalué à 1.
Prenons un cas plus simple. J'ai un tableau a = ["a","b","c"] et une fonction bete :
def rend_x (vecteur)
vecteur = ["x", "x", "x"]
end
Je voudrais appeler rend_x(a), et que a soit transformé en ["x", "x", "x"] (c'est-à-dire donc, que ma fonction modifie directement l'élément a -- j'insiste: c'est un exemple jouet, en pratique je m'en fout complètement, je veux juste qu'il ne recopie pas /a/ à l'appel de la fonction).
"
C'est dans ces cas-là que je pense qu'il est *nécessaire* d'avoir fait du C pour comprendre Ruby/Python/Java/autre-langage-impératif-commun.
Quand tu appelles "rend_x(foo)", dans ta fonction, "vecteur" et "foo" sont 2 variables distinctes, elles peuvent pointer au même endroit, et c'est le cas au début de ta fonction, mais elles peuvent aussi pointer des endroits différents, avec une simple affectation.
En l'occurence, quand tu fais "vecteur = ...", tu fais pointer "vecteur" vers d'autres données, sans modifier "foo" du coup. Tu alloues un nouveau tableau, totalement distinct de ton précédent ["a","b","c"], et les 2 ne sont pas à la même adresse.
(Note: à moins d'avoir des pointeurs sur pointeurs comme en C, tu ne peux pas modifier la variable "foo", mais tu peux modifier le contenu de là où elle pointe)
Si tu veux modifier le tableau, tu peux faire
vecteur[0] = "x"
vecteur[1] = "x"
vecteur[2] = "x"
En Python, il est possible de faire
vecteur[:] = ["x", "x", "x"]
qui va modifier en place le contenu de "vecteur" (il va le déréférencer), et qui ne va pas faire pointer "vecteur" vers un nouveau tableau. Un équivalent existe peut-être en Ruby, je ne connais pas assez.
Ou sinon un équivalent à :
vecteur.clear()
vecteur.extend(["x", "x", "x"])
Ou encore (méthode à éviter)
vecteur.clear()
vecteur += ["x", "x", "x"]
(qui n'est pas *du tout* équivalent à vecteur = vecteur + ["x", "x", "x"], car ce dernier ferait pointer vecteur autre part, alors que chez le premier "+=" est une opération en place pour les tableaux uniquement)
[^] # Re: cloud computing != web 2.0
Posté par Octabrain . En réponse au journal GPL et le web. Évalué à 1.
[^] # Re: AGPL
Posté par Octabrain . En réponse au journal GPL et le web. Évalué à 1.
On doit peut-être trouver une réponse là : http://www.waveprotocol.org/
[^] # Re: AGPL
Posté par Octabrain . En réponse au journal GPL et le web. Évalué à 1.
# AGPL
Posté par Octabrain . En réponse au journal GPL et le web. Évalué à 10.
[^] # Re: Il faut protéger les ressources partagées
Posté par Octabrain . En réponse au message Threading : comment faire un sys.stdout sur plusieurs lignes (ou identifier chaque thread) ?. Évalué à 4.
"""
with sdtoulock:
... sys.stdout.write("toto")
... sys.stdout.flush()
"""