PLAIN CONCEPTS TECH DAY

Escuela Técnica de Sistemas Informáticos de la Universidad Politécnica de Madrid

mié. 20 de diciembre de 2017 (9:00 – 14:00)

Plain Concepts Team

LogoPC

¿Qué es Plain Concepts?

Plain Concept se fundó en 2006 por varios Microsoft MVPs (Most Valuable Professional), quienes se unieron para crear una empresa que atraería a profesionales reconocidos en todo el mundo.

Actualmente cuentan con 170 empleados y tienen 5 oficinas en España (Madrid, Barcelona, Bilbao, Sevilla y León), así como en Seattle, Londres y Dubai.

La misión de Plain Concepts es ofrecer soluciones personalizadas, innovadoras y atractivas para todo tipo de necesidades digitales, incorporando siempre la última tecnología disponible. Esto se logra gracias a los Microsoft MVPs (Most Valuable Professionals), a un Director Regional de Microsoft y la experiencia en soluciones ALM. Plain Concepts tiene una amplia cartera de proyectos: aplicaciones móviles para iOS, Android y Windows Phone, tecnología web, aplicaciones empresariales, soluciones de backend personalizadas, aplicaciones para Xbox One y Xbox 360, Business Intelligence, Big Data así como servicios de realidad virtual como PlainVR.

Sus clientes son variados y cubren desde el turismo, industria, los medios de comunicación, las telecomunicaciones, la banca, sanidad, comunicación y entretenimiento, agencias creativas y las grandes empresas como Acciona, Telefónica, Vodafone o Microsoft, con quienes colaboran anualmente en numerosos proyectos locales y globales. El equipo ha colaborado con Microsoft en muchos foros y eventos global. Plain Concepts es Gold Cloud Platform, Xamarin Premium Consulting Partner, ALM Partner of the Year, Microsoft Pixel Sense Premier Partner and Microsoft Partners of the Year 2016.

Empezamos la jornada!

20171220_090820

 

9:00 – 9:45

Sin título-3

 CSS Grid Layout – ¡Se acabaron los hacks, larga vida al CSS! con Ignacio Villanueva- Software development Engineer en Plain Concepts

Empezamos la jornada con Ignacio Villanueva que nos da una muy ilustrativa charla sobre las CSS. Una de las ideas más importantes a destacar es que no podemos tratar las CSS a lo loco, tenemos que tener en cuenta el orden de colocación de los contenedores principalmente por un tema de accesibilidad a personas con dificultades. Uno de los grandes objetivos es plantear una web para todos los consumidores no sólo para nuestro cliente objetivo.

La retrocompatibilidad nos invade y hay que tener bajo la lupa que nuestra web funcione con navegadores antiguos para una buena funcionalidad. A la hora de crear tablas hay que intentar evitar los estilos inline en los CSS porque puede provocar problemas de accesibilidad y restringir el mercado.

Ignacio nos habla de los Floats que es utilizado para casi todo. La intención de un Float es que el texto fluya alrededor de la imagen, pero esto también puede causar problemas porque puede crear espacios no deseados según el navegador que se utilice (hay que saber usar muy bien, al menos conocer los riesgos).

20171220_095621_HDRHoy en día todos los clientes desean una web flexible, que se adapte a cualquier dispositivo o pantalla con un estilo que atraiga al usuario. Por eso una de las librerías que más se utiliza hoy en día es Bootstrap. Bootstrap es un framework web o conjunto de herramientas de código abierto para diseño de sitios y aplicaciones web. Contiene plantillas de diseño con tipografía, formularios, botones, cuadros, menús de navegación y otros elementos de diseño basado en HTML y CSS, así como, extensiones de JavaScript opcionales adicionales (por ejemplo lo utiliza Twitter y casi un 80% de las webs).

Ignacio no recomienda el uso de Bootstrap porque es empezar la casa por el tejado. Nos recomienda que primero tengamos un buen conocimiento de las CSS y que trabajemos mucho con ellas, porque podemos estar complicándonos la vida más de lo necesario. Una vez se tiene dominadas las bases, empezar a utilizar librerías y frameworks.

Normalmente utilizamos medidas como “%” o “px” en las CSS e Ignacio nos recomienda explotar un recurso muy potente que es fr. La medida “fr” nos coloca inteligentemente elementos dentro de un espacio. También nos anima explotar las características “grid-auto-flow”, “auto-fill” y “auto-fit” que rellenan esos espacios que pueden surgir a la hora de diseñar una web.

Esta primera charla nos ha dejado las expectativas muy altas. Ha sido muy ilustrativo y hemos aprendido bastantes cosas en 45minutos, una pena no poder seguir explotando herramientas de CSS.

 

9:45- 10:30

javier

Desarrollo de aplicaciones multiplataforma utilizando Xamarin con Javier Suarez- Software Development Engineer en Plain Concepts y Xamarin MVP

Y ahora le toca el turno a Javier Suárez a hablarnos sobre el desarrollo de aplicaciones en Xamarin. Muchos de nosotros todavía no hemos visto nada de Xamarin pero forma parte del temario del curso y estamos muy interesados en esta ponencia.

Xamarin viene a solucionar la multiplataforma, hay muchos dispositivos distintos y cada uno puede utilizar un diferente sistema operativo.

Cada sistema operativo tiene su lenguaje y eso complica mucho la tarea de la programación. Si una empresa creaba una aplicación sobre Android como idioma nativo tenía la dificultad que no funcionaba bajo otros sistemas (por ejemplo, Apple) y tenía que contar con otro equipo especializado en ese otro lenguaje nativo. Con las complicaciones que ello puede implicar. Xamarin lo que hace es crear una réplica de cada API de modo que permite desarrollar un entorno con un lenguaje que comparte un código en común.20171220_101559_HDR

Al principio surge Xamarin Classic que se desarrolla con su propio lenguaje nativo, pero esto no soluciona el problema de tener que contactar con otros equipos para otros lenguajes nativos. Para solucionar este problema surge Xamarin Forms que crea una capa de interfaz de abstracción para todas las plataformas.

Xamarin fue adquirida en 2016 por Microsoft y hoy en día es una herramienta gratuita y Open Source (de código abierto), con lo que cualquier persona puede ayudar a seguir implementando mejoras y posibilidades al framework.

20171220_102523_HDREl principal problema que surgió con Xamarin hasta ahora ha sido el tiempo de ejecución porque era muy engorroso hacer pruebas y verificaciones en los diferentes dispositivos. Hay que tener en cuenta la gran cantidad de dispositivos existentes en el mercado y puede que una aplicación funcione perfectamente, pero en un dispositivo en concreto los menús se salen de la pantalla. Para solucionar esto ha surgido Xamarin Live Player. Es una aplicación que sincroniza la aplicación creada con Visual Studio, una vez sincronizado vemos todos los cambios que vamos realizando a tiempo real.

Además, podemos complementarlo con Visual Studio App Center, un portal web que además de permitirte compilar el proyecto, te ofrece un testeo sobre más de 3000 dispositivos. Por supuesto esta parte tan interesante para tus proyectos tiene limitaciones en la versión gratuita. A parte Visual Studio App Center tiene un apartado Build (sin limitaciones) donde podemos probar nuestro proyecto con equipos Mac (esquivando las dificultades que surgen al trabajar con el entorno nativo Apple fuera de sus productos).

En un futuro próximo se incorporarán novedades a Xamarin Forms facilitando poder desarrollar aplicaciones a otras plataformas como Linux, skiasharp, Unity y Asp.Net Core.

Para tener una idea muy leve de lo que es Xamarin ha sido muy ilustrativo. Empiezan a surgir muchas preguntas entre el público y se nota el interés creciente en estas jornadas.

 

10:30- 11:15

eduardDocker: de principante a pro con Eduard Tomás – Development Team Lead en Plain Concepts y MVP en Asp.Net

En esta sección Eduard pone el listón muy alto, quizás sea la primera vez que escuche hablar sobre los Docker y los contenedores por eso me ha resultado bastante difícil de seguir esta sección.

20171220_114111_HDREduard Tomás nos habla de la excusa de los programadores “en mi máquina funciona” a la hora de ver que un proyecto no funciona como se esperaba en la máquina del cliente. Los contenedores nos quitan esa excusa, es un recurso para empaquetar versiones y que nos permite ser capaces de ejecutar esos paquetes de aplicaciones en un entorno seguro.

La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando asó también los despliegues.

No voy a mentir en este punto, a un inexperto como yo le cuesta desarrollar la información expuesta por Eduard y me he puesto a consultar enlaces externos para entender un poco sobre el tema. La charla se volvió muy técnica y Eduard mostró ejemplos de código de su trabajo en Plain Concepts. Tengo muchas cosas interesantes apuntadas de la charla, pero no las voy a expresar por escrito por miedo a cometer algún error garrafal. Sin duda merece la pena contar con Eduard para mostrar que los chicos de Plain Concepts no se andan con chiquitas. Prometo echarle un buen vistazo a los contenedores más adelante.

 

11:45- 12:30

rodrigo y carlos

Los autobuses de madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi con Manuel Rodrigo Cabello – Software Development Engineer en Plain Concepts y MVP en IA y Carlos Landeras – Software Development Engineer en Plain Concepts

20171220_122356Le toca el turno a Carlos Landeras y Rodrigo Cabello. Vienen a enseñarnos una práctica a través de una Raspberry Pi. La Raspberry Pi es un ordenador supercomprimido que es la joya de la corona para todos aquellos que les guste el cacharreo. El proyecto se basa en que la Raspberry Pi recopila la información que la Comunidad de Madrid proporciona a través de EMT de forma gratuita sobre la posición de los autobuses. Esa información se envía a un punto en la red y Azure (la nube de Microsoft) permite que todos los que se conecten tengan acceso a la información proporcionada. Azure Relay nos permite exponer servicios en la nube sin realizar cambios intrusivos, no se tiene que modificar nada en el firewall o en la red.

Todo se configura rápidamente desde el portal de Azure. Nos permite configurar hasta 25 clientes con el rol de Agente de Escucha (los agentes de escucha tienen acceso a manejar y procesar toda la información con la que se trabaja). No es lo mismo ser un Agente de Escucha que un cliente, los clientes son solamente consumidores de la información alojada en el servicio de Azure. A través de tokens (claves de autentificación) se tendría acceso al servicio de datos.

Podemos comprobar in situ como todo funciona perfectamente. Raspberry Pi se conecta, envía la solicitud, la Api de la EMT Geobus20171220_125826_HDR proporciona la ruta de los autobuses (el ejemplo se hace con la línea 27 para no colapsar el servicio de la EMT) . Cuando las peticiones se envían, la información se sube a la nube y ésta la reparte entre los clientes. Toda la información se actualiza con muy poco retraso y pudimos comprobar el movimiento de los autobuses en un mapa.

Una vez más nos demuestran que con muy poco software se pueden hacer muchísimas cosas, con preparación y trabajo el límite está en nuestra imaginación.

 

12:30-13:15

luis y carlos

Swagger Code Generation: Cuando front encontró a back con Luis Ruiz Pavón – Software Development Engineer en Plain Concepts y MVP en Asp.Net y Carlos Bastos – Software Development Engineer en Plain Concepts

Luis Ruiz y Carlos Bastos nos muestran cómo Plain concepts es una empresa creada para solucionar problemas. En esta ocasión nos presentan Swagger que básicamente se trata de agilización a la hora de comunicarse con las API. Es un recurso de automatización de peticiones entre el cliente y  la API para ahorrar tiempo y muchísimas líneas de código sin valor.

Swagger se dona a las principales fundaciones y gracias a eso se crea un standard que es OpenAPI. La iniciativa Open API (OAI) se enfoca en crean evolucionar y promover un formato de descripción de API Open Source e independiente del proveedor basado en la especificación de Swagger.20171220_130506

13:15- 14:00

luis fraile  Entrega continua con Visual Studio Team Services con Luis Fraile ALM and DevOps consultant y Microsoft MVP VS ALM

Por desgracia nos quedamos sin tiempo, se han relentizado mucho las ponencias y a Luis Fraile no le queda mucho tiempo para desarrollar su ponencia. De todas formas podemos sacar algunas cosas de valor de su discurso. Lo más importante es el valor de los recursos. Si tenemos una página web con muchas funciones pero estas funciones no se utilizan, de lo único que ha servido es para desperdiciar dinero y recursos. Lo que realmente queremos es mejorar los procesos de entrega de valor. Tenemos que tener un ciclo de criterios que agilicen los procesos de automatización. Aquí Luis nos anima a buscar más información sobre la automatización continua como algo fundamental a tener en cuenta. Lo realmente importante es monitorizar al negocio para ver qué es lo que están utilizando los usuarios para poder enfocarse en lo realmente útil.20171220_134448_HDR

La principal característica del movimiento DevOps es defender enérgicamente la automatización y el monitoreo en todos los pasos de la construcción del software, desde la integración, las pruebas, la liberación hasta la implementación y la administración de la infraestructura. DevOps apunta a ciclos de desarrollo más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha alineación con los objetivos comerciales.

FIN DE JORNADA

Se acabó la jornada del Tech Day impartido magníficamente por los profesionales de Plain Concepts. Desde aquí agradecer a todo el Equipo porque además de ser unos especialistas de referencia han colaborado en este acto con la Fundación Theodora para los niños hospitalizados. Este es su último evento del año en una agenda apretadísima, esperemos que el año que viene tengamos posibilidad de reencontrarnos y seguir aprendiendo. El grupo MSCD de Tajamar 2017-2018 y yo os deseamos un feliz año, feliz Navidad y…. ¡GRACIAS AL EQUIPO DE PLAIN CONCEPTS!

tmp_1513777147703

Autor/a: Isidoro López Rodríguez

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2017-2018

Linkedin: Isidoro López