Archive for the ‘Web development’ Category

March 7th, 2010 @ 1:50am | njames | Categories Web development | No Comments »
Le temps passant, j'ai fait beaucoup de modifications et d'ajouts sur ce site. La validation xhtml des pages n'est plus depuis belle lurette! Pour remédier à cela, je me suis mis à cette fastidieuse tâche:
  • A propos de contenu html embedded dans une page dokuwiki: (i.e. ma homepage personnelle), il existe en fait deux façon d'encapsuler du html dans une page dokuwiki:
    1. avec le tag <html> et le contenu html doit être uniquement inline
    2. avec le tag <HTML> et le code html peut contenir des éléments block
    La différence est qu'avec le premier, le code html est à l'intérieur d'un un tag <p> donc si le code html imbriqué contient des éléments blocks alors la validation html est impossible !
    C'est un problème qui m'agaçait depuis longtemps, mais je ne connaissais pas l'existence du tag <HTML>.
  • Pour la validation des pages WordPress: ce moteur de weblog à la très sale habitude de formater le contenu des billets, notamment en ajoutant des balises <p> un peu partout. Il est possible de désactiver cela via le plugin disable-wpautop. Une fois ce plugin activé, la validation xhtml 1.0 transitional est à portée de main...
    Un petit souci cependant: le plugin désactive aussi l'ajout des balises <br>, ce qui est embêtant pour la rédaction.
July 31st, 2008 @ 3:44pm | njames | Categories GNU/Linux, Java, Web development | No Comments »
Mémo de l'installation sur mon serveur: Je ne veux pas installer les paquets tomcat-5.5, tomcat5.5-admin et tomcat5.5-webapps présent dans les dépôts Ubuntu. Car avec ces paquets:
  • le fichier de configuration du service tomcat est /etc/default/tomcat.
  • les fichiers server.xml et web.xml se trouvent dans /etc/tomcat, mais le reste des fichiers de configuration sont dans /var/lib/tomcat.
  • les webapps sont dans /var/lib/tomcat/webapps, mais l'application Tomcat se trouve dans /usr/share/tomcat.
  • on a un script de gestion du service /etc/init.d/tomcat.
Cette intégration dans le système peut être intéressante sous certains abords, mais je n'en ai pas l'utilité et puis, c'est surtout pas pratique du tout. Il est beaucoup plus propre d'installer manuellement un Tomcat dans /home/tomcat, et donc sur la partition /home du système sous l'utilisateur et le groupe www-data. Ainsi, ça ne pourri pas /usr, et de plus les applications Web à déployer peuvent être volumineuses, ou si une application Web écrit des données dans son webContent (le répertoire où elle est déployée), c'est pas très pro. sans doute, mais c'est pratique. Pour créer un service système pour un Tomcat installé manuellement, il suffit d'écrire un fichier /etc/init.d/tomcat tel que:
# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
 
export JAVA_HOME=/opt/jdk1.6.0_10
 
case "$1" in
start)
start-stop-daemon --start --chuid www-data:www-data --exec /home/tomcat/apache-tomcat-6.0.16/bin/startup.sh -- -d -r /home/tomcat/apache-tomcat-6.0.16/
;;
stop)
#start-stop-daemon --stop --exec /home/tomcat/apache-tomcat-6.0.16/bin/shutdown.sh
/home/tomcat/apache-tomcat-6.0.16/bin/shutdown.sh
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Il faut disposer les droits idoines sur le fichier:
chmod 755 /etc/init.d/tomcat
Puis l'ajouter aux scripts systèmes:
ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
L'étape suivante pour une installation qui va bien, est d'utiliser le connecteur Tomcat jk_connector. Pour Apache, c'est le module mod_jk pour accéder à Tomcat depuis Apache, et ainsi l'abstraire du port 8080 pour accéder aux applications web déployées sous Tomcat. Ce qui en plus d'être plus simple et pratique dans l'écriture des URL, peut s'avérer nécessaire, par exemple si vous faites un appel à une servlet depuis un script PHP qui est lui, hébergé sur un autre serveur sur lequel la création d'une socket sur un port autre que 80 est interdit (par exemple, les serveurs de free.fr). Pour mod_jk, installer le paquet libapache2-mod-jk, et éditer le fichier /etc/apache2/mods-available/jk.load:
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount / worker1
JkMount /* worker1
Les JkMount sont les points de montages des applications Web que vous voulez monter. Editer ensuite le fichier /etc/apache2/workers.properties :
workers.tomcat_home=/home/tomcat/apache-tomcat-6.0.16
workers.java_home=/opt/jdk1.6.0_10
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
Il ne suffit plus qu'a redémarrer Apache. Cette configuration fonctionne bien, mais n'est pas sensitive aux sous-domaines éventuels de votre configuration d'Apache, ainsi http://trevize.net/Bouquinoscope et http://njames.trevize.net/Bouquinoscope pointe vers la même webapp Tomcat. Une solution assez simple est de créer un VirtualHost pour notre Tomcat, par exemple http://webapps.trevize.net, pour cela éditer le fichier worker.properties:
workers.tomcat_home=/home/tomcat/apache-tomcat-6.0.16
workers.java_home=/opt/jdk1.6.0_10
ps=/
worker.list=worker1
worker.webapps.port=8009
worker.webapps.host=localhost
worker.webapps.type=ajp13
worker.webapps.lbfactor=1
Commentez les points de montage JkMount indiqués précédemment dans /etc/apache2/mods-available/jk.load. Pour finir, il suffit d'ajouter le VirtualHost en éditant un fichier /etc/apache2/sites-available/webapps:
<VirtualHost *:80>
ServerAdmin nicolas.james@gmail.com
ServerName webapps.trevize.net
# Send servlet for context /servlets-examples to worker named worker1
JkMount /* worker1
# Send JSPs for context /jsp-examples to worker named worker1
JkMount /*.jsp worker1
</VirtualHost>
Il ne suffit plus qu'a monter le site avec a2ensite webapps, et redémarrer Apache. Configuré ainsi, Tomcat est accessible uniquement sur http://webapps.trevize.net. Pour que l'accès aux webapps sur le site soit plus eye-candy, un coup d'URL-rewriting avec le module rewrite pourra par exemple faire pointer http://trevize.net/Bouquinoscope vers http://webapps.trevize.net/Bouquinoscope.
June 15th, 2007 @ 3:40pm | njames | Categories Web development | No Comments »
MoinMoin est un wikiwikiweb en python, sa spécificité est que les pages sont stockées sous forme de fichiers et de répertoires. Une base de donnée mysql (comme pour MediaWiki) n'est pas nécessaire, il y a cependant, un projet de moinmoin avec une base de donnée relationnelle. Il faut avouer que pour faire de la recherche, une base de donnée relationnelle est la panacée. Mais installer et configurer MoinMoin n'est apparemment pas de la tarte... mod_python et apache2 http://ubuntuforums.org/showthread.php?t=91101&highlight=mod_python Il y a plusieurs façon d'utiliser MoinMoin: 1. en stand-alone, avec un serveur http en python ; 2. avec apache en CGI ; 3. avec apache en mod_python ; Par ailleurs, j'ai découvert avec MoinMoin: Lupy full text indexer, un portage de Jakarta Lucene 1.2 en python. "use Porter Steeming", comme dans l'article de Fegas, INRIA, Classification de document XML. (Mais cet outil de lemmatisation est très connu en IR, c'est pas surprenant). Dans le README.txt de Lupy, il est clairement indiqué: Java is faster L'ENS de Cachan a un site Wiki basé sur MoinMoin qui est très bien fait: http://www.crans.org/PageD%2527Accueil De la doc sur MoinMoin est dispo: http://www.crans.org/MoinMoin
June 15th, 2007 @ 9:58am | njames | Categories Web development | No Comments »
Serendipity est un moteur de weblog épatant, vraiment, j'utilise quotidiennement WordPress depuis des années, et j'ai quelque peu utilisé Dotclear, (SPIP aussi brièvement), mais Serendipity est extra, simple, fonctionnel, sans chichi. Et puis, il n'est pas mysql only, c'est pour cela que j'ai commencé à l'utiliser. Faire un diagramme pendant la rédaction d'un billet pour ce blog m'est arrivé à plusieurs reprises (voir mon billet précédent), et la gestion des media dans l'écriture de billet dans Serendipity est très fonctionnelle. Ce serait une idée, je pense, de l'utiliser après la création d'un diagramme, de façon automatique. Dans l'idéal, ajouter un bouton Sketch dans la barre de bouton réservé aux styles de rédaction. Ce bouton pointe sur une application de sketching Ajax en ligne, telle que http://www.cumulatelabs.com/draw/draw.html qui conviendrais bien, je pense. (mais il y aussi, http://us.ajax13.com/en/internal/ajaxxls-noffox.html) Cette application permet de créer rapidement un diagramme en ligne puis de le sauvegarder dans un fichier, différents types d'image sont possible: jpeg, svg, pdf. Seul le type jpeg m'intéresse réellement, ImageMagick utilisé en back-end par Serendipity pour traiter les images sait utiliser le SVG mais Serendipity n'arrive pas à le gérer apparemment, cependant le PDF peut s'avérer intéressant également. Une fois le diagramme créée, sauvegardé, il est ajouté automatiquement dans la Media Library de Serendipity, et le lien Media de rédaction est activé avec une sélection automatique de l'image du diagramme. L'utilisateur se trouve alors devant la fenêtre de Serendipity où il choisit la taille de l'image dans l'article et le style de présentation. Je pense que cela peut être faisable avec GreaseMonkey. Il faudrait regarder de plus près, mais un javascript ajouté dans la page de Serendipity et un autre dans la page de CumulateLabs devraient pouvoir être possible... reste à en évaluer la complexité. Il y a peut être un problème cependant, l'image sortante de l'application de sketching: où la stocker? Mais peut être qu'on peut l'ajoutée directement dans le dossier physique de Serendipity, avec un webdav peut être ou un ftp. Ou encore, un ftp temporaire sur un serveur... Ce projet serait donc l'écriture d'au moins 2 scripts GreaseMonkey. Affaire à suivre!
June 2nd, 2007 @ 3:01pm | njames | Categories Web development | No Comments »
http://www.s9y.org/48.html il y a aussi, des options à configurer dans le plugin anti-SPAM, pour désactiver les trackbacks entrants.


 Valid XHTML 1.0 Transitional Valid CSS! WordPress