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:
- avec le tag
<html> et le contenu html doit être uniquement inline
- 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.
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.
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
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!
http://www.s9y.org/48.html
il y a aussi, des options à configurer dans le plugin anti-SPAM, pour désactiver les trackbacks entrants.