Archives mensuelles : février 2008

Fichier proxy.php

Dans notre « Guide complet AJAX« , nous proposons un proxy virtuel en ASP permettant de « faire croire » que les données viennent du serveur qui heberge les sources JS alors qu’elles viennent d’internet. Plus qu’un proxy, c’est juste un miroir…

Des lecteurs m’ont demandé à plusieurs reprises l’equivalent en PHP, voila le code :

L’url suivante le montre en action : https://brico-info.com/proxy.php?url=http://www.google.fr (les images ne sont pas visibles justement parce qu’elles sont en url relative)

Le parametre « nature » permet de renforcer l’entete du content-type, son utilisation est optionnelle.

  1. $_url = $_GET[‘url’];
  2. $_nature = $_GET[‘nature’];
  3.  
  4. $handle = fopen($_url, « rb »);
  5. $contents =  »;
  6. while (!feof($handle)) {
  7.     $contents .= fread($handle, 8192);
  8. }
  9.  
  10. //gestion des entetes
  11. if ($_nature==‘XML’)
  12.         header(« Content-type: text/xml »);
  13. elseif ($_nature==‘HTML’)
  14.         header(« Content-type: text/html »);
  15.  
  16. //on affiche la page
  17. print_r($contents);
  18.  
  19. fclose($handle);
  20. ?>

Monitoring de serveur

Je cherchais une façon simple de monitorer le debit en download de façon simple. Après deux trois recherches, j’ai fait un script vbs à partir de deux trois sites. Une fois piloté par une tache planifiée, j’ai un controle toutes les 10 minutes.

Le code :

  1. ‘fichier à télécharger
  2. strFileURL = « http://votre_serveur_a_monitorer/500000.txt »
  3. ‘fichier local avec chemin
  4. strHDLocation = « toto.txt »
  5.  
  6. ‘recuperation du fichier
  7. Set objXMLHTTP = CreateObject(« MSXML2.XMLHTTP »)
  8. ‘pour gerer le probleme de cache
  9. randomize
  10. random_number=int(rnd*10000)
  11.  
  12. ‘top depart            
  13. top =  Timer
  14.  
  15. ‘recuperation
  16. objXMLHTTP.open « GET », strFileURL & « ?rnd= » & random_number, false
  17. objXMLHTTP.send()
  18.  
  19. If objXMLHTTP.Status = 200 Then
  20.   Set objADOStream = CreateObject(« ADODB.Stream »)
  21.   objADOStream.Open
  22.   objADOStream.Type = 1 ‘adTypeBinary
  23.  
  24.   objADOStream.Write objXMLHTTP.ResponseBody
  25.   objADOStream.Position = 0    ‘Set the stream position to the start
  26.         ‘ecriture
  27.   objADOStream.SaveToFile strHDLocation
  28.   objADOStream.Close
  29.   Set objADOStream = Nothing
  30. End If
  31.  
  32. ‘top fin
  33. tps = timer – top
  34.  
  35. Set objXMLHTTP = Nothing
  36.    
  37. ‘On logue le resultat
  38. Set FSO = CreateObject(« Scripting.FileSystemObject »)
  39. ‘on onvre le fichier de log, on le crée s’il n’existe pas
  40. Set Ftxt = FSO.OpenTextFile(« log.txt »,8,True)
  41. ‘On ecrit à la fin du fichier fichier
  42. Ftxt.writeline (Now & Chr(9) &  FormatNumber(tps,2) & « s » & Chr(9) & FormatNumber(500/tps,2) & « Ko/s »)
  43. ‘on le ferme
  44. Ftxt.Close
  45.  
  46. ‘suppression si le fichier téléchargé est présent
  47. Set objFSO = Createobject(« Scripting.FileSystemObject »)
  48.   If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
  49. Set objFSO = Nothing
  50.  

Coté tâche planifiée, une fois crée à la journée (periode minimum sous windows), il faut aller dans les options avancées et dire que vous voulez une repetition toutes les n minutes.

Une fois les données récupérées, un copier coller dans Excel ou Google Documents

 

Grille de cave soudée

Pour le decaissage de la cave, j’ai agrandi le soupirail de la cave et surtout viré l’immonde grillage tout poussiereux. Pour souder des robinets thermostatiques à l’étage, j’ai acheté un poste à souder bi-gaz de Camping Gaz

 

Le projet est là de souder une petite porte metallique pour proteger le soupirail de l’assaut des canettes de bière qui se retrouvent au fond de ma cave.

40cm de largeur sur 25 de hauteur avec la partie verticale cintrée.

La barre du haut a été cintrée dans l’établi, manuellement. J’ai soudé le cadre principal avec le poste à souder bi-gaz de camping gaz, mais autant pour le cuivre, ça s’etait bien passé, autant là, c’etait moyen. Je me suis donc rabattu sur une autre téchnologie de soudure, la soudure à l’arc. J’ai acheté un poste à souder de poche Spark 100 (24x10x15 en cm) avec des tailles d’éléctrodes de 1,6 – 2 ou 2,5mm.

 

Et là, en une petite heure, j’ai pu facilement reprendre les soudures du cadre, souder 4 barreaux intermediaires et la grille metalique du dos.


Reprise du cadre


Les deux premiers barreaux


Le plus dur est le maintien des pièce à souder puisque les deux mains doivent être libres.


Une autre vue


Une fois le grillage soudé


Après le petit coup de peinture

Reste le problème du cadre et de la fixation. J’ai aussi un petit mur de 5cm d’epaisseur à réaliser dans le bas de l’ouverture pour eviter que l’eau de ruissellement rentre dans la cave.

[UPDATE 17/04/2008]

J’ai fait le petit muret en question et j’ai emboité en force la grille.

Je l’ai securisée avec un petit cable de frein de vélo attaché à un anneau à l’interieur.