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

 

Sujet(s) à lire :
    - Apprentissage par la pratique
 

 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10  11  12  13  14
Auteur Sujet :

[Projet] Une bouteille a la mer

n°661912
uriel
blood pt.2
Posté le 03-03-2004 à 12:03:44  profilanswer
 

Reprise du message précédent :

Mara's dad a écrit :


Tu veux quoi un chat P2P en JS ?


 
non l'equivalent de la plage mais entierement en js, et le "serveur" egalement


---------------
IVG en france
mood
Publicité
Posté le 03-03-2004 à 12:03:44  profilanswer
 

n°661916
Mara's dad
Yes I can !
Posté le 03-03-2004 à 12:15:23  profilanswer
 

Bof :/


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°661919
Mara's dad
Yes I can !
Posté le 03-03-2004 à 12:21:00  profilanswer
 

urd-sama a écrit :

bon, voilà ce que je suis arrivée à traduire en asp:

Citation :

 set xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" )


il me fait cette erreur:

Citation :


Microsoft VBScript compilation error '800a0401'  
Expected end of statement  
/urd/plage/test.asp, line 21  
set xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" )


est-ce que le problème est côté serveur ou dans mon code? je sais que ma question est vague mais je sais pas vraiment de quel côté chercher


A mon avis, et vu ce que j'ai lu sur 15seconds, cette partie là est faite pour tourner coté client.
 
essaye un  

Code :
  1. set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP" )


pour voir...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°661934
urd-sama
waste of space
Posté le 03-03-2004 à 12:43:48  profilanswer
 

ok, la page se load mais j'ai un problème en local
j'ai corrigé ton truc + enlever des paranthèses plus bas.
 
le problème est:
Ligne: 3
Car: 1
Erreur: Objet attendu
Code : 0
 
je n'ai que ie ici donc pas glob pour avoir des détails sur mon erreur. je testerai + en détails ce soir avec firefox (enfin, s'il me fait une erreur + complète).
 
au cas ou, url = http://www.mangaclub.ch/urd/plage/test.asp

n°662192
Mara's dad
Yes I can !
Posté le 03-03-2004 à 15:34:51  profilanswer
 

Oulala :/
 
Coté client y'a rien à faire ! Rien du tout.
 
Moi, je parle de code ASP, donc coté serveur.
C'est TON serveur qui en interroge un autre en HTTP via xmlhttp = Server.CreateObject("Microsoft.XMLHTTP" )...
 
En fait faut juste trouver une méthode ASP pour faire une requête HTTP, je ne sais pas si ce que j'ai trouvé fonctionne. Je n'ai pas de serveur ASP sous la main pour tester.
 
Un chose est sûr, c'est pas en JS ou en VBSCRIPT coté client qu'il faut faire tout ça...
 
Edit : Faudrait créer un topic pour demander de l'aide sur ASP pour faire une requête HTTP parce-que là, je nage complet, même si y'a ASP sur mon CV :/
 
Demande à MagicBuzz, c'est un pro de l'ASP :D


Message édité par Mara's dad le 03-03-2004 à 15:38:24

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°662200
urd-sama
waste of space
Posté le 03-03-2004 à 15:38:11  profilanswer
 

ok je comprends mieux, ca me semblait bizarre que je doive faire un truc client.
j'ai un bouquin à la maison, je verrai si je trouve qqch sur les requête http
sinon je posterai un message sur un site spécialisé asp

n°662229
MagicBuzz
Posté le 03-03-2004 à 16:03:25  profilanswer
 

Bah faut faire comme en VB, utiliser WINSOCK.
 
J'ai posté un topic y'a pas longtemps sur le sujet, avec je crois un lien vers un tuto qui fait ça...
 
Seulement, c'est assychrone, donc exit en ASP natif, faut faire un OCX VB qui fait ça, et qu'on appelle depuis l'ASP :D

n°662230
MagicBuzz
Posté le 03-03-2004 à 16:03:45  profilanswer
 
n°662404
urd-sama
waste of space
Posté le 04-03-2004 à 08:11:32  profilanswer
 

merci magic je vais regarder ca ([:totoz])

n°662659
urd-sama
waste of space
Posté le 04-03-2004 à 12:14:52  profilanswer
 

question crétine, sur un server classique asp, on peut appeler un objet vb?
sinon l'objet winsock a l'air assez simple d'utilisation (j'ai lu en vitesse)

mood
Publicité
Posté le 04-03-2004 à 12:14:52  profilanswer
 

n°662806
MagicBuzz
Posté le 04-03-2004 à 13:58:00  profilanswer
 

Oui, depuis une page ASP, tu peux appeler n'importe quel OCX/DLL à partir du moment où il a une interface compatible VB.
 
Par contre, je pense que tu ne pourras pas te servir directement de WinSock, car ce dernier fonctionne de façon assychrone (du moins, dans le tuto que je t'ai passé). A partir de là, l'ASP ne saura pas s'en servir, car il arrête son éxécution immédiatement quand il n'a plus rien à éxécuter, donc il ne pourra pas gérer les évènements de retour de WinSock.

n°1235791
art_dupond
je suis neuneu... oui oui !!
Posté le 01-11-2005 à 17:47:24  profilanswer
 

youp,
 
 
je me suis acheté la meme plage que mara's dad...
 
mais elle est très propre, trop.... :(


---------------
oui oui
n°1246244
Mara's dad
Yes I can !
Posté le 15-11-2005 à 18:30:02  profilanswer
 
n°1644328
rawcut
tw: @_rawcut
Posté le 17-11-2007 à 09:01:24  profilanswer
 

C'est presque l'hiver, on a plus de temps au chaud à la maison... 2 ans après, certain d'entre vous sont-ils partant pour reprendre l'idée et implémenter des plages sur leur site ? Peut-être améliorer la "rfc" ou en proposer une version etendu ?  
 
Je pense à une gestion de la connaissance d'autre plage sans avoir besoin des les soumettre manuellement, ex: toutes les plages créent un fichier de max 10 adresses de plages au fur et à mesure de leur connection, et à chaque arrivé de bouteille, les 2 plages connectées s'échangent et mix tout ou partis de ces adresses afin de recréer un fichier ne possédant toujours que 10 adresses (prisent aléatoirement dans les 2 fichiers).
 
Le code de mara's dad est toujours présent ici pour s'inspirer et redémarrer facilement. http://www.surleau.com/plage
 
Ca vous tente ?
 [:fleur de vanille]

n°1644679
bapho13
Usager usant
Posté le 18-11-2007 à 12:27:07  profilanswer
 

Moi ca me tente bien comme projet ! Je peux même trouver quelques personnes potentiellement bien interressées. Et puis c'est un concept tellement web 2.0 que doit y avoir quelque chose à faire du coté des blogs :p

n°1644755
rawcut
tw: @_rawcut
Posté le 18-11-2007 à 14:53:51  profilanswer
 

Bien bien.  :o  
 
Alors pour le moment le code de mara comporte 2 fonctions en GET ou POST
 
Check : qui permet de verifier qu'une url est une plage
addBottle: qui permet de recevoir un message en provenance d'une autre plage.
 
Dans son algo il fait aussi une vérif des plages mortes en les supprimant au bout de 5 "non-réponse" d'une plage interrogée.
 
Le souci que je vois c'est que pour le moment il faut rajouter les plages connus à la mains, et qu'il faut systematiquement une action utilisateur sur la plage pour qu'une bouteille se déplace.  
Pour l'instant j'ai écris un début de protocole pour que les plages puissent s'échanger des urls entres elle. Il faudrait implémenter un protocolepermettant à des messages d'être alétoirement transferer de temps en temps (par exemple les jours de grandes marrée de la vraie vie).
 
Voilà ce que j'ai écris. A voir si le systême ne risque pas de se bloquer tout seul ou si j'ai pas écris un truc impossible :D  (les points 1  et 2 sont ceux de la rfc de mara)
 


 
 
1.  INTRODUCTION
   
   Une plage est un peu plus qu'une plage.  En fait, c'est un bout
   d'océan avec ses courants ses tempêtes et une plage où des messages
   dans des bouteilles peuvent s'échouer.
 
   Sur une plage, un promeneur peut donc y ramasser des bouteilles qui
   traînent et en envoyer.
 
   La partie Océan se charge de récupérer les messages d'autres Océans
   et d'en envoyer. En cas de tempête, certaines bouteilles en transit
   sont coulées.
 
   -  La partie Protocole est la seule obligatoirement commune à toutes
      les plages.  
   -  La partie Implémentions est spécifique à chacun
 
 
 
 
2.  PROTOCOLE MINIMUM
   
   La Plage met à la disposition des autres plages 2 fonctions sous la
   forme de paramètre HTTP/1.1.
 
      Check, en GET.
       
         Cette fonction permet à une Plage de vérifier que le site
         contacté est bien une plage et de vérifier quel protocole est
         utilisé.
 
         Syntaxe :
         Check=Plage en GET.
         Réponse :
         Protocol: GET|POST // Avec la possibilité de renvoyer 2 lignes
         si on supporte les deux. Ligne terminée par CRLF.
 
      addBottle=[message], en GET ou POST.
 
         Pas de réponse standard. // Message d'erreur apprécié par les
         plages en dev. Il est conseillé de s'assurer que le site est
         bien une plage et déterminer GET ou POST en utilisant la
         fonction Check avant l'envoi.  [message] doit être écrit en
         UTF-8 urlEncodé Ce qui veux dire que la requête HTTP doit
         préciser :  
       
      ---
      Content-Type: application/x-www-form-urlencoded; Charset=UTF-8
      ---
 
   D'autre part, quelle que soit l'implémentation, les pages HTML
   doivent être en UTF-8.
 
   
 
3.  PROTOCOLE ÉTENDU
   
   Ce protocole est une version étendu du premier protocole (hfr-sep05).
   Toute plage tolérant ce protocole étendu doit bien évidemment
   implémenter le protocole minimum.
 
   La plage étend ses possibilités de connaissance et d'insertion des
   autres plages, toujours sous la forme de paramètre HTTP/1.1.  
 
   -  Le nombre de plage connus par une seule plage est fixée à 20.
   -  La plage met à disposition 3 nouvelles fonctions.
 
      needWave = [url], GET. url est l'url de la plage emetrice.
      newWave = [url], GET ou POST. url est une plage aleatoire.
      recordWave = [url], GET. url est l'url de la plage emetrice.
       
         Si pas de réponse: La plage n'accepte pas ou n'est pas aux
         normes étendus.
 
 
3.1  Cas possibles.
 
      -  Plage_A reçoit son 10ème message => needWave, newWave.
      -  Plage_A vient de dropper une Url qui n'a pas répondu après 5
         essais. => needWave, newWave
      -  Plage_A est une nouvelle plage et veut s'enregistrer.
         recordwave, newWave.
 
 
 
 
3.2  Utilisation :
 
 
3.2.1  Cas du Nième message.
 
   1)  Tout les 10 messages reçus par Plage_A, une fois le message
   enregistré, Plage_A envoie une requête needWave à une plage aléatoire
   Plage_B.
           
   2)  Plage_B reçoit la commande et renvoie vers plage_A: newWave[url]
   avec url = une url tirée au hasard de sa base.  
 
   3)  Plage_A reçoit la commande newWave.  
       
      -  Si l'url n'est pas connu de sa base, elle regarde combien d'url
         elle possède en base.  
      -  Si Ce nombre est inférieur à 20, elle enregistre l'url. Sinon,
         elle drope une plage, puis enregistre.
     
     
 
3.2.2  Cas d'une plage manquante.
 
   1)  Parfois une plage ne répond plus (site mort). Quand une plage n'a
   pas répondu à 5 "check" Elle est automatiquement dropper de la base.
   Plage_A prend alors une url au hasard dans sa base et envoie une
   commande newWave vers Plage_B.  
 
   2)  Plage_B reçoit la commande et renvoie vers plage_A: newWave[url]
   avec url = une url tirée au hasard de sa base.  
 
   3)  Plage_A reçoit la commande newWave. si l'url n'est pas connu de
   sa base, elle enregistre l'url. Si l'url est connu, elle relance une
   commande newWave aléatoirement (3 essais max).
 
      (La plage peut donc temporairement se retrouver avec moins de 20
      plages connu. La fonction appelée au Nième message et la fonction
      recordWave permet de rééquilibrer ce nombre progressivement.)
 
 
3.2.3  Cas d'une plage toute neuve.
 
   0) On enregistre manuellement une première adresse de plage en base
 
   1)  La plage_A envoie une commande recordWave vers la plage de sa  
   base.
 
   2)  Plage_B reçoit comme url l'url de Plage_A. Si elle ne connaît pas
   cette url, elle prend alors une url dans sa base au hasard, la drope
   si elle possède déjà 20 plages, et enregistre la nouvelle url recu
   par la fonction record. L'url droppé à été préalablement enregistré
   en mémoire, et est renvoyé avec la fonction newWave vers Plage_A.
   Si elle connait la plage, elle ne fait qu'envoyé une url via newWave.
 
      Ainsi A et B se connaissent mutuellement.
 
   3)  Le script itère l'opération en utilisant recordWave avec une url
   aléatoire récupéré de sa base jusqu'à atteindre 20 url. Si le script
   à bouclé 30 fois il s'arrête.
 
 
 


 
 
 
 

n°1645222
omega2
Posté le 19-11-2007 à 13:01:08  profilanswer
 

Vla une bouteille à la mer qui perdure depuis 4 ans. Qui l'eu crus. ;)
 
Bon, en pratique, il existe combien de site qui correspondent à votre système et qui soient en activité? Et est ce qu'il existe un exemple de dialogue? Je trouve la RFC claire dans le principe mais imprécise en pratique peut être à cause du "protocole étendu".

n°1645268
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 14:38:54  profilanswer
 

Bé à part le site de mara a priori y'a plus aucune plage. Sur ce topic on peut trouver le code complet de l'existant. C'est a retravailler mais y'a déjà un minimum pour ceux qui connaissent le php.  
 
Pour que le projet se lance il faut un minimum de plage en début d'activité, une bonne dizaine serait pas mal.
Je pense qu'il faudrait reéecrire la rfc "tout court". Le coté étendu n'ayant pas lieu d'être si aucune ancienne plage ne fonctionne.
 
Si on est plusieurs interessé, il faudrait décider du nombre de fonction à implémenter pour que le systême soit le plus autonome possible une fois lancée (transfert des bouteilles, echange de plage etc...). Dans l'idéal il faudrait qu'une plage existante mais sans aucun visiteur "humain" puisse transferer des messages et des urls de plages (par exemple quand elle recoit un message qui a été préalablement "renvoyer" par le visiteur d'une autre plage).
 
Ensuite on pourra eventuellement poster des implémentations en php ou asp de chaque fonction histoire que tout le monde puisse faire sa petite plage et l'intégrer au mieux à son propre espace web (eventuellement comme mara la fait, proposer un package tout fait avec un installeur)
 
Perso je pourrais facilement créer 2 plages sur 2 serveurs différents. Ensuite avec un systême au point je dois pouvoir trouver d'autres espaces.
 
Omega2, bapho13 ? Ca vous branche ? (On va commencer par compter nos forces hein :D )  

n°1645276
multani
Dépressionnisé
Posté le 19-11-2007 à 14:43:49  profilanswer
 

Moi ça me dit [:dawa]
Je peux m'occuper de l'implémentation Python [:dawa]

n°1645285
omega2
Posté le 19-11-2007 à 14:49:58  profilanswer
 

Ca m'aurait intéresser pour me marrer mais j'ai trop d'autres trucs en attente avant de faire ça même si ça ne doit pas être long à préparer.

n°1645287
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 14:50:31  profilanswer
 

Alors je dresse une liste :  
 
Dev:

  • rawcut - php - 2 plages  
  • multani - python - 1 plage [:dawa]
  • kao98 - php - 1 plage  
  • bapho13 - ??


 
 
Total dev : 4   (2 php | 1 python )  
Total plages : 4

Message cité 1 fois
Message édité par rawcut le 19-11-2007 à 15:06:15
n°1645291
kao98
...
Posté le 19-11-2007 à 14:56:10  profilanswer
 

Moi, je suis partant pour participer au projet !
php - 1 plage possible


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1645298
multani
Dépressionnisé
Posté le 19-11-2007 à 15:01:42  profilanswer
 

rawcut a écrit :

Alors je dresse une liste :

 
  • rawcut - php - 2 plages possible (1and1 et OVH)
  • multani - python - ??  [:dawa]
  • kao98 - php - 1 plage possible


  • bapho13 - ??
 


 [:in ze navy ii]


Une plage (voir d'autres, à voir :o )


Message édité par multani le 19-11-2007 à 15:03:19
n°1645312
IrmatDen
Posté le 19-11-2007 à 15:17:28  profilanswer
 

C'est beau de voir la tectonique des plaques à l'oeuvre en pleine création/"suppression" de plages :)

n°1645357
bapho13
Usager usant
Posté le 19-11-2007 à 16:07:34  profilanswer
 

1 plage ouais dès que j'ai un peu le temps (peut etre le we prochain :o)

n°1645398
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 17:05:00  profilanswer
 

Dev:

  • rawcut - php - 2 plages
  • multani - python - 1 plage
  • kao98 - php - 1 plage
  • bapho13 - 1 plage
  • dwogsi - php (java??) - 1
  • KangOl - ruby - 1 plage
  • WiiDS - php - 1 plage


Total dev : 7  (4 php | 1 python | 1 java ?? | 1 ruby)
Total plages : 8

 


omega2 rejoindra peut-être le projet un peu plus tard


Message édité par rawcut le 19-11-2007 à 19:07:47
n°1645401
dwogsi
Défaillance cérébrale...
Posté le 19-11-2007 à 17:11:53  profilanswer
 

Ouai moi aussi ça m'branche, j'en mettrais une dans un coin, PHP je pense.
Quoique j'me ferais bien une implé java, si j'ai le temps/motiv'


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1645409
skeye
Posté le 19-11-2007 à 17:26:07  profilanswer
 

'tain j'avais oublié ce truc...:D


---------------
Can't buy what I want because it's free -
n°1645414
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 17:30:56  profilanswer
 

skeye a écrit :

'tain j'avais oublié ce truc...:D


 
Vive les drapeaux bleus  :sol:

n°1645420
omega2
Posté le 19-11-2007 à 17:42:31  profilanswer
 

J'ai regardé vite fait la version de Mara's dad, je ferais peut être une plage dans quelques semaines si j'ai le temps.


Message édité par omega2 le 19-11-2007 à 17:59:57
n°1645428
bapho13
Usager usant
Posté le 19-11-2007 à 17:55:12  profilanswer
 

PHP pour le langage.

n°1645448
KangOl
Profil : pointeur
Posté le 19-11-2007 à 18:26:47  profilanswer
 

je ferais bien une version ruby (si j'ai le temps)

n°1645454
dwogsi
Défaillance cérébrale...
Posté le 19-11-2007 à 18:49:44  profilanswer
 

Diable, je pensais aussi à une version ROR!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1645461
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 19-11-2007 à 19:03:20  profilanswer
 

Si j'ai du temps, une plage en PHP. Marrant comme concept :)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1645465
KangOl
Profil : pointeur
Posté le 19-11-2007 à 19:08:16  profilanswer
 

dwogsi a écrit :

Diable, je pensais aussi à une version ROR!


rails pour la plage en temps que telle
en ruby pure pour l'implementation, de manière a avoir une version GUI ou CLI

n°1645467
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 19:13:03  profilanswer
 

Peut-être faire un wiki qq part pour concentrer les portions de codes non ? hfr pour les discussion et le wiki pour les exemples d'implémentation ?
 
Avant tout peut-être se mettre d'accord pour une rfc ? :D

n°1645470
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 19:30:18  profilanswer
 

Les fonctions de la nouvelle RFC.
 
check : permet de s'assurer qu'une plage est bien une plage. (la réponses sont la ou les méthodes que supportent la plage (get | post)
addBottle=[message] : permet à une plage de recevoir et donc d'enregistrer une bouteille en provenance d'une autre plage.
needWave =[url] : la plage à l'adresse [url] demande l'adresse d'une nouvelle plage.
newWave = [url] : la plage recoit une nouvelle [url] à intégrer dans sa base.
recordWave=[url] : la plage [url] demande à être enregistré ET l'adresse d'une nouvelle plage.
 
(je sais pas si mes nouvelles fonctions sont bien comprises ou si on peut faire plus simple, vous me dites :D )
 
D'autres idées ? (Ou les même en mieux  [:ddr555] )

n°1645473
LePhasme
Les Belges domineront le monde
Posté le 19-11-2007 à 19:39:27  profilanswer
 

On commence à être bien loin du système de plage initial

n°1645474
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 19:45:12  profilanswer
 

Pourquoi ? C'est la même chose sauf qu'on rajoute de quoi rendre les plages plus autonomes dans la gestion des urls des plages. Je vois un peu ça comme les courants marins, les marées, les plages artificiels etc...

n°1645477
lorill
Posté le 19-11-2007 à 20:02:48  profilanswer
 

oh, ca se relance :o

n°1645488
rawcut
tw: @_rawcut
Posté le 19-11-2007 à 20:46:38  profilanswer
 

Comme quoi une bouteille peut mettre plusieurs années avant de revenir :o

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10  11  12  13  14

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Rech] coders C++ pour m'aider pour un projet[WSAD] ajouter un projet à une config serveur
Gestion de projetOffre de projet PHP/mySQL rémunéré
Fichier integré au projetMa premiere class pour mon projet, des commentaires ? :)
projet c++ simple traduire une phrase en morse "sonore"[ECLIPSE] Comment intégrer un input à un projet?
contenu des fichiers du projet (.cfg, .dof, .dsk, ...)[Projet] Programme d'encodage/decodage Audio/Video MPEG-1/2/4
Plus de sujets relatifs à : [Projet] Une bouteille a la mer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR