Agustín Ventura

Ingeniería de Software

Certificados y Dispositivos en Tizen Studio

##Certificados Una de las cosas que piden para poder subir software (o instalarlo en dispositivos de prueba) en Samsung es disponer de un certificado, tanto de autor como de distribuidor. Para crear un certificado podemos utilizar el mismo Certificate Manager de Tizen Studio, pero que en esta versión no viene instalado, así que lo primero es ir al Package Manager y en la sección Tizen SDK Tools > Baseline SDK instalar el Certificate Manager.

Tizen Studio

A finales de 2017 participé en un concurso de Samsung llamado Dispositivos por Apps y que, mediante el regalo de dispositivos pretende aumentar la presencia de aplicaciones en el market propio de Samsung (Galaxy Apps). El caso fue que que en aquel momento hice tres aplicaciones para relojes Samsung (y sin tener uno, jaja) y me saqué un reloj Samsung Gear Sport. Las aplicaciones en cuestión eran las siguientes: [TabataTimer](https://github.com/agustinventura/TabataTimer): Un temporizador Tabata configurable, incluyendo número de rondas, duración del intervalo de trabajo y del intervalo de descanso. [DiceRoller](https://github.com/agustinventura/DiceRoller): Un tirador de dados, por si te pilla en una partidilla de algo y no tienes a mano los dados, pues puedes seleccionar el tipo de dados y el número y la aplicación los "tira" por tí. [SwimMonitor](https://github.com/agustinventura/SwimMonitor): La aplicación que creo que me quedó mejor de todas. Permite llevar el control de los largos que vas haciendo en la piscina y además revisar entrenamientos anteriores para poder compararlos. Pues bien, ahora ha vuelto a salir la promoción y esta vez piden nada más y nada menos que seis aplicaciones, pero teniendo en cuenta que ya sé más o menos como funciona todo, creo que puedo sacarlas en las semanas que dan. ##Tizen Studio

SDKMAN

SDKMAN es un gestor de entornos y herramientas Java. Cuando trabajas en un entorno “corporativo” (¿aburrido?) sueles tener claramente fijadas las versiones de herramientas de desarrollo a utilizar, por ejemplo, Java 8 en la versión 1.8.0_121 o Maven 3.2.1, etc… Sin embargo cuando empiezas a cacharrear y a tratar de instalar cosas nuevas es relativamente normal que acabes con dos (o tres o seis) versiones del JDK: la “buena” (1.8), la de “los módulos” (9), la de “los val” (10) y la “nueva buena” (11). Todo eso puedes gestionarlo a mano, claro, para eso esta JAVA_HOME, pero ¿qué pasa si tienes varias versiones de Maven? ¿Y si son más herramientas? Ya se empieza a hacer cansino. Pues bien, SDKMAN se ocupa precisamente de eso, lo instalas y él te instala las versiones que quieras de las herramientas, te pone unas activas, etc… Pero mejor enseño un ejemplo. ##Instalación Pues basta con seguir las instrucciones. Yo como soy un poco particular y maniático, me gusta tener todo lo relacionado con el desarrollo ordenado en carpetas particulares, así que para la instalación especifico primero el directorio en el que quiero que me lo instale y después lanzo el script de instalación:

Spring Boot 2, Spring Security 5 y OAuth 2

Proyecto de ejemplo: https://github.com/spring-projects/spring-security/tree/5.0.0.RELEASE/samples/boot/oauth2login Pasos: Crear nueva aplicación en la consola de google (https://developers.google.com/identity/protocols/OpenIDConnect): https://console.developers.google.com/cloud-resource-manager?previousPage=%2F Crear credenciales OAuth para la aplicación: https://console.developers.google.com/apis/credentials?project=… Asegurarse de que en redirect URI se pone http://localhost:8080/login/oauth2/code/google en application.properties establecer las propiedades spring.security.oauth2.client.registration.google.client-id y spring.security.oauth2.client.registration.google.client-secret

Domain Driven Design, Sesión 2

Ayer tuvimos la segunda sesión de DDD en las oficinas de Comalis. Personalmente se me hizo bastante corto ya que tuvimos bastante debate y muy interesante. Yo aprendí muchísimo… pero por otra parte salí con nuevas lagunas. Empezamos con una pequeña introducción por parte de Tamara de Comalis sobre la empresa. Se dedican fundamentalmente al hosting, cloud, antispam, ssl, etc. Son franceses (el CPD esta en Lyon) pero tienen las oficinas aquí, en Sevilla. Tienen programa de afiliados, así que si os interesa os podéis poner en contacto con ellos que son muy agradables, nos tenían preparado hasta café y pastitas. En lo técnico, repasamos el origen de DDD, la importancia de la reducción de la carga cognitiva al dividir el problema en varios contextos y no tener que mantenerlos todos a la vez en la cabeza. Esto puede implicar que tengamos datos duplicados entre contextos, pero de lo que se trata no es de optimizar en lo técnico, sino de desarrollar un software de calidad, flexible y adaptable. También pasamos por encima del lenguaje ubicuo, que es el lenguaje que utilizamos para definir y describir el sistema. Debe estar lo más próximo posible al lenguaje del negocio para malentendidos o directamente definir mal el sistema. Una vez expuesta la parte más abstracta, pasamos al caso concreto: la gestión de un gimnasio. Dentro de un gimnasio podemos tener distintos contextos: facturación, mantenimiento, gestión de personal o el técnico como tal. Este técnico puedo incluir definir rutinas para los clientes y que estos puedan ir apuntando las actividades que van realizando en el gimnasio. El caso de estudio se centraba en esta última parte, en concreto propuse dos historias de usuario: