Contar los usuarios online

Para conocer el número de usuarios conectados en nuestra web, existe un sencilla forma de hacerlo que nos da el mismo API de Servlets de java.

Simplemente tenemos que crear un listener que implemente la interface HttpSessionListener, dónde implementaremos los métodos sessionCreated, donde incrementaremos el contador total de usuarios, y sessionDestroyed, dónde lo decrementaremos. Por último deberemos declarar el listener en el web.xml, así ya tendremos implementado nuestro contador de usuarios online.

También hay ocasiones, que nos puede interesar conocer el número de usuarios autentificados que están conectados en un momento dado en nuestra aplicación web. Esto lo podemos hacer también de una forma muy sencilla, gracias a la interface HttpSessionBindingListener, que causa que el objeto que implementa ésta interface sepa cuando se le está añadiendo y quitando de la sesión. Ésto se consigue a partir de los métodos valueBound y valueUnbound, el valueBound será llamado al establecer en sesión el objeto que implementa la interface(incementar) y el valueUnbound al quitarlo de la sesión(decrementar).

Por último, con el número de usuarios autentificados y el total disponible, tenemos también disponible la cantidad de usuarios anónimos.

Hijax, otro "sabor" de Ajax

Leyendo el blog de Olga Carreras me encuentro un post explicando qué significa otro acrónimo(o palabreja;)) más, Hijax, de la que soy consciente que existe desde que Daniel Torres nos explicaba lo que iba ocurriendo en Fundamentos Web. Parece que existe una manía a poner nombres a cada "invento", que como con Ajax no tenemos suficiente, encontramos los términos Ajaj(devolver JSON) y Ahah(devolver HTML), pues casi que me voy a adelantar y voy a acuñar Hihah y Hijaj:).

Pues resulta, que Hijax, es una "técnica" de uso de Ajax(y javascript en general) para realizar desarrollos accesibles, que se basa en no utilizar javascript hasta que no esté desarrollado el funcionamiento accesible, y una vez que introduzcamos el uso de javascript éste no sea intrusivo.

En mi opinión a raíz de lo vivido en carnes propias, es la mejor forma de enfocar un desarrollo que tenga como requisito ser accesible, ya que considero más sencillo desarrollar los efectos y añadidos a posteriori, que definir una forma accesible de uso de una aplicación sin haberlos tenido en cuenta desde el inicio, ya que puede suponer prácticamente un doble desarrollo. Y siendo egoístas, como desarrolladores, corremos el riesgo de que ese tiempo de trabajo extra no esté planificado, y luego pasa lo que pasa.

Crear un repositorio CVS en dreamhost

Después de mucho tiempo sin trastear el hosting que tengo contratado con dreamhost. He configurado, por fin, un repositorio CVS.

Ni si quiera tenía configurado ningún usuario para acceder a la consola SSH, para hacerlo, simplemente debemos entrar al panel de control, vía web, y crear o modificar un usuario para darle permisos de acceso de Shell, y en unos minutos tendremos habilitado el acceso SSH con ese usuario.

Para crear el repositorio, una vez conectado al servidor, simplemente debemos ejecutar el comando cvs -d /home/usuario/directoriocvs init, y ya podemos conectarnos desde nuestro cliente CVS favorito.

Historia de los lenguajes de programación

Esta semana, Violeta me ha pasado un link bastante interesante, por cierto, aunque no lo parezca es una de las personas menos frikis con las que trabajo, a saber cómo hizo para encontrarlo :).

La historia de los lenguajes de programación en un gráfico, se puede ver el origen de su nacimiento y su evolución durante el tiempo, viendo las relaciones que entre unos lenguajes y otros. Aunque realmente sólo son 50 lenguajes, desde la misma web enlazan otra con una lista de lenguajes de programación, por si echas de menos a alguno en la gráfica, son más de 2500.

Por cierto, también puedes descargarte en formato póster y a color la historia de los lenguajes de programación, en la web de O'Reilly.

Monitorizar Tomcat con JMX

He estado haciendo mis primeras pruebas con JMX(JMX en la wikipedia), que sirve para entre otras cosas para monitorizar aplicaciones java.

La herramienta para monitorizar que nos viene por defecto en la JDK es JConsole, a partir de Java 5, que se encuentra dentro del directorio bin de nuestro JAVA_HOME.

Para habilitar la instrumentación de JMX en Tomcat debemos buscar, dentro de catalina.bat, la variable JAVA_OPTS y añadirle los siguientes valores, separados por un espacio:

  • -Dcom.sun.management.jmxremote
  • -Dcom.sun.management.jmxremote.port="9004"
  • -Dcom.sun.management.jmxremote.authenticate="false"
  • -Dcom.sun.management.jmxremote.ssl="false"

Una vez modificado, arrancamos el Tomcat y el JConsole, que nos debe dar la opción a conectarnos, en la pestaña Local, al Tomcat para monitorizarlo. Una vez conectados ya podemos ver parámetros como el consumo de memoria, número de threads...