Archivo de la categoría: Comunidad

[Mindcamp 2014] How I met testing

En Mayo me invitaron a la Mindcamp 2014, Un evento que se viene celebrando de año en año.

Quería compartir la charla que di sobre cómo conocí el mundo del testing y cómo desde entonces duermo mejor.

Espero que os guste y no dejéis de ver los videos de las demás charlas de la Mindcamp, hay auténticas joyas

[Cartuja .NET] Sevilla Mobility Day

Hola amigos del bit y el byte.

El próximo Sábado 5 de Julio en Sevilla será un día especial: el Sevilla Mobility Day organizado por el grupo de usuarios Cartuja.NET.

SevillaMovilityDay

En este día veremos multitud de cosillas relacionadas con el desarrollo para dispositivos móviles y no las enseñaran varios grandes personajes de este mundillo:

  • Javier Suárez, nos contará las bondades de las nuevas aplicaciones universales para Windows Phone 8.1 y Windows, que nos permiten compartir código en nuestras aplicaciones.
  • Josué Yeray nos contará los secretos de los behaviors, animaciones y visual states en aplicaciones WP 8.1, Windows Store y universales.
  • servidor os contaré cómo podemos crear videojuegos multiplataforma con Wave Engine.
  • Mis compis, Juan Cano y Marcos Cobeña nos enseñaran algunos de los secretos más ocultos de Xamarin. Estos dos personajes se han pegado bastante con la plataforma, a ver qué nos cuentan.

Cuándo: Sábado 5 de Julio 2014, de 9:30h a 14:00h

Dónde: Microsoft Clouding Point de Sevilla (C/Biología 12, Edificio Vilamar 2, planta 3, Parque Empresarial Nuevo Torneo).

Web oficial del evento: http://cartujadotnet.es/sevilla-mobility-day/

Regístrate aquí.

Geomotion: integración entre coche y dispositivos inteligentes Made in Spain

En los últimos años hemos ido viendo cómo la tecnología crece a pasos agigantados y cómo se va involucrando en casi cualquier actividad que hacemos en nuestro día a día.

En el caso de los móviles, ya no es sólo que lo usemos como reproductor de mp3 o cámara de fotos, incluso nos los llevamos pegado al brazo cuando salimos a correr o de ruta con la bicicleta. Y además, ahora tenemos tablets, relojes inteligentes o incluso gafas y pulseritas que nos hacen de asistente personal.

Sin embargo, en la industria del automóvil, a pesar de que ya disfrutamos de verdaderos sistemas multimedia, o de que podemos configurar muchísimos parámetros de nuestro vehículo, o de que cada vez es más asequible llevar integrado un navegador GPS en el salpicadero… todavía echamos en falta cierta tecnología que es más que viable desde hace muchos años. Nos referimos al hecho de que un coche registre todo lo que hacemos con el mismo; cosas como destinos alcanzados, viajes realizados, itinerarios seguidos, consumo de combustible y un largo etcétera.

¿Cómo puede ser que un coche de hoy en día, que puede costar 10.000€, 20.000€ o incluso 50.000€, salga de fábrica sin llevar a bordo un localizador/rastreador GPS? Hablamos de un accesorio que podría tener un costo inferior a 100$ para los fabricantes, probablemente mucho menos de lo que cuesta un faro completo. ¿Y lo que ganaríamos en calidad de vida si nuestro coche actuara como nuestra memoria, nuestro consejero, nuestro gestor financiero…? Pero el objetivo no estaría cumplido si tuviéramos que montarnos en el coche para revisar toda esta información, es importante que la información se integre en la nube y la disfrutemos con nuestros smartphones, tablets y ordenadores.

Precisamente en esta línea están trabajando los chicos de Geomotion. Han lanzado un producto todo en uno con el que poder saber todo lo que hacemos con nuestro vehículo, tocando además temas tan interesantes como la seguridad o la posibilidad de enseñarle a alguien por dónde va nuestro vehículo. Se trata de un localizador GPS con una tarjeta SIM incorporada que nos instalan en nuestro coche y nos da acceso a una serie de apps para PC, Tablet y Smartphone.

La aplicación nos permite hacer un seguimiento en tiempo real de nuestro vehículo si, por ejemplo, lo compartimos o lo hemos prestado, mostrando la calle por la que va circulando o, en caso de estar aparcado, el tiempo que lleva estacionado y la ruta óptima para volver a pie desde nuestra posición.

También nos permite revisar por donde hemos circulado en el pasado, de forma gráfica, en un mapa coloreado con trayectos independientes, para poder confirmar si tiene sentido el itinerario seguido, o descubrir rutas alternativas viendo las carreteras colindantes desde otra perspectiva.

Captura de pantalla de Geomotion

Captura de pantalla de Geomotion

Se puede consultar en detalle toda la información asociada a cada trayecto, como direcciones de origen y destino, horas de partida y llegada, velocidades, etc. Además podemos guardar esos trayectos como rutas favoritas o, simplemente para compararlas sobre el mapa cuando hablemos de dos o más itinerarios diferentes que hayamos hecho para alcanzar el mismo destino (ideal cuando cambiamos de trabajo).

Para los que les guste eso de ahorrar, o para los amantes de las matemáticas, hay una sección de estadísticas, en la que se puede consultar, no sólo tiempos y distancias totales o velocidades máximas diarias, sino conceptos tan interesantes como el dinero gastado en combustible; datos que nos pueden ayudar a cambiar nuestros hábitos para mejorar nuestra economía doméstica o, por qué no, permitir que un padre o madre de familia numerosa pueda justificar que le ocupa demasiado tiempo o dinero llevar y recoger a los niños de las actividades extraescolares durante toda la semana.

Además de una pequeña sección de configuración, existe la posibilidad de “dormir” o “despertar” el vehículo. Supongamos que estamos haciendo turismo en una ciudad que no conocemos, ya no sólo nos viene bien no preocuparnos de dónde dejamos el coche y consultar más tarde el camino de vuelta en el móvil, sino que además podemos activar los avisos para que Geomotion nos diga si se lleva el vehículo la grúa, por ejemplo, porque hayamos aparcado en una zona prohibida sin saberlo, o ya no digamos que nos lo roben. Si el vehículo se mueve mientras está “dormido” nos mandan un email con bastante información al respecto y con un enlace a una página web (que podemos compartir con la policía o la aseguradora) en la que se puede monitorizar el vehículo en tiempo real, como en las películas americanas, así será más fácil recuperarlo o incluso tener la seguridad de que se lo han llevado a un depósito de vehículos en concreto de todos los existentes en la ciudad.

Entre toda esta funcionalidad seguro que encontramos un motivo para interesarnos por Geomotion, además, no olvidemos que está disponible para cualquier plataforma (iPhone, Android, Windows Phone, Windows 8/7/Vista) y que además hay versiones para tablets, con lo que la comodidad es máxima.

Para más información, visita www.dondeestamivehiculo.es

[Evento CartujaDotNet] Wave Engine

Wave EngineImagina que quieres hacer un juego, pero sólo quieres programarlo una vez y desplegarlo en la mayoría de plataformas posibles.

Deja de soñar y aprende a usar Wave Engine y podrás desplegar tus juegos en iOS, Android, Windows 8 y Windows Phone.

Los grandes Marcos Ligthyear y David Woody nos enseñarán todo lo necesario (y quizás algo más ... ) para empezar a sacarle partido a Wave.

¿Dónde y cuando?

En el Cloud Pointing de Sevilla.

c\ Biología, 12, Edificio Vilamar 2, 3ª Planta
Parque Empresarial Nuevo Torneo
41015 Sevilla

El Jueves 23 de Mayo de 19:30 a 21:30.

Aquí tenéis juegos reales hechos con Wave Engine. Y estas son  unas cuantas demos tecnológicas.

¿Te lo vas a perder? Pues regístrate aquí

HTML Tour

Se nota que estamos volviendo de las vacaciones y hay que ponerse las pilas.

Si ya nos las recargamos algunos en el pasado Megathon de Windows 8, ahora llega el momento de la web con el :

Plain Concepts

HTML Tour

HTML Tour Plain Concepts

que Plain Concepts va a realizar a lo largo y ancho del territorio nacional con las siguientes fechas:

En este evento veremos el porqué de HTML5, lo que significa, lo que trae y todo lo que podemos hacer con el. La agenda consta de siete sesiones en las que veremos:

Introducción a los nuevos estándares web:

En los últimos años el trabajo de desarrollador y diseñador web se ha ido complicando cada vez más. Nuevos navegadores, nuevos dispositivos y miles de librerías y herramientas han llegado a las vidas de todos los profesionales del desarrollo web. Veremos los diferentes perfiles de equipo que han aparecido y nuevos modelos de negocio web. Actualmente los profesionales del web ya no sólo crean páginas web, también aplicaciones móviles y tablets y hasta SmartTVs. Un mundo de JavaScript que todavía no conoce límites.

Buenas prácticas en el desarrollo web:

El objetivo de esta sesión es mejorarle la vida al desarrollador. Mediante herramientas y buenas prácticas veremos cómo cometer menos errores y como testear javascript, como ser mucho más productivos con nuestras css’s y evitar el caos mediante OOCSS y less. Para finalizar veremos el proceso de subida a producción de nuestra aplicación.

Construyendo tu ecosistema de desarrollo Web

En esta sesión daremos un repaso a los distintos tipos de aplicaciones web que podemos desarrollar, decidiremos cual es más adecuado para cada situación y veremos de qué frameworks y herramientas disponemos para desarrollarlos. Utilizaremos Asp.net MVC4 para crear desde webs más “sencillas” hasta single page applications. Intentaremos perderle el miedo a javascript y veremos algunos frameworks como knockout, crearemos Apis Rest con Web Api, y veremos cómo consumir datos en tiempo real con signalR.

Aplicaciones móviles multiplataforma

En esta sesión conoceremos la plataforma de desarrollo Phonegap, cuando nos puede interesar utilizarla y cuando no, veremos cómo podemos aprovechar nuestros conocimientos de HTML5, CSS y javascript para crear aplicaciones nativas en múltiples plataformas móviles y cómo tenemos acceso a interacción con el dispositivo (camera, geolocation, contacts, …). Para todo esto nos apoyaremos en el framework web, optimizado para gestos, jquerymobile. Write less, do more.

Responsive Web Design

En esta charla veremos cómo conseguir que nuestra página web se vea correctamente tanto en nuestros móviles, como en nuestra pantalla de pc, sin tener que crear una versión diferente para cada uno de los dispositivos. Veremos además, las diferentes técnicas que podemos aplicar para conseguir el resultado deseado, centrándonos sobre todo en Progressive Enhacement.

Programación de Videojuegos HTML5

En la charla veremos características comunes de los juegos y su aplicación práctica en canvas HTML5. Analizaremos varios tipos de juegos, tanto 2D como 3D y estudiaremos las diferentes maneras implementarlos mientras comentamos las partes clave de su estructura. Para finalizar echaremos un vistazo al framework desarrollado por PlainConcepts para la creación de diferentes tipos de juegos 2D y 3D en HTML5.

De la web a Windows 8. 5 + 3 = 8

Los desarrolladores web tenemos con Windows 8 la oportunidad de crear aplicaciones nativas HTML5+CSS3+JS. En esta charla aprenderemos a seguir los patrones de “Windows 8 Style”, utilizar controles que nos proporciona WinJS, Live Tiles e integrar nuestra aplicación con Windows gracias a los contratos de búsqueda, compartir y configuración.

Esperamos veros allí :)

Juan María Laó Ramos

[CartujaDotNet] Quedada informal este Jueves, Hackaton calentando motores

Este Jueves 23 sobre las 8 de la tarde estaremos en el bar Sacristía en  la Calle de Juan Antonio Cabestany, 15, 41003 Sevilla para charlar un ratillo sobre tecnologías Microsoft, herramientas, y otras cosas que salgan.

Entre otras cosas trataremos sobre el inminente hackaton de septiembre (¿aún no sabes lo que es?) para organizar grupos, ver que recursos disponemos y colaboraciones.

Además, iremos viendo las próximas charlas. Así es que allí te esperamos.

Un Saludo

Hackathon Windows 8

Megathon Windows 8, ¿te lo vas a perder?

Hackathon Windows 8

¿Megathon, qué es eso?

Fácil, si has asistido a algún Hackathon de Windows Phone que se estuvieron haciendo el año pasado por toda la geografía española en diferentes fechas, esta vez es ¡en un montón de ciudades en la misma fecha todos a la vez!

La idea surgió por twitter en un momento de locura sana de Jose Bonnin (@wasat)

Durante los días 7, 8 y 9 de Septiembre tendremos que crear una aplicación Metro para Windows 8. Durante esos días de poco sueño se darán charlas sobre cómo programar apps Metro para Windows 8 usando C#/XAML o HTML5/JavaScript/CSS3 y contaremos con mentores que nos ayudarán a completar su App.

Yo ya estoy apuntado, ¿te lo vas a perder?

http://megathonwindows8.azurewebsites.net/

Cartuja .NET working

En Sevilla, a estos maravillosos 40 grados, nos vamos a juntar unos cuantos en el primer evento del grupo de usuarios de .NET de Sevilla, Cartuja.NET, de este año.

Así que si te gustan las tecnologías, especialmente las de Microsoft, trabajas con ellas, o te gustaría hacerlo pero no sabes cómo, nos vamos a reunir para hablar sobre MS, las tecnologías que están o van salir, conocernos y hacer networking.
¿Quieres saber más? Vente el Dia: 4 de Julio
Lugar: En la Calle Presidente Cárdenas, 41013 Sevilla (SE)   Hora:  8 de la tarde (con la fresquita)

No hace falta que os regitréis ni nada.

Nos tomaremos unas cervezas en el bar Qcross mientras charlamos sobre todo esto y más.

Updated:

Y si queréis estar al tanto de lo que se cuece en CartujaDotNet, noticias, eventos, o contactar con otros participantes, podéis uniros al grupo CartujaDotNet en Facebook, LinkedIn, o seguirlo a través de Twitter.

Más artículos hablando sobre este tema:

Os esperamos!

Logo de Winphone Metro

Difoosion

Me llena de orgullo y satisfacción que me hayan acogido en Difoosion como editor en su blog sobre noticias de Windows Phone: Winphone metro.

Logo de Winphone Metro

Tienen una red de blogs bastante interesante sobre el mundo móvil, no sólo de Windows Phone:

Logo Andro4all

Andro4All: Noticias sobre la plataforma Android.

Logo Applesencia

Applesencia: Noticias sobre Apple.

Logo Xombit

Xombit: Noticias sobre ciencia, tecnología, cultura, gadgets, series y juegos.

Logo XombitGamesXombit Games: Noticias sobre videojuegos de todas las plataformas

Uyuyuy, una sorpresa de última hora y es que ayer se lanzó:

Logo SportAdictosUn blog sobre deporte, salud y nutrición.

La verdad es que es una red de blogs muy recomendable para estar al tanto de lo que se cuece sobre estos temas y es que se actualizan bastante a menudo y creo que a los que me leéis os puede interesar.

Espero que os gusten.

Más tiempo para Cell·APP Awards

Las plegarias han sido oídas y  hemos ampliado el plazo para presentar juegos y aplicaciones a Cell·APP Awards:

Cell·App Awards

Desarrolla tu app usando CELL·SDK. Debes rellenar este formulario para participar y enviarnos el formulario de suscripción.

  • Fin de Inscripción: 31/05/2012
  • Último día para enviarnos tu app: 15/06/2012
  • Periodo de votaciones Online: Empezará una vez envíes tu app y nosotros la subamos. Este periodo acabará el 26 de Junio
  • El Jurado valorará las apps más votadas a partir del 28 de Junio.
  • La entrega de premios será el 29 de Junio.

Todavía no tienes Cell·SDK?! O_o

Pues descárgalo aquí.

El antipatrón “desenrollando switchs”

Las técnicas de desenrollado de bulces las usan los compiladores para optimizar el pipeline de los procesadores para aprovechar los huecos de las unidades funcionales disponibles y evitar que éstas estén ociosas y aumentando así el paralelismo del código consiguiendo de esta forma reducir el CPI.

Sin embargo nos empeñamos en una y otra vez todo ese conocimiento con código como este:

enum Axis
{
    XAxis,
    YAxis,
    ZAxis,
};
// code earlier in the function ensure that
// "axis" is always a valid axis
int newPosition;
switch (axis)
{
case XAxis:
     newPosition = m_position[XAxis] + amount;
     if (newPosition < m_minPosition[XAxis])
         newPosition = m_minPosition[XAxis];
     if (newPosition > m_maxPosition[XAxis])
         newPosition = m_maxPosition[XAxis];
     m_position[XAxis] = amount;
break;
case YAxis:
     newPosition = m_position[YAxis] + amount;
     if (newPosition < m_minPosition[YAxis])
         newPosition = m_minPosition[YAxis];
     if (newPosition > m_maxPosition[YAxis])
         newPosition = m_maxPosition[YAxis];
     m_position[YAxis] = amount;
break;
case ZAxis:
     newPosition = m_position[ZAxis] + amount;
     if (newPosition < m_minPosition[ZAxis])
        newPosition = m_minPosition[ZAxis];
     if (newPosition > m_maxPosition[ZAxis])
        newPosition = m_maxPosition[ZAxis];
     m_position[ZAxis] = amount;
break;
}

(me pregunto cuantas veces he escrito código así)

Empujados por saber que el código específico es más rápido que el código de propósito general, algunas veces no nos damos cuenta de que este mismo trozo de código se podría haber escrito de esta manera:

newPosition = m_position[axis] + amount;
if (newPosition &lt; m_minPosition[axis])
   newPosition = m_minPosition[axis];
if (newPosition &gt; m_maxPosition[axis])
   newPosition = m_maxPosition[axis];
m_position[axis] = amount;

Lo malo del switch primero que vimos es que no es fácil distinguir rápidamente si es un "error" del típico "copy&paste que queda nada para salir y me tengo que ir a casa" o hay algo escondido y sutil que hace de este código un ejemplo de libro.

Espero que os sirva.

Juan María Laó Ramos

Resumen Open Space Sevilla

Open Space SevillaHa sido un placer compartir las poco más de 16 horas del fin de semana pasado con tantos Profesionales, con mayúsculas y en negrita, hablando sobre tecnologías webs, metodologías, testing, seguridad, arquitecturas, tablets, marketing, usuarios (flame: esos malditos bastardos), organizaciones, jefes, clientes. Y mejor paro aquí.

Lo mejor del evento ha sido, sin dudarlo en ningún momento, el haber podido asistir.

Si me lo permitís os pondré un pequeño resumen de cada una de las sesiones a las que asistí y las conclusiones que saqué:

  • Seguridad: Pues, al igual que la calidad no es negociable. Los sistemas que diseñamos o implementamos deben tener en cuenta la seguridad desde el comienzo hasta el fin. Para evitar el “ya os lo dije” y asegurarnos una posición con respecto a nuestros competidores. Como dije al principio, es igual que la calidad, no es negociable. Sobre todo a la hora de usar frameworks o herramientas de terceros, debemos auditarlas.
  • Adicto al verde: Si, adicto a que los test que hacemos se pasen, pero claro, para ello hay que hacerlos. Ya sean unitarios, de integración, etc … Yo defino el arte del testing  como un seguro para no acabar en alcohólicos anónimos después de dos intentos fallidos de puesta en producción, y la calidad en principio da igual, lo que quiero es vivir tranquilo y llegar a casa a una hora decente y con la sensación de un trabajo bien hecho.
  • Garajes en Andalucia: Jmbeas quería saber cómo estaba el tema de los emprendedores en Andalucía y se enteró ;). Por lo que vimos no está extendida la cultura del pelotazo, sino la del “quiero lo suficiente como para poder sacar al perro por las mañanas”. Manuel Recena ha resumido muy bien y lo comparto. Espero que nadie lo entienda como una falta de ambición, es todo lo contrario, plantear un plan de negocio basado en un pelotazo es como correr con el coche a 120 por las calles de una urbanización, te la vas a pegar, te vas a hacer daño y lo peor de todo es que vas a hacer daño a mucha más gente.
  • Yo te la mido (La campaña):  Nos presentaron http://twittalicious.com/ una herramienta opensource para análisis de métricas sobre twitter y conocer el impacto de una persona, campaña, empresa  en esta red social. La verdad es que no está nada mal.
  • Rendimiento de aplicaciones PHP: Un debate/charla, en la que vimos una arquitectura bastante completa y buscamos entre todos cómo podríamos mejorarla con componentes y herramientas que nos ayudan según qué eslabón de la cadena queremos optimizar.  Me gustó particularmente ya que el enfoque de cómo mejorar se puede aplicar a cualquier otra tecnología como .NET, Java, Ruby, etc..
  • “Trucos” para rentabilizar un blog: En esta fuimos poquitos, y es que los frikis trabajamos por amor al arte ;).  Sin embargo estaba bastante interesado y surgieron muchas ideas: desde buscar anunciantes en otros blogs de la misma temática que el tuyo, ponerte en contacto con el anunciante y ofrecerte, montar una tienda online de algo relacionado con tu blog y buscar tus proveedores, buscar empresas que mantengan redes de blogs y proponer, por ejemplo, que te hosteen el blog a cambio de generar contenidos y un porcentaje de la publicidad.
  • Inspección continua: Vimos cómo integrar Jenkins, Maven y Sonar para hacer que en cada commit del subversión/github se lancen procesos de análisis estático de código vigilando que se cumplen las métricas que estimemos necesarias. Un par de conclusiones que me gustaron mucho son:  1 esta información se puede usar en las sesiones de revisión de código para seleccionar  aquellas clases que incumplan más métricas como candidatas a analizar y 2 si introduces un sistema de este tipo en un proyecto que ya ha comenzado, más te vale relajar alguna regla e ir poco a poco corrigiendo y manteniendo las métricas tal y como están para por lo menos no empeorar.

De nuevo gracias a tod@s por compartir vuestras experiencias y a la organización por este evento tan espléndido.

Juan María Laó Ramos.

Nuevo aspecto

Hola a tod@s.

Después de unos días buscando inspiración y sacando al artista que llevo dentro os presentamos el nuevo aspecto de este amado blog.

Ahora más participativo, más bonito, más todo.

Pero aún no acaba la cosa, esto es sólo el principio. Estad atentos ya que incluiremos nuevas funcionalidades más 2.0.

Gracias a los chicos de Mecus por su inestimable ayuda y profesionalidad.

Mecus

ASP.NET MVC 4 Beta

Hace unos días publicamos ASP.NET MVC 4 Beta. Es una release importante ya que viene con un montón de nuevas características.

ASP.NET MVC 4 Beta funciona con VS 2010 y .NET 4.0, y es compatible con instalaciones de versiones anteriores de ASP.NET MVC (es decir, podéis instalarla sin tener que preocuparos por el posible impacto que pueda tener en las aplicaciones que ya tenéis desarrolladas con otras versiones). La publicamos bajo la licencia "go-live" que os permite crear y desplegar aplicaciones en producción con ella. Haced clic aquí para descargarla e instalarla desde ya. Sigue leyendo

Actualización disponible para ASP.NET desde el Jueves 29 de Diciembre

Hace unos días MicrosofT publicó un boletín de seguridad anunciando que se iba a publicar una actualización de seguridad para una vulnerabilidad de ASP.NET.

La actualización MS11-100 está disponible a través de Windows Update, del Windows Server Update Service y como descarga en el centro de descargas de Microsoft.

La actualización resuelve un problema que permite realizar ataques de denegación de servicio (DoS) presente en todas las versiones de ASP.NET. No se han detectado ataques en ninguno de nuestros clientes usando este exploit, pero recomendamos que se aplique la actualización lo antes posible. Sigue leyendo

Entender y explicar el multitasking

Os presento un pequeño artículo sobre qué es el multitasking y cómo se puede explicar. Con un ejemplo y explicaciones muy interesantes con un aire diferente a lo que estamos acostumbrados:

http://www.crisp.se/henrik.kniberg/multitasking-name-game/Multitasking-Name-Game.pdf

Portada de Multitasking Name Game

 

 

 

 

 

 

 

 

 

Una lectura muy recomendada.

 

 

 

Increible lista de Power Tools

Scot Hanselman lleva años haciendo y actualizando una lista personal de aplicaciones muy interesantes que usa y recomienda. Lo hemos visto hoy con su última actualización resaltando en color rojo las últimas herramientas añadidas.

La lista está en el idioma de Shakespeare. Pide que por favor no se reproduzca, copie y pegue en ningún sitio ya que es un trabajo personal que lleva haciendo desde hace bastantes años y pide que en cambio se enlace desde los sitios que quieran compartirla.

La he encontrado bastante interesante y ya estoy usando alguna de ellas.

Os recomiendo que le deis una ojeada, seguramente encontraréis algo interesante.

Os dejo directamente el enlace:

http://www.hanselman.com/toolsHerramientas recomendadas por Scott Hanselman

 

Espero que os sirva alguna de estas aplicaciones.

Juan María Laó Ramos.