El experimento del remarketing

Después de que en el anterior post me quejase amargamente de la persecución de un baner malencarado, por fin su autor (que ya se ha disculpado) ha publicado las conclusiones y motivaciones de su estudio.

Dejo aquí el enlace a su post: Este Banner me persigue, y le agradezco que se haya molestado en disculparse. Ciertamente me ha hecho ver que las cosas que se pueden hacer con las herramientas de marketing de google también pueden usarse para el mal ;-)

Eduard, estás perdonado, pero, por favor, la próxima vez que nos persigas con una campaña de este tipo, por favor, pon una imagen más agradable como esta:

(Foto sacada de aqui).

Lo que no se es, ¿cuanto te costó esta campaña de “mentalización”?

Páginas estáticas multilingues y con plantilla tiles en struts2

Si, es un título un poco largo, pero he tardado un poco en encontrar una solución a este problema y quiero compartirlo para todos aquellos que os encontréis en la misma tesitura.

Primero, un pequeño resumen de la situación:

  • Aplicación java con struts2+tiles+urlrewrite
  • internacionalización mediante i18n con archivos de properties
  • Necesidad de un número no trivial de páginas “estáticas” con textos largos poco susceptibles de entrar como property.

Los problemas:

  1. No queremos tener una entrada en el tiles.xml por cada página estática pero queremos utilizar las plantillas existentes.
  2. No queremos generar una acción nueva por cada página
  3. No queremos tener que hacer una nueva entrada urlrewrite por cada página
  4. Queremos poder generar páginas de error si no encontramos una página en un idioma determinado.
  5. Queremos poder generar el texto completo en cada idioma como una página html, no como properties.

Si todavía no os habéis hecho una idea, no os preocupeis, es algo normal. Esta situación no se da todos los días.

La solución

O mejor dicho, mi solución…

Voy a crear una única acción que se encargue de determinar el jsp a cargar dentro de la plantilla tiles y voy a modificar una plantilla existente para inyectarle esa nueva página. Además, como el título de la página estará en la plantilla, voy a encargarme de generar el texto en el idioma adecuado. Además, voy a crear un prefijo para el urlrewrite que permita que todo esto quede bonito para google…

Paso a paso:

Modificación del urlrewite.xml:

<rule>
    	<from>^/web/(.*)$</from>
    	<to>/Estaticas.action?pagina=$1.jsp</to>
    </rule>

Con esta regla le decimos que siempre que tengamos una url con la forma /web/mipagina llamaremos a la acción Estaticas y le pasaremos como parámetro mipagina.jsp

Modificacion en struts.xml:

<action name="Estaticas" 
           class="com.yoprogramo.web.action.EstaticasAction">
  <result>/estatica.jsp</result>
</action>

Con esa acción lo que hacemos es llamar a EstaticasAction.java (luego lo vemos) y redirigir a estatica.jsp que tiene este contenido (quitando las cabeceras):

<tiles:definition name="estatica.modif" extends="estatica">
  <tiles:putAttribute name="body" value="${pagina}" />
</tiles:definition>
<tiles:insertDefinition name="estatica.modif" />

Lo que estamos indicando es que se modifique la plantilla con nombre estatica, definida en el tiles.xml y que ponga como atributo body el valor que la acción nos ha devuelto en pagina, de esta manera estaremos utilizando la plantilla definida en el tiles.xml, pero pasándose un jsp distinto. Esta forma de utilizar tiles es lo que se denomina “mutable”, para poder utilizarla hay que incluir en el archivo web.xml:

  <context-param>
        <param-name>org.apache.tiles.factory.TilesContainerFactory.MUTABLE</param-name>
        <param-value>true</param-value>
  </context-param>

Ahora que tenemos todo en su sitio, solo tenemos que crear una estructura donde guardar las páginas de cada idioma y poder localizarlas facilmente. Por ejemplo, yo he creado una con esta estructrura:

Arbol de páginas estáticas

Bajo “es” pondré las páginas en español, en “en” las páginas en inglés y en “multi” las páginas multilingues que utilizan el packages.properties para traducir sus claves.

Lo único que nos queda ahora es programar la acción EstaticasAction.java .. Os dejo el código del execute:

		// Eliminamos ruta de lenguaje
		int idx=pagina.lastIndexOf("/");
		String page_name = pagina;
		
		if (idx>0)
			page_name = pagina.substring(idx+1);
		
		idx = page_name.lastIndexOf(".");
		if (idx>0)
			page_name=page_name.substring(0,idx);
		
		//Parte multilingue.
		//Vamos a crear una página para cada idioma, excepto para las
		//que sean muy simples y esas estarán en el directorio /multi
		if (!pagina.contains("/multi")) {
			String lang = getText("locale.language");
			if (lang==null)
				lang="en";
			pagina = "/"+lang+"/"+pagina;
		}
		
		// Ahora comprobamos si existe la página y si no existe redirigimos
		// a una página de error del tipo multi
		String servletContext = 
                     ServletActionContext.getServletContext()
                                                 .getRealPath("/estaticas");
		String filePagina = servletContext+pagina;
		File f = new File (filePagina);
		if (f.exists())
			pagina="/estaticas"+pagina;
		else
			pagina="/estaticas/multi/noexiste.jsp";
		
		// Ahora ponemos el título, que deberá estar como un texto 
		// en package con la forma web.<nombre_pagina>.titulo
		String key = "web."+page_name+".titulo";
		titulo = getText(key);
		
		return SUCCESS;

Una vez todo puesto en su sitio la mecánica para crear páginas estáticas y usarlas en nuestra aplicación es bastante simple:

  1. Crear un jsp con el texto para cada idioma y colocarlos bajo el directorio correcto (p.je. es/mipagina.jsp y en/mipagina.jsp)
  2. Crear una entrada en el package_en.properties y package_es.properties con la clave web.mipagina.titulo indicando el título de la página en cada idioma. (Recordemos que el titulo está en el head de la página y eso suele estar en la plantilla, no en el jsp que estamos modificando).
  3. Ya podemos acceder a /web/mipagina y ver cómo queda dentro de nuestra plantilla.

Igual inicialmente parece mucho trabajo, pero una vez hecho esto podréis hacer tantas páginas estáticas como queráis sin ningún esfuerzo y ligadas a las plantillas del resto de vuestra aplicación.

Hablando con las paredes (del banco digital)

UNO-E te roba

Cuando en el año 2000 aparecío el banco uno-e, el primer banco en España completamente digital, yo me apunté y cree una cuenta en parte como experimento, en parte como apoyo a este tipo de operativa por internet que tanto me gustaba.

Este banco siempre se ha caracterizado por cosas que ahora son normales, como no cobrar comisiones por operativa ni por tarjetas de crédito. A cambio, solo se podía operar por internet o por teléfono. Sufrí la primera implementación del banco, donde todo iba muy, pero que muy lento, el sistema de seguridad dejaba mucho que desear con claves de 4 y 5 caracteres y no ha sido hasta finales de 2010 cuando han lanzado la versión movil (con operativa limitada).

Cuento todo esto para que sepáis que estoy comprometido con la entidad ya que es en ella en la que voy ahorrando mes a mes lo poco que puedo e ingresándolo en una cuenta remunerada ligada a una cuenta corriente. Según lo que operes con la cuenta corriente te dan más o menos interés cada mes en la cuenta remunerada. Entre las cosas que valoran está el hecho de (según el contrato) tener un abono de nómina mensual mayor que 600 Euros (en su publicidad dicen “domiciliando la nómina”). Y yo la tengo domiciliada.

El caso es que me llegó el extracto sobre los intereses que iba a recibir por el mes de octubre y no me incluyen el 1% correspondiente a la nómina. Después de comprobar que efectivamente en septiembre había tenído nómina, pongo una reclamación por internet (método incómodo y con un formulario feo-feo), esperando que reparen su error. Dos días después (haciendo gala de una velocidad impresionante) y a las 9 de la noche, me llaman al movil…

La señorita, tras explicarle de nuevo el problema, me indica que el ingreso de mi nómina ese mes aparece como transferencia y no como abono de nómina (el código interno) y por eso no tengo derecho al 1% de intereses en la otra cuenta. Yo, obviamente, intento hacerle ver que si el importe es el mismo, la fecha es la misma e incluso la cuenta de origen es la misma, es evidente que se trata de mi nómina, independientemente del código interno. Después de tenerme al teléfono durante media hora, consultando con su ¿supervisor? me indican que no, que es un proceso automático y que no tengo derecho. Le indico que puedo pasarles el justificante del banco de origen o incluso pedir un certificado a dicho banco indicando que se trata de una nómina (o incluso de la empresa, que por algo soy empresario)… Pero ella erre-que-erre que no querían considerar como nómina el ingreso.

Una vez quedado claro que no voy a conseguir arreglar el tema, decido poner una reclamación y es ahí donde viene lo mejor:

Yo:

Señorita, ¿podía indicarme el procedimiento para hacer una reclamación?

Ella:

Ya le tomamos nota nosotros de lo que dice, no le corresponde una reclamación.

Yo:

¿Cómo que no? Yo tengo derecho a hacer una reclamación

Ella:

No, como no se ha ingresado como nómina no le corresponde y no puede reclamar

Yo:

Señorita, yo puedo poner una reclamación tenga razón o no, estoy en mi derecho como cliente.

Ella:

Ya dejamos constancia aqui de su caso

Yo:

Señorita, tengo todo el derecho del mundo a hacer una reclamación formal y recibir una respuesta a la misma. Solo le estoy preguntando por el procedimiento

En este punto todo me parecía tan subrealista que no me lo podía creer, ¿realmente no hay forma de poder poner una reclamación? He tenido menos problemas reclamando a telefónica, y eso ya es mucho decir.

Finalmente me pasan con otra señora de atención al cliente (recordemos, las 9:30 de la noche ya) que me insiste que no es un problema suyo, que ellos no lo consideran nómina y que no tengo derecho a la renumeración ¡ni siquiera derecho a quejarme!. Finalmente me dan un numerito para que me quede constancia de que he planteado un problema.

En resumen, una entidad de la que soy cliente desde hace más de 10 años me dice que no puedo quejarme de sus servicios… Bueno, pues me quejaré y no solo eso, sino que me cambiaré de banco: bye-bye uno-e, bienvenido ing…

Para el que esté interesado, este es el enlace para el Servicio de reclamaciones del banco de España y aquí el enlace al procedimiento telemático para presentar las quejas. Aunque eso, si, el plazo de resolución es de 4 meses (solo si estáis dispuestos a esperar).

Y mientras yo perdía el tiempo hablando con las pareces del banco me perdía cómo mi hijo terminaba el Uncharted 3 que estábamos jugando a medias… grrrr…

Steve Jobs nos ha dejado

Steve Jobs

Aunque era una noticia que se esperaba desde hace tiempo, cuando alguien se entera de que uno de sus ídolos ha muerto, le invade una sensación de perdida irreparable. Este es el caso de Steve Jobs, una personalidad que ha cambiado el mundo.

Al margen de todo lo que objetivamente ha hecho Jobs en sus 56 años para la tecnología, el entretenimiento y el mundo de los negocios, lo que a mi, personalmente, me impresiona de esta persona se puede resumir en estos puntos:

  • Pudo ser un bala perdida pero una maestra le recondujo de pequeño y le ayudó a buscar su camino. Un ejemplo para todos los que creen que no tienen arrglo
  • Creó de la nada una empresa, basándose en el conocimiento de su amigo Woz y en su determinación
  • Tuvo una visión del futuro y luchó para conseguir que esa visión fuese real, nada ni nadie pudo pararle
  • Cometió errores, fue despedido de la empresa que fundó por alguien que contrató el mismo, pero supo reaccionar, siguió su instinto y nunca dudó sobre su visión
  • Sufrió en lo personal, pero nunca uso su enfermedad como excusa ni como disculpa, al contrario, consiguió que la cercanía de la muerte reafirmara sus motivaciones
  • Nunca buscó solo el dinero, aunque lo consiguió a toneladas, siguió moviéndose cuando algunos se habrían retirado
  • Su visión nos ha traído más cerca a la tecnología y la ha hecho más agradable y fácil de usar

En palabras de gente que le conoció, no fue una persona fácil de tratar, a veces fue un déspota y a veces un auténtico dictador, aunque también sabía ser agradecido y detallista. Una personalidad, en suma, centrada en conseguir hacer realidad sus ideas y que nos ha aportado muchos ratos buenos con sus productos.

Descanse en paz.

Os dejo un video con el discurso que dio Jobs en Stanford, muy motivador:

La visita del papa a las dos Españas

Esto no versa sobre tecnología, es pura opinión, pero es lo que he podido sacar en claro de mis discusiones en redes sociales estos días, por lo que no puedo evitar contarlo. Es, ya lo advierto, mi visión particular del asunto, si alguien tiene otra, la respeto, siempre que venga con argumentos.

El JMJ

Según su web oficial, La jornada Mundial de la Juventud “Es el gran encuentro global de jóvenes con el Papa que se celebra cada tres años en un lugar del mundo. En esta ocasión se celebrará en Madrid, del 16 al 21 de agosto de 2011.” Es decir, una convocatoria de la iglesia católica para juntar muchos jóvenes creyentes con el Papa. Según sus cifras oficiales, Se inscribieron 428.505 personas de muchos paises, principalmente España, Italia, francia, USA, Alemania, Brasil, etc (podéis consultar el mapa en su web). Los inscritos (llamados peregrinos por algunos) empezaron a llegar a Madrid el fin de semana del día 13 y empezaron a llenar todos los sitios adecuados para darles cobijo. Se han cedido colegios públicos para servir de alojamientos temporales, se han emitido bonos de transporte con un 80% de descuento para facilitar su desplazamiento, se emitieron visados gratuitos, se han desplazado efectivos de los cuerpos de seguridad del estado, protección civil y se ha dejado sin vacaciones a gran parte del samur para atender las necesidades y posibles problemas de esta gran masa humana, se les ha dejado entrar gratis en los museos y se ha declarado la actividad de interés especial, por lo que los patrocinadores tendrán deducciones de casi el 90% de lo que aporten a la fiesta.

En este enlace ¿Quien paga la JMJ? tenéis un desglose completo de todos los costes asociados al evento.

La manifestación Laica

Debido a que, siendo objetivos, si que hay un coste público en este evento, y dado que los tiempos de recortes y crisis profunda en los que vivimos no son muy dados a pasar por algo dispendios innecesarios, ciertos colectivos decidieron protestar por tales gastos y por la poca separación Iglesia-estado que se estaba demostrando con todas las facilidades y regalos que se hacían a la organización.

Los promotores de esta protesta, que exigían transparencia para las cuentas públicas con respecto a la JMJ y que contaba con todo tipo de organizaciones, desde católicos de base a ateos. durante la organización, se obtuvo la aprobación de la manifestación y su paso por sol. Más de 89 colectivos se unieron en la convocatoria y esperaban poder realizar la manifestación de una manera pacífica el 17 de agosto. De hecho, superaron las previsiones iniciales de 5000 personas y, según algunos organizadores, superaron las 20.000.

Los problemas

Como en toda manifestación callejera, siempre hay cosas buenas, malas e inaceptables. La organización no era demasiado buena, el itinerario fue cambiado por la delegación del gobierno y no estaba muy claro cual sería la definitiva, y había mucho “perroflauta” que reivindicaba cosas distintas a las referidas a la financiación pública de un evento privado. Pero al final, las noticias que llegaron de la manifestación no fueron nada buenas. Por un lado, se termino insultado a peregrinos que nada tenían que ver y por otro la policía cargo y aporreó a varios inocentes. Os pongo un par de vídeos de actuaciones malas (para que veáis ambos lados):

Insultos a los peregrinos (en un pasillito organizado por la policía de la peor manera posible):

Bofetadas de la policía a una joven y a un fotógrafo (sin suponer ningún peligro para nadie)

Aquí os dejo la crónica de una que estuvo en la manifestación:

Abuelo, ven aquí que te cuente

Las reacciones

Aunque hay pocas cosas que nos sorprendan ya de los medios de información españoles, las reacciones fueron las esperadas dependiendo del signo que tuviera cada periódico o la mala baba que gastase su director. De hecho, los medios más “papistas” tacharon la manifestación como anti-papa, cuando nadie en la organización había expresado ninguna oposición a la venida del papa, sino a los gastos públicos ocasionados por la misma. Convertían así una manifestación de protesta contra gastos excesivos en una manifestación contra el Papa o contra los católicos… Así, fomentando el odio. En concreto:

También hay algunos que sacan imágenes que no interesan a nadie, como los “peregrinos” de botellón:

En suma, que los medios de incomunicación estatal habían decidido que unos peligrosos ateos antipapa habían atacado a los pobrecitos turistas-peregrinos que pasaban por allí… Y luego, la gente que se había informado por internet tenía pruebas de abusos policiales contra la marcha laica. Dos posturas bastante difíciles de reconciliar.

Por suerte la policía no es tonta, y el SUP sacó un comunicado condenando acciones como la de las bofetadas gratuitas.

El sindrome de las dos Españas.

Lo que verdaderamente me preocupa no es si el papa ha venido, se han dejado unos pocos millones de euros por el camino o si los peregrinos ahora son más fans de España que antes. Lo que me preocupa es que haya hechos incontestables e inadmisibles para una sociedad democrática y civilizada como que las fuerzas de seguridad del estado se dediquen a aporrear periodistas indefensos o abofetear a jóvenes chillones pero inofensivos y que, en lugar de condenarlo, gente normal y corriente intente justificarlo como contrapunto a la ofensa de la manifestación laica.

Amigos de toda la vida y gente a la que respeto mucho se posicionaron en dos bandos, los creyentes y los infieles (por así llamarlos).

Los creyentes creían que todo lo que se hiciese para beneficiar al papa y los peregrinos debía ser respetado y no ser discutido, cualquier otra cosa sería inadmisible. Para este bando rezar de rodillas obstaculizando una manifestación laica era algo poco menos que piadoso y no suponía ninguna provocación, las tortas de las policías a los perroflautas seguro que estaban justificadas por alguna falta de respeto a los creyentes. Incluso se llegó a nombrar la quema de iglesias del 36 como atenuante y como justificación para tener controlados a los antipapa… La manifestación laica creían que era un ataque directo a sus creencias y una provocación a todos los católicos por más que se les hubiese informado de la finalidad de la misma, meramente económica.

Los infieles, creyeran o no en Dios también tenían su postura radical. La simple presencia de peregrinos en el camino de la manifestación era una provocación, el dispendio de dinero en la visita era un robo de la iglesia al resto del estado y la actitud de la policía era poco menos que fascista y ordenada por un estado controlado por la iglesia. También se llegó a nombrar a los represaliados republicanos, a la pederastia y a la falta de caridad cristiana de los que organizaban fastos cuando en Somalia se mueren de hambre.

Para mi, que prefiero no encuadrarme, los hechos violentos son todos injustificables y denunciar los mismos debería ser parte integrante de nuestra libertad democrática. Protestar por gastos excesivos en tiempos de recortes tampoco me parece mal, al igual que no me parece mal promocionar la ciudad de Madrid a unos jóvenes que igual algún día vuelven con dinero para gastarse. Lo que no puedo tolerar (además de la intolerancia, que diría un sofista) es la creación de bandos entre gente de buena voluntad con la simple excusa de si te han bautizado o no o de si acatas lo que dice la iglesia o lo que te dicta tu ética. La religión ha de ayudarnos a vivir en paz con nosotros y con los demás, no a dividirnos y enfrentarnos.

Ale.. Ya lo he dicho, ¡qué a gusto me he quedado!