Archive for septiembre, 2008
Utilización de JQuery Cycle Plugin
Tengo pensado para más adelante escribir una entrada más detallada sobre JQuery, una librería JavaScript que nos facilita enormemente la integración de dicho lenguaje en nuestra página. Sin embargo me adelanto con esta pequeña entrada que describe la utilización de uno de sus plugins.
Una de las características destacables de JQuery es la existencia de multitud de plugins, para incorporar una gran variedad de efectos y funcionalidades a nuestro código HTML.
En esta entrada presento el plugin Cycle, que como podéis ver en su página logra unos efectos espectaculares para rotar un contenido (imágenes es lo más habitual, aunque se pueden rotar otros contenidos).
Estaba yo intentando adaptar uno de dichos efectos a un pequeño proyecto. Añadía los enlaces a los ficheros JavaScript en la cabecera:
<script type="text/javascript" src="./js/jquery-1.2.6.min.js"></script> <script type="text/javascript" src="./js/jquery.cycle.all.min.js"></script>
Definía el contenido a rotar dentro de un div
con id
determinada. En este caso el contenido eran varios divs con imágenes y texto cada uno:
<div id="rotar"> <div> <image height="135px" width="180px" src="image1.gif"/> <b>Test1</b> Texto de primera nota.</div> <div> <image height="135px" width="180px" src="image2.gif"/> <b>Test2</b> Texto segundo</div> </div>
Y finalmente llamaba a la función cycle()
dentro del $(document).ready(function() {
como es habitual en JQuery:
$(document).ready(function() { $('#rotar').cycle({ fx: 'scrollUp', timeout: 6000, delay: -2000 }); });
Pero no conseguía que funcionara. Me centraba en la llamada a la función cycle()
, pero finalmente descubrí el problema…
Parece que determinados efectos de cycle()
entre ellos scrollUp
que es el que yo pretendía usar necesitan que esté definida la altura en el contenido a ciclar. Por lo tanto modifiqué el CSS de mi proyecto para añadir dicha altura y todo perfecto:
#rotar { height: 230px; }
Hasta aquí la presentación de este gran plugin, con la solución a este pequeño problemilla incluida.
¡Hasta la próxima!
Logs en Java
Los que conocemos Java desde antes de la versión 1.4 sabemos que no siempre ha existido un API de logs dentro de la JDK. En aquellos no tan lejanos tiempos utilizábamos otras librerías para sacar nuestras trazas. La más utilizada sin duda: log4j de la Apache Software Foundation.
Por eso, cuando en la Java 1.4 sacaron el API de logs integrado (a veces llamado JUL por Java Util Logging), además muy inspirado en log4j pero sin llegar a su nivel, muchos seguimos fieles a log4j.
Poco después apareció commons-logging, también desarrollado dentro de la Apache Software Foundation, que venía a ser una capa de abstracción que permitía utilizar tanto el JDK Logging como log4j por debajo. Personalmente a mí me pareció una capa más en un punto que no veía tan crítico dentro de un proyecto y no lo llegué a utilizar mucho, aunque si goza de una buena implantación.
Y finalmente llego a lo que es el germen de esta entrada, que es logback, un proyecto también libre que intenta ser una actualización de log4j. De hecho la cara más visible de logback es también un importante miembro de log4j: Ceki Gülcü. Respecto a log4j, logback promete un aumento de rendimiento a la vez que una disminución en el consumo de recursos. Como ejemplo algunas frases tomadas de presentaciones de logback:
- Determinar si se debe sacar la traza para una sentencia: 3 ns en logback frente a 30 ns en log4j.
- Crear un Logger: 13 ns de logback por 23 ns de log4j.
- Localizar un Logger: 94 ns en logback frente a los 2234 ns de log4j.
- Tamaño de un Logger: 40 bytes en logback y 140 bytes en log4j.
Sin duda las mejoras parecen existir, algo que puede ser lógico, ya que logback ha sido diseñado desde cero teniendo en cuenta la experiencia de muchos años trabajando en log4j.
Logback implementa SLF4J (Simple Logging Facade for Java), una nueva abstracción que permite intercambiar posteriormente el sistema de logging utilizado. Proporciona un API que productos como logback implementa y también proporciona unos puentes para pasar de forma sencilla de los sistemas más antiguos a SLF4J. Por ejemplo proporcionan un puente para log4j, de forma que si en una aplicación existente sustituimos el jar de log4j por el del puente, sin tocar nuestro código estaremos «logeando» a través de SLF4J y la implementación que utilicemos (¿logback?).
Entre los proyectos que utilizan SLF4J aparecen varios de renombre como: Jetty, Geronimo, Tapestry, Hibernate o Dbunit.
Yo creo que en mi próximo proyecto utilizaré SLF4J y logback. ¿Y vosotros?, ¿os he animado?.
Blogday 2008
Bueno con un poco de retraso, porque el Blogday fue ayer 31 de agosto, os dejo 5 enlaces a 5 blogs, con temáticas dispares para dar un poco de variedad al asunto:
- Pensamientos ágiles: un blog en el que se aprende mucho. De la mano de Martín, al que sigo desde su época en Javahispano.
- Kriptópolis: todo un clásico sobre seguridad.
- Webmaster Libre: como su título indica, temas muy útiles para webmasters.
- La Cárcel de Papel: imprescindible blog sobre comic.
- Juan de la Cuerva: blog con pocas pero magníficas entradas dedicadas al mundo de la aviación.
Y eso es todo. Espero que os gusten.
Comentarios recientes