Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2952 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  354  355  356  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1357361
joce
Architecte / Développeur principal
"BugHunter"
Posté le 01-05-2006 à 20:23:44  profilanswer
 

Reprise du message précédent :

The-Shadow a écrit :

Tain, des fois quand tu causes, je me dis que j'suis vraiment une bite, j'ai rien compris.  [:amandine75011]  
 
Oserais-je te demander d'expliquer "passer le resultat par référence" ?  [:at war with emo]


t'as jamais fait de C/C++ ? :D

Message cité 1 fois
Message édité par joce le 01-05-2006 à 20:24:06
mood
Publicité
Posté le 01-05-2006 à 20:23:44  profilanswer
 

n°1357363
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-05-2006 à 20:24:59  profilanswer
 

joce a écrit :

t'as jamais fait de C/C++ ? :D


Non.  :cry:  
J'ai juste fait du GFA Basic moi.  :cry:  
 
Rigolez pas, c'est ce qui a servi à développer Another World.  :o

n°1357364
skylight
Made in France.
Posté le 01-05-2006 à 20:27:04  profilanswer
 

The-Shadow a écrit :

Tain, des fois quand tu causes, je me dis que j'suis vraiment une bite, j'ai rien compris.  [:amandine75011]  
 
Oserais-je te demander d'expliquer "passer le resultat par référence" ?  [:at war with emo]


 
au lieu de stocker le resultat de la fonction dans ta variable, on stocke juste l'adresse mémoire du resultat dans ta variable.
j'ai bon ? :D

n°1357366
gizmo
Posté le 01-05-2006 à 20:27:58  profilanswer
 

The-Shadow a écrit :

Tain, des fois quand tu causes, je me dis que j'suis vraiment une bite, j'ai rien compris.  [:amandine75011]  
 
Oserais-je te demander d'expliquer "passer le resultat par référence" ?  [:at war with emo]


En gros, t'as traditionnellement 3 types de passage: copie, référence et pointeur
 
Copie, la plus gourmande, fait une copie physique de la variable, ce qui duplique l'espace pris en mémoire.
Référence, prends l'adresse d'une variable et son type, on travaille donc directement sur la variable.
Pointeur, on prend une adresse en mémoire, et on espère qu'on va bien manipuler des objets du même type ou de la même taille, histoire de pas foutre le bouzouf :D
 
Enfin, c'est en gros tout ça, y a des subtilités suivant les langages.
 
EDIT: j'ai oublié de préciser que le Pointeur est une sorte de généralisation de la référence et qu'il existe différents paramètres de sortie, mais cela ne joue pas ici.

Message cité 1 fois
Message édité par gizmo le 01-05-2006 à 20:35:23
n°1357368
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-05-2006 à 20:31:50  profilanswer
 

skylight a écrit :

au lieu de stocker le resultat de la fonction dans ta variable, on stocke juste l'adresse mémoire du resultat dans ta variable.
j'ai bon ? :D


 

gizmo a écrit :

En gros, t'as traditionnellement 3 types de passage: copie, référence et pointeur
 
Copie, la plus gourmande, fait une copie physique de la variable, ce qui duplique l'espace pris en mémoire.
Référence, prends l'adresse d'une variable et son type, on travaille donc directement sur la variable.
Pointeur, on prend une adresse en mémoire, et on espère qu'on va bien manipuler des objets du même type ou de la même taille, histoire de pas foutre le bouzouf :D
 
Enfin, c'est en gros tout ça, y a des subtilités suivant les langages.


Rho, merci, pour une fois, grace à vous 2, j'ai bien compris. :jap: (spa comme la programmation objet  [:amandine75011] )
 
Effectivement, si j'ai bien compris (et seulement dans ce cas), l'astuce de Gizmo me parait intelligente. :D

n°1357370
scull
MySCULL cay bon mangez en!
Posté le 01-05-2006 à 20:36:12  profilanswer
 

Anthomicro > Mème si je reste septique, j'ai corrigé


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°1357372
nraynaud
lol
Posté le 01-05-2006 à 20:38:27  profilanswer
 

gimo > raté la tradition c'est juste copie et référence, y'a qu'en C/C++ qu'il y a les pointeurs en plus /o\

n°1357373
masklinn
í dag viðrar vel til loftárása
Posté le 01-05-2006 à 20:38:55  profilanswer
 

gizmo a écrit :

Quid d'un outil qui ne serait capable d'envoyer de que des requètes GET?


Son développeur devrait être fusillé sur l'heure.

gizmo a écrit :

Mais JUSTEMENT, tu reçois n'importe quoi avec POST ou GET, tu n'as aucune garantie, alors pourquoi pas REQUEST?


En l'occurence non, GET est fait pour récupérer des données et ne doit pas avoir d'impact sur l'état global de l'application alors que des actions comme POST, PUSH ou DELETE ont un impact sur l'application dans  sa globalité (et la modifien).
 
Les rôles sont complètement différents et ne doivent pas être mélangés.

gizmo a écrit :

j'ai jamais compris pourquoi php avait introduit cette stupide notion de séparation entre les POST,GET et COOKIE...


Il ne l'a pas fait, tu ne sais pas comment fonctionnent le web et HTTP c'est tout.

anthomicro a écrit :

Ce qui est stupide à mon avis avec PHP, ce sont les register globals, les short open tags et les magic quotes.


Je suis d'accord avec les registers et les magic quotes, pas avec les short tags.

gizmo a écrit :

Oui, mais ils sont la pour des raisons historiques (ce qui est la pire des raisons qui soit) et n'ont plus de sens rationel actuellement.


C'est une blague [:petrus dei]

The-Shadow a écrit :

Oserais-je te demander d'expliquer "passer le resultat par référence" ?  [:at war with emo]


Grosso merdo il y a 3 manières de passer une donnée en argument:

  • La première, c'est de transférer une copie de l'argument, c'est sympa pour les petits trucs (un entier ou une paire de caractères) mais dans la mesure ou ça force à faire une copie intégrale de chaque paramètre ça peut être très coûteux.
  • La 2e, c'est le passage par pointeur (et je me demande si les références C++ bossent pas comme ça aussi): au lieu d'envoyer une copie, on envoie directement l'adresse où est stockée un objet. Ca signifique qu'on effectue une action directement sur l'objet et non sur une copie (avec les avantages et les inconvénients que ça a), ça signifie aussi que si on remplace notre paramètre par un autre objet dans notre fonction, on le modifie aussi à l'extérieur exemple:
Code :
  1. >>> def foo(bar):
  2.        bar = []
  3.  
  4. >>> baz = [1, 2, 3]
  5. >>> baz
  6. [1, 2, 3]
  7. >>> foo(baz)
  8. >>> baz
  9. []


  • La 3e, c'est le passage de référence par valeur. En gros, au lieu d'envoyer directement l'adresse de l'objet on envoie une copie de cette adresse. Le résultat, c'est que si la fonction effectue une action sur l'objet celui-ci est modifié, mais si elle remplace l'objet par un autre ça ne change pas l'objet en dehors de la fonction
Code :
  1. >>> def foo(bar):
  2.     bar.append(6)
  3.     
  4. >>> def baz(bar):
  5.     bar = []
  6.     
  7. >>> buzz = [1, 2, 3]
  8. >>> buzz
  9. [1, 2, 3]
  10. >>> foo(buzz)
  11. >>> buzz
  12. [1, 2, 3, 6]
  13. >>> baz(buzz)
  14. >>> buzz
  15. [1, 2, 3, 6]


Message édité par masklinn le 01-05-2006 à 20:40:26

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1357383
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-05-2006 à 21:00:19  profilanswer
 

Alors en gros, pour être sûr que j'ai bien compris.
 
si $a='toto', ça prend 4 octets
 
si $b=$a, ça prend 8 octets
 
si $b=référence de $a, ça reste sur 4 octets, mais si on transforme $b='tutu', $a se retrouve modifié également.
 
Et le troisième cas.
 
si $a='toto' et qu'on lui dit que $b='toto', ça ne prendra toujours que 4 octets car il se servira de $a comme de référence, mais si on modifie $b='tutu'; du coup il n'utilisera plus $a comme référence donc ça prendra 8 octets.
 
J'ai bien appris ma leçon ? :D
 
 
Si oui, pourquoi "l'optimisation" de Gizmo n'est pas valable ?

Message cité 2 fois
Message édité par The-Shadow le 01-05-2006 à 21:01:07
n°1357394
masklinn
í dag viðrar vel til loftárása
Posté le 01-05-2006 à 21:08:14  profilanswer
 

The-Shadow a écrit :

Alors en gros, pour être sûr que j'ai bien compris.


On parlait du passage d'argument à une fonction hein :o

The-Shadow a écrit :

si $a='toto', ça prend 4 octets


Ca prend probablement plus, mais on va dire que oui

The-Shadow a écrit :

si $b=$a, ça prend 8 octets


Je sais absolument pas comment bosse PHP, donc dans le doute je vais dire non, m'est avis qu'il utilise des références

The-Shadow a écrit :

si $b=référence de $a, ça reste sur 4 octets, mais si on transforme $b='tutu', $a se retrouve modifié également.


si $b et $a sont des pointeurs, et qu'on fait pointer $b sur ce version quoi $a pointe :o

The-Shadow a écrit :

si $a='toto' et qu'on lui dit que $b='toto', ça ne prendra toujours que 4 octets car il se servira de $a comme de référence, mais si on modifie $b='tutu'; du coup il n'utilisera plus $a comme référence donc ça prendra 8 octets.


Ouch [:pingouino]
Voir (*)

The-Shadow a écrit :

J'ai bien appris ma leçon ? :D


non :o
 
 
(*):
C'est un peu plus compliqué que ça:
si on fait $a = "toto" puis $b = $a alors $b va contenir une référence vers ce que référence $a c'est à dire un objet de type String contenant "toto".
 
Maintenant si on fait $a = "toto" et $b = "toto" on va allouer deux objets de type string différents, sauf au cas où le langage implémente l'interning (et il faut que les strings soient immutables): il crée une "pool" de chaînes et si on essaie de créer une chaîne existant déjà dans la pool alors il va l'y chercher au lieu de créer un nouvel objet.
 
Si on est dans le premier cas ($a = "toto" puis $b = $a) alors on a effectivement un seul string, et faire $b = "titi" par la suite génère effectivement un second objet.
 
'finbon, je te conseille fortement d'aller voir ces petites vidéos (la version java par exemple), c'est en anglais mais c'est pas super complexe et ça peut clarifier certains trucs.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 01-05-2006 à 21:08:14  profilanswer
 

n°1357401
nraynaud
lol
Posté le 01-05-2006 à 21:15:01  profilanswer
 

Code :
  1. char * pouet() {
  2.   return "kikoooooo";
  3. }


[:nraynaud]

n°1357403
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-05-2006 à 21:16:31  profilanswer
 
n°1357405
Je@nb
Kindly give dime
Posté le 01-05-2006 à 21:17:02  profilanswer
 

Ca marche ce code ?
 
Tu retourne un pointeur mais en dehors de la fonction cette adresse existe ?

n°1357406
nraynaud
lol
Posté le 01-05-2006 à 21:18:09  profilanswer
 

Je@nb a écrit :

Ca marche ce code ?
 
Tu retourne un pointeur mais en dehors de la fonction cette adresse existe ?


1) non
 
2) l'adresse existe encore, mais ce qu'il y a va changer dans les secondes qui viennent, toute la beauté du C !

n°1357411
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-05-2006 à 21:27:28  profilanswer
 

nraynaud a écrit :

Code :
  1. char * pouet() {
  2.   return "kikoooooo";
  3. }




*PAN*


---------------
J'ai un string dans l'array (Paris Hilton)
n°1357413
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-05-2006 à 21:29:32  profilanswer
 

Je@nb a écrit :

Ca marche ce code ?
 
Tu retourne un pointeur mais en dehors de la fonction cette adresse existe ?


non non, ça marche pas :D
mais si tu savais le nombre de bugs provoqués par ce genre de truc ! et si tu savais le nombre d'experts comptables qui utilisent des logiciels de compta renommés dont je taierais le nom, mais qui sont troués de la sorte, tu y réflechirais à deux fois avant de choisir un expert pour ta boite [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1357417
0x90
Posté le 01-05-2006 à 21:30:58  profilanswer
 

Chuis entrain de faire une implé d'un truc pseudo-objet en C, avec des strings immutables (code dangereux pour les yeux). Jme tatais justement pour l'interning, le cout de la recherche n'est pas trop lourd ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1357419
nraynaud
lol
Posté le 01-05-2006 à 21:37:42  profilanswer
 

0x90 a écrit :

Chuis entrain de faire une implé d'un truc pseudo-objet en C, avec des strings immutables (code dangereux pour les yeux). Jme tatais justement pour l'interning, le cout de la recherche n'est pas trop lourd ?


genre O(longueur de la chaine) quoi.

n°1357424
0x90
Posté le 01-05-2006 à 21:44:06  profilanswer
 

nraynaud a écrit :

genre O(longueur de la chaine) quoi.


 
Ouais en complexité ca va, mais c'est plutot les divers calculs logiques qu'il faudra faire au minimum que j'ai peur. ( déja la gestion des comptages de références fait bien mal :/ )


Message édité par 0x90 le 01-05-2006 à 21:45:29

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1357438
fabien
Vive la super 5 !
Posté le 01-05-2006 à 22:15:30  profilanswer
 

gizmo a écrit :

$_REQUEST est le meilleur choix. Utiliser les autres, c'est faire des suppositions sur l'utilisitation que fera l'utilisateur de l'outil et donc ne pas prendre certains cas en compte.


C'est moins secure, tu peux filer un lien a quelqu'un pour qu'il post un message ou supprime tout ses messages par exemple, et avec un formulaire c'est pas possible de filer un lien a quelqu'un.


---------------
Découvre le HFRcoin ✈ - smilies
n°1357449
joce
Architecte / Développeur principal
"BugHunter"
Posté le 01-05-2006 à 22:51:21  profilanswer
 

The-Shadow a écrit :

Effectivement, si j'ai bien compris (et seulement dans ce cas), l'astuce de Gizmo me parait intelligente. :D

sauf que le PHP, c'est pas du C/C++, donc c'est pas du tout intelligent en fait :D

n°1357451
joce
Architecte / Développeur principal
"BugHunter"
Posté le 01-05-2006 à 22:56:10  profilanswer
 

The-Shadow a écrit :


Si oui, pourquoi "l'optimisation" de Gizmo n'est pas valable ?


Parce php fait déjà une copie par référence quand tu fais $a= $b;, donc faire $a= &$b, c'est faire une référence de référence.
Qui plus est, faire $a= &str_replace(..., $a); n'est pas autorisé parce que la fonction str_replace n'est pas du tout prévu pour retourner une référence, ca retournera donc une copie du resultat traité, et faire du &str_replace ca revient à mettre une référence vers une copie, ce a l'effet inverse de ce qu'on veut (et accessoirement pour php <= 4.3.11 je crois, ca peut entrainer de la corruption mémoire, ce qui fait que pour php > 4.3.11 ca te renvoie un joli warning en te disant que c'est le mal)

n°1357453
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-05-2006 à 23:07:18  profilanswer
 

Merci de l'info. :jap:

n°1357460
anthomicro
Posté le 01-05-2006 à 23:21:47  profilanswer
 

Scull > encore un petit prob : http://213.251.172.99/?sid=sqfd
 
Enfin je te dis ça comme ça moi... ;)

n°1357464
Multinickn​ame
Ah bon...
Posté le 01-05-2006 à 23:49:18  profilanswer
 

4.517 s pour afficher la 9300e page d'un topic de ~100 000 posts en local avec wamp5 (P4C 2.4Ghz)    :o  

 

Ca va pas du tout    [:pingouino]       :D  

 

Euh... j'ai lu ce que vous racontiez à propos du LIMIT (justement j'en utilise un), et en fin de compte quelle est la meilleure technique pour optimiser la requete sans utiliser LIMIT?


Message édité par Multinickname le 01-05-2006 à 23:51:23
n°1357465
anthomicro
Posté le 01-05-2006 à 23:50:20  profilanswer
 

Ne pas utiliser de LIMIT et utiliser une requête qui retourne seulement le nombre de lignes à prendre (genre un between). Bref pour ça il te faut généralement un champ supplémentaire qui contiendra l'id de classement, et tu fais ta requête sur ça.

n°1357466
Multinickn​ame
Ah bon...
Posté le 01-05-2006 à 23:52:04  profilanswer
 

anthomicro a écrit :

Ne pas utiliser de LIMIT et utiliser une requête qui retourne seulement le nombre de lignes à prendre (genre un between). Bref pour ça il te faut généralement un champ supplémentaire qui contiendra l'id de classement, et tu fais ta requête sur ça.

 


:jap:

 

Le champ supplémentaire, c'est l'id du post dans le topic c'est ça?

n°1357469
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 01-05-2006 à 23:54:20  profilanswer
 

oui :o
mais faut le maintenir à jour quoi :o


Message édité par joce le 01-05-2006 à 23:54:37
n°1357471
Multinickn​ame
Ah bon...
Posté le 01-05-2006 à 23:55:52  profilanswer
 

ok    ;)  

 

Je viens déjà de gagner deux secondes en virant le ORDER BY post.id inutile

 

hebe    :o


Message édité par Multinickname le 01-05-2006 à 23:56:34
n°1357474
anthomicro
Posté le 01-05-2006 à 23:56:54  profilanswer
 

c'est déjà pas mal, t'as encore 2s5 à faire sauter en gros :o

n°1357475
scull
MySCULL cay bon mangez en!
Posté le 02-05-2006 à 00:00:43  profilanswer
 

Perso je pense avoir trouvé un idée pour ne pas utiliser de limit et ne pas avoir de champs à tenir à jour. Je dois tester avant ce weekend  ^^
 
j'ai hate


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°1357477
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 00:01:09  profilanswer
 

anthomicro a écrit :

c'est déjà pas mal, t'as encore 2s5 à faire sauter en gros   :o  

 


 

Voila  :D

 

Et euh quelque chose du genre :

 
Code :
  1. WHERE post.id IN ('95666','95667','...','95686')
 

c'est efficace ?  :??:

 

PS : c'est fait comme ça chez IPB 2.0.x

 

EDIT : ca revient a peu près au même que BETWEEN non? Sauf que la on donne tous les champs au lieu de donner un intervalle?

Message cité 2 fois
Message édité par Multinickname le 02-05-2006 à 00:03:21
n°1357488
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 00:24:19  profilanswer
 

Merci :) J'ai utilisé un BETWEEN et je suis plus qu'à 96ms [:dawa]
 
:jap:

n°1357496
fabien
Vive la super 5 !
Posté le 02-05-2006 à 00:51:58  profilanswer
 

Multinickname a écrit :

Voila  :D  
 
Et euh quelque chose du genre :
 

Code :
  1. WHERE post.id IN ('95666','95667','...','95686')


 
c'est efficace ?  :??:  
 
PS : c'est fait comme ça chez IPB 2.0.x
 
EDIT : ca revient a peu près au même que BETWEEN non? Sauf que la on donne tous les champs au lieu de donner un intervalle?


mais tu fais comment pour recuperer ces id ?


---------------
Découvre le HFRcoin ✈ - smilies
n°1357498
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 00:58:43  profilanswer
 

fabien a écrit :

mais tu fais comment pour recuperer ces id ?

 


  

Justement, c'était merdique (j'avais pas essayé, juste supposé  ;) )

 

Du coup j'utilise un BETWEEN x AND x de l'id du post par rapport au topic

 

EDIT : là je les calcule bêtement comme ça :

 

   $begin = ($currentPage*$mpp)-$mpp;
    $end = $begin+$mpp;

 

($mpp c'est le nombre de messages par page)


Message édité par Multinickname le 02-05-2006 à 00:59:50
n°1357502
fabien
Vive la super 5 !
Posté le 02-05-2006 à 01:17:48  profilanswer
 

le probleme c'est lorsque tu supprime un message dans un gros topic, c'est lourd à mettre à jour ;)
 
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1357505
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 01:24:48  profilanswer
 

J'avais lu ça ici oui, mais... comment faire dans ce cas là?  :??:

Message cité 1 fois
Message édité par Multinickname le 02-05-2006 à 01:24:59
n°1357506
fabien
Vive la super 5 !
Posté le 02-05-2006 à 01:30:12  profilanswer
 

Multinickname a écrit :

J'avais lu ça ici oui, mais... comment faire dans ce cas là?  :??:


 
ben je crois avoir trouvé un systeme, mais pas encore testé, je veux pas trop en parler sinon je vais m'embrouillé les idées, mais c'est une sorte de "split invisible".
 
J'expliquerai lorsque j'aurai testé avec succés.
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1357512
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 01:47:39  profilanswer
 

fabien a écrit :

ben je crois avoir trouvé un systeme, mais pas encore testé, je veux pas trop en parler sinon je vais m'embrouillé les idées, mais c'est une sorte de "split invisible".

 

J'expliquerai lorsque j'aurai testé avec succés.

 


 


Je crois que c'est comme ça que fait MD... Enfin je sais pas comment ça fonctionne depuis que les splits ont disparu, mais il me semble bien que c'est du split invisible

Message cité 1 fois
Message édité par Multinickname le 02-05-2006 à 01:47:53
n°1357529
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 07:09:47  profilanswer
 

Multinickname a écrit :

Je crois que c'est comme ça que fait MD... Enfin je sais pas comment ça fonctionne depuis que les splits ont disparu, mais il me semble bien que c'est du split invisible


nop ;)

n°1357537
nraynaud
lol
Posté le 02-05-2006 à 07:59:58  profilanswer
 

l'idée c'est en général d'ajouter de l'indirection

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  354  355  356  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)