Projet découverte IP, v1.a

Petites nouvelles sur l’avancement.

J’ai rapidement mis en ligne ce que j’appelle la version 1.a. Il est donc maintenant possible de trouver et d’afficher son adresse IP via ipso.me.

J’ai mis à disposition le code source du projet sur Kenai.com (en). Leur service est vraiment clair et pratique. J’ai ouvert un dépôt Mercurial : http://kenai.com/projects/ipsome/sources/hg/show (en). Je découvre l’utilisation d’un gestionnaire de code décentralisé, je ne suis pas encore 100% à l’aise avec car cela change de SVN, mais c’est assez pratique. Il faudra qu’un jour je prenne le temps de lire Subversion Re-education (en).

Pour l’instant le code est vraiment minimaliste, il y a juste un contrôleur qui récupère l’IP du client et la passe à une vue. Mes premières impressions sur l’utilisation de Play! Framework (en) sont très bonnes. C’est vraiment très simple à mettre en place, très simple pour commencer, le tutoriel de départ est bon. J’ai d’ailleurs fait cette version 1.a directement en suivant le tutoriel “Première application (en)” .

Pour le style, j’ai récupéré un template que j’ai déjà utilisé par ailleurs, il a l’avantage d’utiliser le framework CSS 1140 CSS Grid (en) qui permet de s’adapter à la largeur de l’écran. Le rendu s’adapte jusqu’aux résolutions des smartphones.

Ce qu’il me reste à faire pour avoir une vrai version 1 :

  • Intégrer la licence Apache au projet,
  • Faire une petite doc pour l’installation :
    • en texte dans un fichier install.txt,
    • en html intégré dans une page du projet
  • Nettoyer le code et le template utilisé

WordPress NextGEN : navigation avec les flèches de direction

Sous WordPress, avec une galerie NextGEN qui utilise l’effet thickbox, pour faire défiler les images à l’aide des touches directionnelles du clavier (les flèches gauche et droite il faut procéder comme suit :

Dans le fichier “wp-includes/js/thickbox/thickbox.js“, trouver ce bloc de code :

if(keycode == 27){ // close
 tb_remove();
} else if(keycode == 190){ // display previous image
 if(!(TB_NextHTML == "")){
  document.onkeydown = "";
  goNext();
 }
} else if(keycode == 188){ // display next image
 if(!(TB_PrevHTML == "")){
  document.onkeydown = "";
  goPrev();
 }
}

Et remplacer le keycode :

  • 190 par 39
  • 188 par 37

Attention : comme ce fichier fait partie de la distribution WordPress, à chaque mise-à-jour il faut refaire la modification.

Installation de Tomcat et variable d’environment BASEDIR

Si vous installez Tomcat sur un GNU/Linux depuis une archive binaire récupérée d’Apache et lancez tomcat via “./startup.sh” vous risquez d’avoir le message suivant :

The BASEDIR environment variable is not defined correctly
This environment variable is needed to run this program

Pour éviter cela, il faut d’abord vérifier que “JAVA_HOME” et “CATALINA_HOME” soeint bien définis comme cela est spécifié dans le fichier “RUNNING.txt” livré avec l’archive de Tomcat.

Ensuite il faut surtout vérifier que les fichiers “bin/startup.sh” “bin/shutdown.sh” et “bin/setclasspath.sh” soient bien exécutables. Quelque chose du genre :

chmod +x bin/startup.sh
chmod +x bin/shutdown.sh
chmod +x bin/setclasspath.sh

Après cela Tomcat devrait s’exécuter via “./startup.sh“.

Projet découverte IP

Version 0

Le nom

J’ai trouvé un nom qui va avec un domaine disponible : ipso.me. Bon, maintenant, bien entendu le domaine n’est plus disponible. Pourquoi ipso ? Car c’est court, le domaine en .me est libre. Il contient IP qui fait bien référence à l’adresse IP qu’on veut arriver à déterminer. Le so peut faire référence à « solve » ou « solution ».

IP + SOlve = ipso. Le “.me” indiquant qu’il s’agit de résoudre mon adresse ip.

Ça me parait bien. Le projet sera donc nommé « ipso.me » et ce sera à la fois le nom du projet et du domaine.

La forge

Pour la forge, j’ai envie de tester le système de gestion de version Mercurial. Je m’oriente donc vers la plateforme Kenai qui est très bien intégrée à Netbeans, l’IDE que j’utilise couramment. Depuis le rachat de Sun par Oracle, il était question que Kenai disparaisse pour laisser la place à java.net qui utilise maintenant la plateforme Kenai. Mais il semble que les deux sont actifs en simultanés. Donc on verra, il sera toujours temps de changer. Les autres choix possibles pour Mercurial sont :

Projet découverte IP

But du projet

Construire une application web permettant d’afficher l’adresse IP des visiteurs. Afficher le maximum d’informations sur :

  • utilisation d’un proxy,
  • localisation,
  • IP dynamique ou statique

Ce projet sera développé de façon itérative et doit me permettre de tester diverses technologies. Le code sera en Java et open-source sous licence Apache 2.0.

Prévision de versions

  • Version 0 :
    • Trouver un nom au projet,
    • Trouver un nom de domaine pour l’installation publique,
    • Trouver une forge où publier l’application
  • Version 1 :
    • Afficher l’adresse IP du visiteur,
    • Mettre en ligne l’application,
    • Publier le code sur la forge choisie
  • Version 1.1 :
    • Afficher les informations sur l’utilisation de proxy
  • Version 1.2 :
    • Afficher les informations de localisation de l’IP via une base de localisation
  • Version 1.3 :
    • Permettre à l’utilisateur de tracer ses changements d’adresse via un cookie, ainsi depuis un même poste, il pourra déterminer si il a une adresse IP dynamique.
  • Version 1.4 :
    • Si l’utilisateur le permet et si son navigateur le supporte, demander la localisation de l’utilisateur.
  • Version 2.0 :
    • Permettre à l’utilisateur d’avoir un compte sur l’application, proposer plusieurs systèmes d’authentification :
      • Système interne au site,
      • OpenID
      • Facebook
      • Google
    • Avoir un compte permet de :
      • Avoir un historique de ses IP, localisations
      • Supprimer son compte et ainsi effacer toutes les données
    • La collecte d’information va nécessiter une déclaration à la CNIL

Outils utilisés

  • Essayer Java 7, une pré-version est disponible.
  • Utiliser le framework d’application web “Play!“.

Bien entendu, aucune garantie de résultat, juste du best effort