Vídeos de programación

Vídeos sobre programación y desarrollo de software.
Clausura de Commit, entrega de premios y graduación de Tech SHEssions
Javier Jiménez En pleno auge de la Inteligencia Artificial cada vez es mayor la necesidad de disponer de entornos controlados, replicables y con una cantidad infinita de datos etiquetados, por lo que cada vez está más extendido el empleo de algoritmos de Inteligencia Artificial y Machine Learning al mundo de los videojuegos como entornos de prueba antes de aplicarlos a datos reales en diversos campos como pueden ser medicina, ciberseguridad o banca electrónica. En esta ponencia se presentarán demos en directo de técnicas de Inteligencia Artificial y Machine Learning en distintos videojuegos, desde los clásicos de ATARI hasta juegos de mundo abierto como Minecraft. El futuro del mundo del videojuego en el que los niveles se diseñen específicamente para cada persona basándose en los skills de cada jugador cada día está más cerca.
Eduard Tomàs Vale, igual estás usando Docker en desarrollo, pero a la hora de ponerlos en producción... ya no es tan sencillo. Oh sí, en tu máquina compose es más que suficiente para ejecutar tu ultra-micro-services-caas-based-architecture. Y, oye, aunque podrías meter compose en producción, da la sensación que para aprovechar este rack de ordenadores que ocupa medio estadio de fútbol, debería haber algo mejor, ¿no? En esta charla exploraremos Kubernetes: vamos a ver su arquitectura interna, su modelo de aplicación y, por supuesto, como desplegar una aplicación en él. Y la escalaremos y le meteremos caña, a ver qué ocurre :)
Javier Abadía Aunque no sepas cocinar, ¿a que si sabes distinguir una buena comida de una mala? Lo mismo pasa con el diseño de interfaces de usuario: no hace falta ser un especialista para reconocer errores de bulto en el diseño de UI/UX, y no hace falta ser un experto diseñador para entender las reglas básicas de un buen diseño. Conocer dichas reglas nos ayudará a ser mejores desarrolladores, a aportar nuestro granito de arena en nuestro equipo y a quitarnos ese complejo de "yo es que soy programador y de diseño no entiendo", que al final se convierte en una excusa y una limitación autoimpuesta que - en mi opinión - no tiene ningún sentido. Si tienes los fundamentos necesarios para hacer una tortilla y unas lentejas, podrás ayudar a los cocineros profesionales y apreciar mejor su trabajo. SPANISH SOFT
Modesto San Juan Siempre es divertido empezar un proyecto nuevo. Enfrentarte a la toma de decisiones incial: qué lenguaje vamos a utilizar, qué tecnologías, arquitectura, base de datos, cómo vamos a automatizar los despliegues y las pruebas… todo lo relacionado con ese momento de arranque es muy excitante, tenemos una oportunidad de dejar nuestra huella en ese software, de sentirlo nuestro y de hacerlo crecer poniendo en práctica todo el conocimiento que tenemos acumulado, tanto de éxitos como de fracasos. ¿Y qué pasa con el llamado “legacy”? Hay muchos intentos de definir qué es el software legacy, pero normalmente todas tienen una esencia similar: es ese sistema de olor rancio, que da pereza tocar, que tocas porque no te queda más remedio y lo haces con miedo. Con poco glamour, cuyas entrañas te son ajenas, con las que no te identificas a pesar de que puede que seas el artífice de la mayoría de las líneas de código que lo componen. Pero tener software legacy deberíamos verlo como algo afortunado. Lo desafortunado es desarrollar un software que no llega a salir ni al mercado o que desaparece a los pocos meses de vida. Además, los que sobreviven suelen tener el privilegio de pagar las facturas, proporcionarnos una base de usuarios y darnos el oxígeno (dinero) necesario para intentarlo otra vez con ese nuevo proyecto que nos hará recuperar la ilusión y nos hace pensar en lo bien que podríamos hacer las cosas si empezásemos de nuevo. En esta charla hablaremos de qué podemos hacer con estos desarrollos legacy para que, en lugar de querer prenderles fuego redentor, busquemos fórmulas para que puedan continuar entre nosotros creciendo y evolucionando dignamente sin que sea una tortura, incluso cuando ya se ha convertido en una. También hablaremos de cómo conseguir su muerte digna, el retiro con honores y de técnicas mixtas que nos puedan ayudar cuando tenemos la suerte de tener un software que lleva con nosotros varios años y que sus capacidades queremos que nos acompañen durante unos cuantos más.
Jaime Perera Merino El despliegue de aplicaciones dentro de contenedores en producción cada vez está más extendido y, de todas las opciones de orquestación, Kubernetes (K8s) es la que, indiscutiblemente, está ganando la batalla. Pero, si soy developer, ¿esto me importa? No debemos ver los contenedores y la orquestación de estos como algo “de sistemas”. Hay distintas razones por las que (nos) conviene saber de qué va esto. La primera razón, y posiblemente la más importante, es que el uso de contenedores nos facilita la vida durante el desarrollo y nos ayuda a mantener nuestro entorno de trabajo limpio sin tener que lidiar con la instalación de diferentes versiones del mismo software, por ejemplo. Si nuestra “aplicación” consta de diferentes servicios, tener una manera de describirlos todos y sus dependencias simplifica enormemente el arranque y parada de estos servicios, pudiendolo hacer en bloque. También hay que tener en cuenta que para que las aplicaciones puedan aprovechar todas las ventajas que Docker y Kubernetes ofrecen deben cumplir ciertas condiciones. Como developers, debemos tenerlo en cuenta a la hora de pensar la arquitectura y diseño de estas: cómo se les provee la configuración, cómo se deben comportar ante el escalado y la convivencia de versiones,... Sabemos que los distintos entornos, (local, test, staging, preproducción, producción, …) deben tener la misma configuración o podemos encontrarnos con sorpresas desagradables a la hora de desplegar. Esto, que históricamente ha sido una utopía, con los contenedores es posible. En esta charla veremos cómo podemos arrancar en local un entorno lo más similar a producción, arrancando Kubernetes en local. En nuestro sistema de CI, además de por homogeneización de entornos, también podemos sacar partido de tener nuestra aplicaciones “contenerizadas”. Veremos cómo integrar cualquier sistema de CI con Kubernetes para conseguir un Continuous Deployment real. A partir de aquí, dar el salto a Continuous Delivery es prácticamente trivial con K8s! Por si estas razones no fueran suficientes, conocer los conceptos y el entorno en los que nuestras aplicaciones se despliegan nos ayudará a comunicarnos con DevOps y atajar juntos los problemas que puedan surgir. Durante la charla veremos los conceptos básicos de K8s y cómo podemos desplegarlo en AWS con Elastic Container Service for Kubernetes (EKS) para hacer pruebas o, quién sabe, poder estar más cerca de ser un Full Cycle Developer. Si crees que salir de la “burbuja developer” será beneficioso para ti y tu proyecto, ¡no te pierdas esta charla!
Justo hemos acabado de hacer nuestra charla en la #CommitConf. Aquí tenéis la demo de la parte final que no nos ha dado tiempo a hacer ???? ????Enlaces relacionados: ???? Promo CommitConf: https://codely.tv/pro/commit-18 ⛵ Curso Event-Driven Architecture: https://pro.codely.tv/library/comunicacion-entre-microservicios-event-driven-architecture/74800/about/ ???? Subscribe: https://www.youtube.com/c/CodelyTV?sub_confirmation=1 ???? Cursos CodelyTV Pro: https://codely.tv/pro/cursos ????‍????‍????‍???? Planes para empresas: https://codely.tv/pro/teams ???? Facebook: https://www.facebook.com/CodelyTV/ ???? Twitter: https://twitter.com/CodelyTV ???? Feedback de la charla: https://www.koliseo.com/events/commit-2018/r4p/5630471824211968/agenda #/5734118109216768/5185727692275712
DAVID CHAVARRI, RUBEN CHAVARRI ¿No estáis agotados de tanta expectación en torno al blockchain? En las noticias, en el trabajo, los compañeros, los jefes... pero sigue sin terminar de convencernos. En la charla desmitificaremos blockchain y las criptomonedas, analizando qué hay realmente detrás de este espectáculo de luces y sonido. Desmontando una de las plataformas más populares en la actualidad sobre Ethereum y analizaremos las claves de su funcionamiento, sus costes y métricas. ¿Entonces qué hace al blockchain tan sexy? Descubriremos los motivos que ha provocado su popularidad. Seguro que no os dejará indiferentes. Terminaremos contrastando la realidad detrás de las aplicaciones en blockchain, cuáles son sus limitaciones, rendimiento y complejidad. Dónde están las oportunidades, cuándo tiene sentido utilizarlo y los casos de éxito que están revolucionando el mundo. Esperamos que después de la charla, nos podamos plantear el lugar que le corresponde al Blockchain.
NACHO FANJUL, JAVIER FERNANDEZ Cuando empezamos a desarrollar con Reactjs, la primera palabra que solemos escuchar es componente, que es esa pieza que tiene cierta funcionalidad y debería de ser reutilizable. Luego ya vienen los estados, que son esas cosas con las que se gestionan las propiedades del componente y ya por último los ciclos de vida del mismo. ¿A que nos referimos cuando hablamos de ciclos de vida? Un componente se crea, “fluye”, y se destruye. Para esto, Reactjs tiene un sistema de eventos que nos ayuda a gestionar la vida de este. Por ejemplo, cuando decimos que se crea, lo primero que pensamos es que el componente se va montar en el DOM, pero... ¿Dónde y cómo asignamos sus las propiedades? ¿Dónde inicializamos su estado? Y si quiero modificarlo... ¿Dónde lo puedo hacer? ¿Podríamos ver el estado anterior de las propiedades? Cuando desmontamos el componente... ¿El estado de este sigue “vivo”? ¿…? En esta sesión destriparemos los distintos ciclos de vida de un componente, así como lo que se puede y no hacer en cada uno de ellos.
José San Román Álvarez de Lara En muchos proyectos en los que participamos, nos vemos habitualmente forzados a sacrificar nuestro compromiso con la calidad y la mantenibilidad del producto que estamos construyendo en favor del cumplimiento de plazos y/o resultados. Esto, de manera sostenida, tiene un gran impacto en la velocidad de entrega de los equipos. La falta de tests unitarios o una batería de tests unitarios mal planteada provoca que el refactor de código se vaya volviendo progresivamente más difícil y más costoso. ¿Disfrutas cuando haces un refactor de tu producto? Nunca es tarde para intentar convencer a tu negocio y poner en marcha algunas buenas prácticas que te ayudarán a reducir el código legacy transformándolo en código más mantenible. En esta charla compartiré algunos conceptos y técnicas que nos ayudarán en esta tarea, como branch by abstraction, sprout method/class o wrap method/class. Hablaremos también del mayor enemigo: las dependencias. Describiré con ejemplos los que deben ser nuestros mejores aliados: los tests de caracterización y las “costuras”. Y repasaré algunas técnicas básicas de refactorización que nos ayudarán en todo este proceso como extract interface o subclass & override.