23.1.06

Servicios Web con Spring y XFire

Bueno, este es mi primer artículo técnico, así que supongo que tendrá montones de errores y fallas de estilo. Sugerencias y correcciones bienvenidas.

Creando el Servidor


Lo primero es crear un DispatcherServlet con su correspondiente WebApplicationContext conteniendo los servicios que van a ser expuestos, en el fichero Web Pages/WEB-INF/web.xml de nuestro proyecto.
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>

Ahora añadiremos un servlet-mapping (mapeando /* hacia el servlet XFire declarado arriba)


<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/xfire/*</url-pattern>
</servlet-mapping>

Sólo nos quedará añadir un bean extra para exponer el servicio usando Xfire. Este bean será añadido en el fichero Web Pages/WEB-INF/xfire-servlet.xml:

<bean name="/Tempo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
<property name="serviceBean" ref="data"/>
<property name="serviceInterface" value="es.usc.time.ITempo"/>
<property name="xfire" ref="xfire"/>
<property name="serviceFactory" ref="xfire.serviceFactory"/>
</bean>
Vemos la siguiente propiedad: <property name="serviceBean" ref="data"/>. Esta propiedad hace referencia a un bean declarado en Pages/WEB-INF/applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans public "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="...";
...
<bean id="data" class="es.usc.time.Tempo"/>
</beans>
En la clase es.usc.time.Tempo se procesará toda la información que debe tratar el WS.

XFire se ocupará del resto. Hará una introspección de la interfaz del servicio y generará el WSDL a partir de él. Para información más detallada acerca de la integración entre XFire y Spring echa un vistazo a docs.codehaus.org/display/XFIRE/Spring.

Este es el código fuente de nuestro servicio. Primero, la interfaz:

package
es.usc.time;
/** @author contremo */

public interface ITempo {
public String agora();
}
Esta interfaz es la que deberá ser referida en el archivo xfire-servlet.xml, en la propiedad "serviceInterface". Observa que se ha incluido el nombre completo, incluyendo la ruta dentro del paquete.

El siguiente archivo muestra nuestra clase principal, donde se va a procesar toda la información. Básicamente lo que hace es averiguar cual es la fecha y hora actuales y devolverlo en un String.


package es.usc.time;
import java.util.Date;
/**@author contremo */

public class Tempo implements ITempo{

/*constructor*/
public Tempo(){}

public String agora(){
return (new Date()).toString();
}

}
Si en lugar de un String quisiéramos enviar un tipo complejo, tendríamos que definirlo como un Bean. Recuerda que debe implementar la interfaz "Serializable", y recuerda también registrarlo en el cliente, o te verás en problemas.

Próximamente veremos como crear el cliente.

20.1.06

Publicitando webs

Estoy finalizando el desarrollo de la web de una bodega propiedad de un amigo, llamada Adegas Gándara y que podéis ver alojada en http://www.adegasgandara.metropoliglobal.com.


Se trata de una bodega familiar que lleva cerca de veinticinco años elaborando vino albariño de primera calidad (doy fe de ello), y disponen de tres marcas:
  • Conde do Miño, que es su marca de gama alta, con una presentación primorosa y un trabajo estupendo detrás, criado en lías y recibiendo un proceso de bâtonnage manual cada 48 horas.
  • Adegas Gándara, que es un monovarietal de albariño sin tantas pretensiones como el anterior, pero que en la cata de la edición de 2.005 de la Festa do Viño do Condado se ha impuesto a bodegas de mayor talla, siendo nombrado "Delicioso del Año".
  • Y por último su vino sin Denominación de Origen, Sobreseixal, que no desmerece en absoluto de los anteriores y cuyo precio es realmente ajustado, en parte por carecer de las contraetiquetas, en parte porque sólo se puede adquirir pidiéndolo directamente a la bodega.
La verdad es que el nivel de visitas que recibe es realmente bajo, lo cual es un poco de esperar dado que ni es una bodega muy conocida, ni tampoco hay muchos sitios de internet donde se hable de ella (y dónde se dé la dirección, aún menos)

He intentado que el pagerank sea aceptable basándome en el contenido del sitio, con los meta y demás historias, pero mucho me temo que sin visitas siempre estará por los suelos, lo cual lleva a que poca gente conozca la página y bla bla. Ya sabéis como va lo de los círculos viciosos.

Una de las ideas que tenía para publicitar tanto el vino como la web era hacer como aquella empresa sudafricana que regaló botellas de vino a varios bloggers, pero dado que no soy responsable de la bodega y tales iniciativas se quedan fuera de mis atribuciones, eso no es posible de momento (aunque lo hablaré con mi amigo al respecto la próxima vez que le vea).

Así que, aquí está mi pregunta... ¿cómo podría publicitarla? Ya he escrito a algunas páginas de vino (aquellas que tienen listados de bodegas de la zona de las Rías Baixas, el Condado del Tea, vino blanco o vino albariño), y en algunas sí me han incluído, como esta y esta. En otras como la propia página del Consello Regulador de la Denominación de Origen se han hecho muchísimo los suecos (tal vez se les haya perdido el correo)

La verdad, creo que la página está quedando bien, aunque tengo que corregirle algunos errores para que esté más cerca de pasar las validaciones W3C. Por la gente a la que he consultado,parece que la interfaz es clara, sencilla e intuitiva, y les han gustado mucho las fotos que he incluído en las secciones (más fotos mías aquí). Me ha dado su trabajo, pero estoy muy contento con el resultado.




Espero que la visitéis y me contéis lo que os parece y cómo la publicitaríais (y recordad... no está terminada). Ideas radicales (y baratitas, que no es precisamente un gran grupo industrial) bienvenidas.

Web 2.0

Ayer asistí a una conferencia sobre la llamada Web 2.0. Los conferenciantes eran un blogger llamado Pedro Jorge, el director regional de IBM para Galicia, un encargado de (a ver si lo recuerdo bien) enseñanza de Consultoría de Sun Microsystems y un antiguo compañero suyo que ahora trabaja para Microsoft y vino acompañado de un técnico del programa TechNet del gigante de Redmond.

En general me gustaron bastante todas las intervenciones, si bien quiero destacar a Pedro Jorge por lo ameno y lo interesante de su charla y a los chicos de MS, que supieron adaptar bastante bien su presentación una vez constatado el hecho de que los ponentes anteriores habían tocado muchos de los puntos que iban a tratarse, de forma que no se dedicaron a hacer "más de lo mismo" o una presentación relámpago como la de Sun.

Otra cosa a destacar es el hecho de que la mayoría (no me atrevo a decir si los de MS también) utilizó la definición de la Wikipedia. Esto produjo una situación un tanto curiosa, al ver como alguno de los ponentes tenía que pasar de puntillas por buena parte de su presentación, ya que era coincidente con las anteriores hasta en los chistes. La verdad es que no dejó muy buena impresión este detalle, que, al menos a mi juicio, implica que no se prepararon la intervención todo lo que se debiera en algunas partes.

El turno de preguntas dejó alguna situación curiosa, como cuando un chico reprochó en gallego (aunque luego cambió a castellano) y con una camiseta de Mozilla Foundation a los de Microsoft (que no eran gallegos) que, a su juicio, trataban a los usuarios como tontos. La pregunta en sí me lleva a pensar que este chico no debe relacionarse mucho con gente que no tiene un cierto nivel de informática. He trabajado en una sala de ordenadores de una facultad de Magisterio y por Dios que esa es una pregunta tonta. Cuando más fácil para ellos, mejor que mejor (y aún así les costará)

Por lo demás, respuestas para todos los gustos: algunas muy bien fundadas y otras no tanto, como la perorata que se marcó el de IBM con la primera pregunta que le hicieron

18.1.06

Battlestar Galactica 2x12

Sé positivamente que cualquier purista me va a odiar por lo que voy a escribir a continuación. Sé que cualquier persona que odie la ciencia-ficción va a considerarme un friki por lo mismo. Pero también sé que el capítulo 2x12 de Battlestar Galáctica es el mejor episodio que he visto jamás de cualquier serie de televisión que haya seguido al menos un minuto. Ahí queda eso.

Ese capítulo en cuestión (Resurrection Ship, part II) se te agarra a las tripas y te retuerce las entrañas como pocas cosas que haya visto (si acaso alguna escena aislada de Band of Brothers o el comienzo de Saving Private Ryan).

Este episodio hay que verlo en combinación con 2x10 y 2x11 para poder ser apreciado en todo su esplendor... y después...

He visto como los protagonistas tienen que plantearse muy seriamente pasar por encima de sus principios personales con tal de garantizar su supervivencia y el drama que esto les provoca. Les he visto sufrir por ello más que con cualquier dolor físico que puedan experimentar. He visto su miedo, su duda, su lucha interna, y su íntimo convencimiento de que por una vez, su deber no tiene nada que ver con sus principios.

He visto la mayor batalla espacial de la historia de la televisión, sólo comparable a las que George Lucas nos regaló en varios de los episodios de Star Wars... y mucho más dramática... y a pesar de todo y de todo lo que ocurre, no es más que una tensa espera para lo que sabemos que pasará después.

He visto como uno de los personajes afronta una muerte cierta, y cómo se deja llevar por la desesperación. He visto cómo perdía las ganas de vivir... y he visto a un cylon con ganas de morir definitivamente.

Si no seguís la serie, sólo decir que merece la pena aunque sólo sea por este capítulo.

11.1.06

Enfrentándose a los televendedores

De un tiempo a esta parte estamos sufriendo una campaña de acoso y derribo por parte de toda clase de televendedores, que habitualmente preguntan por "la señora de la casa". Debo confesar que encuentro esta costumbre bastante irritante, y he usado toda clase de truquitos.

Lo que pasa es que no siempre funcionan o los muy jodidos son muy listos y aprenden. Veamos, a un amigo le llamaron de "Marina D'Or (ciudad de vacaciones" (que tíos tan pesados). Cuando le dijeron para lo que era la llamada les espetó "lo siento, tiene que haber un error: esto es un piso de estudiantes". Ante esa salida, el comercial optó por batirse en retirada.

Más adelante fui yo quién recibió la llamada, y ante la misma salida, la jodida de la comercial tenía preparado un "podrías alquilar un apartamento con unos amigos en verano, durante las vacaciones". Tuve que ponerme más brusco y responderle con un "no colaboraré con la destrucción del litoral mediterráneo", y después, colgar.

Pero, todo esto sucedía porque no conocía esta página. Así da gusto. Espero con impaciencia al próximo comercial.

La Crisis del Real Madrid

Por enésima vez, el Madrid está en crisis. Yo creo que es más bien una crisis de ideas gorda. De no saber lo que se quiere o no tener puto criterio a la hora de hacer las cosas, y si no, leed:

http://www.20minutos.es/noticia/79508/0/ana/obregon/beckham/


¿Cómo van a ganar la liga haciendo cosas como esa?

10.1.06

Los Lunnis, Pasión de Gavilanes y el Doctor Who

Esta mañana, yendo al trabajo, me encontré conque uno de los bares que quedan en mi ruta (de fumadores, por cierto) ofrecía a sus clientes anunciado en un cartelito en su escaparate "El desayuno de los Lunnis", aprovechando la cercanía de un colegio. Al menos es un bar de no fumadores.

La verdad, ¡qué cosa tan pesada! Los Lunnis por todas partes. Con Barrio Sésamo no eran tan pesados, y aquel sí que era un gran programa, educativo e interesante para los niños. Los Lunnis, por contra, me parecen escalofriantes y grimosos... y la cantidad de merchandising que soportamos de ellos roza lo absurdo. Las pocas veces que he tenido que soportar un par de minutos del programa he visto contenidos mal planteados, guiones estupidizantes y una formación pedagógica nula... de cuando se politizaron, con aquella famosa boda homosexual en plena polémica nacional sobre el tema, ni hablamos.

Ahora la pregunta que un lector se haría es... ¿y qué tiene que ver todo esto con Pasión de Gavilanes y el Doctor Who?

Con el bodr... la telenovela desde luego, su saturación. Estoy HASTA LOS HUEVOS de ver a Michel Brown (¿por qué coño me sé su nombre si no la veía?) y a sus compañeros de reparto por todas partes: galas de nochevieja, la publi de El Corte Inglés y hasta un encuentro (chat) en ElMundo.es. Hasta las pelotas de escuchar "¿Quién es ese Hombre?" hasta en los anuncios de "El Señor de los Anillos" (¿cómo se conseguirá el curro de publicista en Antena 3?)

Nunca una telenovela dio tanto de sí, exceptuando Cristal y Los Ricos También Lloran. Qué coñazo por Dios, es que están hasta en la sopa... Ni Parque Jurásico en sus mejores tiempos.

Doctor Who, sin embargo es una serie que veía de niño, y es perfecta para esas edades. Un sentido del humor níveo, unos guiones muy imaginativos y bien desarrollados, y un fuera de serie como Christopher Ecclestone de protagonista (visto en 60 Segundos, Los Otros y Episodio III, muy fugazmente). Ayer ví un episodio de la última versión de esta serie (se supone que el Doctor tiene 13 encarnaciones... así cambian de actor), y aunque cambia notablemente desde el interpretado por Tom Baker con su inconfundible abrigo, bufanda y sombrero, no pude dejar de sentir como se me ponía la piel de gallina al escuchar la sintonía del programa, tras más de quince años sin oirla.

El resumen es el siguiente: El Doctor es un extraterrestre que viaja en el Tardis, un aparato con el aspecto de una cabina de la policía británica, pero en cuyo interior se encuentra un espacio enorme que alberga la maquinaria para moverse en el tiempo y en el espacio. Cada cierto tiempo el doctor muere y varios años después resucita, con un cuerpo diferente y un carácter diferente. En cada episodio se enfrenta a enigmas diferentes... extraterrestres malvados, robots asesinos, plagas bíblicas... es una serie que siempre me ha sorprendido por la imaginación que derrochan los guionistas.

Muy recomendable, aunque dificil de conseguir hasta en internet.

5.1.06

Inventos inútiles

No es intención mía meterme con algunos blogs especializados en este tema... pero esto tenéis que verlo:

http://curiosoperoinutil.blogspot.com/2005/12/la-tortuga-trilera-en-qu-estaban.html

De los disparates lingüísticos

Si, ya sé que debiera dar mi opinión sobre las galas de nochevieja... es lo que se estila.

Sin embargo, no voy a hacerlo, porque, para empezar, me parecía todo tan deprimente que opté por tirar de videoteca... y me las perdí (y no lo lamento nada)

Además de estas galas, en los últimos años está de moda el ser políticamente correcto (ser chorra, pero que muy chorra), o lo que es lo mismo, llamar a las cosas por su nombre está mal visto. Hace unos años recuerdo haber entrevisto una tertulia contra el racismo donde un representante de una sesuda ONG le decía a un atónito Juan Manuel de Prada que usar expresiones como "en esta hora oscura" o "tener un futuro negro" eran expresiones racistas. El escritor preguntó con mucha sorna si "cuentos chinos" tambén era racista. Creo recordar que le dijeron que si...

Otra de las grandes chorradas de nuestro tiempo es esto de la paridad en las listas electorales y la discriminación positiva. No entiendo por qué se intenta introducir esta igualdad tan artificial. No tiene sentido. No tiene fundamento. Y lo peor, es demagogia de la más barata. Si realmente quisieran hacer algo al respecto, equipararían los salarios de hombres y mujeres y otras políticas por el estilo... pero claro, eso no queda tan bonito en la foto. Por eso tenemos que sufrir a Carmen Calvo y a la Trujillo.

Porque lo cierto es que vivimos de la imagen, de la apariencia. Y del chismoseo... porque vaya que no somos chismosos en este país... si no, ¿de qué viviría el Conde Lecquio? ¿Y los concursantes de los sucesivos "Gran Hermano"?

Volviendo al tema de los géneros, no hay nada que me reviente tanto como el uso de la arroba para hacer plurales más igualitarios (o algo así). Queda bien, suena moderno, y denota una total falta de neuronas o de sentido crítico. Naturalmente, Izquierda Unida tenía que picar. Anda que no habrán hecho carteles con algún "tod@s" por alguna parte del eslógan. Así les va.

En el PSOE, que también van de modernos, y de progresistas (por Dios, quiero una definición válida de esta palabra, porque unida a PSOE en la misma frase me suena a pura contradicción), han evolucionado la fórmula: en unas elecciones se presentaron como "Un gobierno para todos y todas", o algo parecido. Son tan geniales que pasaron del neutro a crear una separación
de facto
entre hombres y mujeres, y no contentos con eso, además pusieron al hombre precediendo a la mujer. Menos mal que no son machistas.
El PP, como siempre fue más sobrio en estos temas no incluía a la ciudadanía en los eslóganes (ni en ningún otro sitio, en realidad)

A cuenta de la arroba, estos dos enlaces cuentan un poco por dónde debieran ir los tiros:

http://www.ricardodiaz.org/archives/2006/01/post_1.html
http://www.sindominio.net/biblioweb/escepticos/generoyarrobas.html

Luego, con todo esto de los géneros y lo políticamente correcto han creado nuevas palabras, que nunca existieron, y que de hecho no hay razón para que existan. Me refiero a palabras que forman el femenino de términos que siempre han sido neutros:

Juez -> jueza

A mi que alguien me lo explique. No tengo ni idea de por dónde empezar.

Abogado -> Abogada

Esta es de examen. "Abogada" es una barbaridad bastante importante. Resulta que "Abogado" es una evolución del término del latín "
ad vocatio", que viene a significar "la persona a la que se llama", sin especificar género de dicha persona. Así que "abogado" fue neutro (y no masculino) toda la vida.

Y como estas unas cuantas más. A ver el día en que me sorprenden y alguien se inventa la palabra "persono", para referirse a las personas de género masculino. Ya puestos, podían.

Y es que cuando la moda aprieta, a la gente le meten unos goles que ni Eto'o, como cuando estaba de moda la Solidaridad e iban los listos de Pepsi con sus campañas navideñas, a saber, que de cada lata que se vendiera en navidades ellos donarían un 1% a Médicos Sin Fronteras. Estoy seguro de que la enorme campaña publicitaria costó bastante más de lo que recaudó MSF.

Pensémoslo... ¿cuántas latas de refresco se consumen en Navidad? ¿El 1% era sobre el precio en supermercado o de lo que Pepsi recaudaba de venderlo a los distribuidores? (Recuérdese el precio de una lata en un super... por la época debían ser menos de 50 ptas).

Pero la gente se identificó con el tema (conozco un par de casos bastante vehementes) y compraban Pepsi para sus comidas navideñas... botellas de dos litros, claro. Así que Pepsi ganó una pasta, quedó como Dios, y MSF no debió recaudar gran cosa porque al año siguiente no se les vió por la nueva campaña navideña de la citada marca de refrescos. Si en lugar de ser tan solidarios con Pepsi hubieran ingresado cinco duros cada uno en la cuenta de MSF a todos les hubiera ido mejor, empezando por las personas a las que ayuda la ONG.

Ah, y ya que hablamos de lenguaje, una perla de uno de mis blogs preferidos:

http://www.nopuedocreer.com/quelohayaninventado/?p=217

Que paséis un buen día de Reyes

Technorati tags: , , ,