Blog geekesque... ou pas

Aller au contenu | Aller au menu | Aller à la recherche

17/03/2013

Apache et nginx - Transmettre l'IP du visiteur

Jai omis hier dans mon billet Soulager Apache avec nginx un point essentiel. Lorsque nginx appelle un contenu dynamique, Apache voit que le demandeur est nginx et non pas le visiteur du site, donc toutes les requêtes viennent de 127.0.0.1. Heureusement, il est possible de forwarder les entêtes HTTP adaptés.

Lire la suite...

Soulager apache avec nginx

Le problème avec Apache, c'est que lorsqu'on appelle une page web, il crée un processus par élément appelé par la page (image, feuille de style, ...), ce qui peut rapidement saturer la mémoire du serveur si trop de visites simultannées sont faites sur un site. Heureusement, on peut utiliser un proxy comme nginx pour économiser des ressources.

Lire la suite...

09/12/2012

Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)

Sur Debian, il arrive parfois que cette erreur apparaisse lors d'une tentative de mise à jour de MySQL, ou même lorsque l'on désire arrêter le serveur.

En fait, l'utilisateur debian-sys-maint n'est pas toujours créé, ou bien il est créé sans les bons privilèges, ce qui est génant.

Correction

Le mot de passe de cet utilisateur se trouve dans le fichier /etc/mysql/debian.cnf. Une fois que vous l'avez copié, connectez-vous en tant que root sur la base mysql du serveur:

mysql -u root -p mysql

Et là, donnez les bons droits à l'utilisateur debian-sys-maint (en remplaçant PASSWORD par le mot de passe précédent):

GRANT ALL privileges ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Redémarrez MySQL, tout doit être bon.

31/08/2012

Plugin lightIRC pour MyBB

Si comme moi vous utilisez MyBB comme forum et que vous voulez y ajouter une page d'accès à un réseau IRC, il n'y avait que le plugin PJirc qui intègre une applet Java.

Je préfère lightIRC, voici donc le Plugin lightIRC pour MyBB.

N'hésitez pas à signaler tous les bugs que vous y trouverez.

Installation

Décompressez le fichier zip et copiez son contenu (sous-répertoires inclus) à la racine de votre forum.

Attention

L'interface lightIRC nécessite que le serveur IRC autorise son accès, pensez à demander à l'administrateur les informations concernant son flashpolicy.

Si vous utilisez votre propre serveur IRC, n'hésitez pas à lire http://www.lightirc.com/faq.html

06/08/2012

Bind9 sur Debian

Récemment, j'ai eu un petit souci avec Bind9. Proprement configuré suite à une installation sous Debian, impossible que mes domaines soient bien pris en compte par les différents serveurs DNS.

Je laisse passer 48h pour la propagation, et toujours rien.

Coup de génie: je teste depuis la machine que bind fonctionne bien en faisant telnet 127.0.0.1 53 et ça fonctionne, bind est bien lancé (ce que j'avais vérifié avec un netstat -anp | grep 53).

Je tente d'une autre machine, et là rien...

En fait, il semblerait que les dernières versions de bind9 sur Debian remplissent ainsi le fichier /etc/bind/named.conf.options :

options {
       directory "/var/cache/bind";
       auth-nxdomain no;    # conform to RFC1035
       listen-on-v6 { any; };
       listen-on { 127.0.0.1; };
       allow-recursion { 127.0.0.1; };
};

Il suffit donc de remplacer listen-on { 127.0.0.1; }; par listen-on { any; }; (ou avec l'IP publique de votre serveur) et tout rentre dans l'ordre.

09/06/2012

m_restrictcolors : Restriction de couleur sur UnrealIrcd

On m'a demandé s'il était possible sur UnrealIrcd de limiter l'usage de la couleur aux opérateurs d'un canal. C'est maintenant possible avec ce module que je viens de développer.

Lire la suite...

11/05/2012

"Bell" avec Putty et screen

Depuis quelques temps, j'ai mis le plugin beep.pl sur weechat et j'ai activé, sur Putty, la signalisation sonore des highlights[1], mais malheureusement, quel que soit le réglage sur Putty, je n'avais qu'un bref clignotement de la fenêtre.

Note

[1] Mise en évidence d'une ligne où vous êtes cité

Lire la suite...

27/04/2012

Cryptage réversible en java

Mon cryptage réversible a fait des émules ! Ophanin a fait une version java du système et vous la livre.

A priori complètement compatible avec la version PHP, peut-être un souci sur le décodage mais je suis certain que ce sera vite corrigé.

RevCrypt java

11/04/2012

[MàJ] Utiliser OpenStreetMap plutôt que GoogleMap ?

Edition du 11 avril: Je me rends compte que je n'ai pas mis l'adresse du site dédié, il s'agit de osmLeaflet.jQuery. C'est là que l'on peut facilement suivre les mises à jour et évolutions.

Depuis quelques temps, je m'intéresse au projet OpenStreetMap qui me semble une bonne alternative à GoogleMap pour l'intégration de cartes sur des sites.

Malheureusement pour les plus fainéant d'entre nous (moi y compris), aucun code officiel à utiliser directement n'existe. Sauf depuis l'intervention de Mathieu Robin qui a créé un plugin OSM pour JQuery, qu'il a appelé osmLeaflet.jQuery.

Voici l'exemple d'utilisation qu'il donne sur son billet d'explication qui vous montre la simplicité déconcertante de son utilisation, mais je vous invite fortement à aller voir le blog.

$(document).ready(function () {
    // Initialisation de la map
    var osmMap = $(document).osmLeaflet({
           target : 'map',
           zoom : 12,
           lattitude : 51.50,
           longitude : -0.09
    });
 
    // Ajout d'un marker
    osmMap.osmLeaflet('addMarker', {lattitude : 51.50, longitude : -0.09});
 
    // Ajout d'une popup
    osmMap.osmLeaflet('addPopup', {lattitude : 51.51, longitude : -0.13, text : "Hey !"});
});

06/04/2012

Votre position en JS

Suite à ce billet, j'ai exploré le blog de Mathieu et j'y ai trouvé une information sur la géolocalisation en JS.

En poursuivant mes recherches à ce sujet, j'ai trouvé un tutoriel fort intéressant: géolocalisation en HTML5.

Je me permet donc d'en mettre les grandes ligne ici (ce ne sont que des copier/coller)

Récupérer les coordonnées

Un système très simple permet d'obtenir les coordonnées. Le système gère la non-prise en compte de la géolocalisation par le navigateur, ainsi que le fait que l'utilisateur refuse de partager sa position.

if (navigator.geolocation)
  navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
else
  alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5");
 
function successCallback(position){
  alert("Latitude : " + position.coords.latitude + ", longitude : " + position.coords.longitude);
});
 
function errorCallback(error){
  switch(error.code){
    case error.PERMISSION_DENIED:
      alert("L'utilisateur n'a pas autorisé l'accès à sa position");
      break;
    case error.POSITION_UNAVAILABLE:
      alert("L'emplacement de l'utilisateur n'a pas pu être déterminé");
      break;
    case error.TIMEOUT:
      alert("Le service n'a pas répondu à temps");
      break;
    }
});

Suivre les déplacements

Ce petit code permet de suivre les déplacements de l'utilisateur

var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
function stopWatch(){
   navigator.geolocation.clearWatch(watchId);
}

Et le lien d'arrêt du suivi:

<a href="#" onclick="stopWatch()">Stop Watch</a>

La vitesse ! La boussole ! L’altitude !

Lorsque l’on récupère la variable position afin d’obtenir la latitude grâce à position.coords.latitude, on a accès à plusieurs autres attributs :

  • position.timestamp, qui renvoie le timestamp de l’heure à laquelle a été mise à jour la position
  • position.coords.altitude, qui correspond à l’altitude de l’utilisateur
  • position.coords.accuracy, qui correspond à la précision des coordonnées
  • position.coords.altitudeAccuracy, qui correspond à la précision de l’altitude
  • position.coords.heading, qui correspond à l’angle compris entre 0 et 360° par rapport au Nord (ce n’est pas aussi précis que la boussole interne d’un smartphone)
  • position.coords.speed, qui correspond à la vitesse de l’utilisateur par rapport à sa dernière position.

- page 1 de 8