Aprovechando el tiempo
En 96 horas, Jack Bauer ha matado a 93 personas y salvado el mundo 4 veces. ¿Qué c*** has hecho tú con tu vida?
(uno de tantos hechos sobre la vida y obra de Jack Bauer)
19 Mayo 2008
En 96 horas, Jack Bauer ha matado a 93 personas y salvado el mundo 4 veces. ¿Qué c*** has hecho tú con tu vida?
(uno de tantos hechos sobre la vida y obra de Jack Bauer)
19 Mayo 2008
La foto está tomada en 1910 en Sant Louis (Estados Unidos).
Debía ser un figura…

p.s.: post fusilado enteramente de La Druida de la Historia y del Arte, cuyo feed rss fue a parar hace unos días a mi Netvibes personal.
8 Mayo 2008
Acabo de verlo en blogdecine y de allí directo para aquí. Este spot ya fue emitido en la pasada Superbowl, pero ahora llega en español.
Junto con la nueva entrega de Indiana Jones, tiene toda la pinta de ser la película del año. Así es cómo se anuncia una película sin enseñarla ¡Joer qué ganas que la estrenen ya!
24 Abril 2008
Hace tiempo publiqué una frikada del 15, consistente en un script que devolvía los diez comandos más usados. Navegando por Internet me he dado cuenta de dos cosas, a saber:
Así que, ni corto ni perezoso me he puesto a ver cuáles serían los míos y a compartirlos con el mundo:
C:\workspaces>history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10
"history" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
C:\workspaces>
Odio los memes. Lo que hace el aburrimiento.
18 Abril 2008
Uno de los grandes enigmas del siglo XX es el referente al primigenio significado de la expresión "Yippie ki-yay" [en español, pronunciado Yipi-kai-yi]. Todo el mundo sabe que esa es la acepción que se usa antes de patear culos de terroristas, pero ¿qué significaba esta frase antes de La Jungla de Cristal?
En la primera parte de la saga, creo que en el primer diálogo entre Bruce Willis y Alan Rickman, éste le pregunta que quién es y quién se cree que es. La conversación termina degenerando en que a Bruce Willis le gustan las películas antiguas de cowboys, esas en las que salía Roy Rogers, "con esa chupa tan chula con lentejuelas". En ese momento, Bruce Willis oye llegar a los terroristas de turno y en vez de despedirse cordialmente de Alan Rickman le suelta el famoso "Yippie ki-yay, motherfucker".
Parece que (y siempre que lo expuesto en Urban Dictionary sea cierto) "Yippie ki-yay" es una expresión de jolgorio y algarabía usada por los cowboys de mitad de siglo 19 para saludarse. Resulta que, John McLane, además de ser EPA, ¡es un tipo culto!
Y ya para terminar, ¡Bonus! A propósito de todo esto, un vídeo-resumen de la saga de la Jungla de Cristal:
14 Abril 2008
Cuando se usa Spring, normalmente no hay que preocuparse de lo que hay por detrás de la inyección de dependencias: se obtienen los beans indicados en los ficheros de configuración por "arte de magia". Sin embargo, hay situaciones en las que es necesario acceder a dichos beans y la inyección de dependencias no es automática o, dicho de otro modo, hay que acceder manualmente al contexto de Spring para tener acceso a los beans.
A continuación, el listado de todos los casos en que esta situación puede darse (si hay alguno más o hay algo incorrecto, por favor deja un comentario, que yo solo escribo un blog O:-)):
1.- Acceso genérico en una aplicación web.
Aunque en la mayoría de los casos la inyección de dependencias se realiza configurando referencias en los archivos de Spring (los típicos ficheros applicationContext*.xml), puede que en alguna ocasión especial se necesite acceder directamente al contexto para obtener un bean por programación. Esto se haría así:
2.- Acceso desde un servlet.
Para acceder al contexto de Spring desde un Servlet, hay que definir un bean en el applicationContext*.xml de turno tal que:
De este modo, los beans indicados en el map estarán disponibles en los servlets como si fueran un atributo más del ServletContext:
3.- Acceso desde un Custom Tag.
Se debe heredar de la clase org.springframework.web.servlet.tags.RequestContextAwareTag, que a su vez hereda de TagSupport. Los beans se declaran en la clase, como se hace en Spring normalmente, declarando los objetos de turno con sus getter y setter. El método "equivalente" a doStartTag() es doStartTagInternal(), dónde se debe implementar la lógica del Custom Tag. Se obtienen los beans de Spring sin necesidad de configuraciones adicionales:
4.- Acceso en los tests unitarios (JUnit).
Para acceder al contexto de Spring en los tests unitarios, la clase con los mismos debe heredar de -respira hondo que va la clase- org.springframework.test.AbstractTransactionalDataSourceSpringContextTests.
Esta clase funciona como cualquier otra clase de JUnit, en la que adicionalmente hay que implementar el método protected String[] getConfigLocations(), que debe devolver un String[] con las localizaciones de los ficheros dónde están definidos los beans de Spring que se quieren inyectar en los tests. Además, se debe indicar el modo de inyección (autowire) de los beans. Un ejemplo de dicho método sería:
El uso de comodines aplica exactamente igual que cuándo se definen en el fichero web.xml.
5.- Acceso genérico en una aplicación stand-alone.
Por último, para acceder al contexto de Spring desde una clase de una aplicación de escritorio:
En el array de String se pueden incluir comodines como de costumbre, solamente hay que tener en cuenta que los ficheros de configuración de los beans tienen que estar cargados en el classpath de la aplicación.
El Capitán Obvio advierte: hay que tener en cuenta que instanciar un ClassPathXmlApplicationContext es costoso, dado que carga todos los beans definidos en los ficheros xml, por lo que el procedimiento normal a seguir es instanciarlo cuando arranque la aplicación, por ejemplo en un Singleton, y luego obtener los beans a través de dicho objeto.
10 Abril 2008
Es posible generar diagramas de clase automáticamente a partir del código fuente usando Maven 2. Así, una vez se parte de los diagramas originales, no hace falta irlos actualizando a la par que el código para mantenerlos al día. Como pre-requisito es necesario tener instalado Graphviz, un programa open source con versiones para Windows, Linux y Mac, y tener en el path el subdirectorio bin de dicha aplicación.
Una vez hecho esto, se configura el plugin de generación del javadoc en la sección de reporting para que use un doclet que genere los diagramas UML en vez del que se usa por defecto:
<reporting>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<show>private</show>
<doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
<docletArtifact>
<groupId>gr.spinellis</groupId>
<artifactId>UmlGraph</artifactId>
<version>4.6</version>
</docletArtifact>
<additionalparam>
-inferrel
-collpackages java.util.*
-hide java.*
</additionalparam>
</configuration>
</plugin>
[...]
</reporting>
Al generar el site asociado al proyecto, si se verifican los javadocs generados uno se encuentra con algo similar a esto:

Si se tiene un proyecto que actúe como parent POM, lo mejor es definir la configuración anterior en él, de este modo la generación de diagramas de clase estará disponible para todos los proyectos hijo. ¡Listo!
(Leído en el wiki de VLab).
25 Septiembre 2007
Este anuncio, a priori, no tendría nada de especial y no lo habría puesto por aquí de no ser porque:
Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):