Vídeos de programación

Vídeos sobre programación y desarrollo de software.
En este estudio se presenta un modelo computacional de la retina que se encarga de transformar estímulos visuales en patrones de disparo de potenciales de acción de manera precisa. Se aborda el problema del entrenamiento de modelos neuronales de células ganglionares de la retina (RGC) así como de grupos de células ganglionares, todo ello haciendo uso de registros electrofisiológicos de ratones. De manera específica, se modelan redes neuronales convolucionales (CNN) para aprender a predecir las respuestas neuronales de RGC individuales y poblaciones de éstas ante un estímulo de ruido natural. Los modelos se han desarrollado haciendo uso de los frameworks TensorFlow y Keras para Python. Los resultados muestran que las CNN pueden ser utilizadas de manera efectiva para modelar y aprender los procesos computacionales llevados a cabo en la retina en forma de redes neuronales multicapa similares a los circuitos neuronales de la misma. La PyConES es una conferencia de tres días de duración en la que se dan cita profesionales y entusiastas del lenguaje de programación Python que difunden su experiencia en varias sesiones de charlas técnicas. Por su naturaleza, la audiencia de la PyConES procede no sólo de sectores tecnológicos como desarrollo web, Business Intelligence o desarrollo de juegos sino también del mundo académico, siendo utilizado por multitud de profesores e investigadores. ---------- ¿Y si lo escuchas mientras vas al trabajo o te pones en forma?: https://www.ivoox.com/30071900 --------- Todos los vídeos de PyconES 2018: https://www.youtube.com/playlist?list=PLKxa4AIfm4pUQX9ePOy3KEpENDC331Izi Twitter; https://goo.gl/MU5pUQ Instagram; https://lk.autentia.com/instagram LinkedIn https://goo.gl/2On7Fj/ Facebook; https://goo.gl/o8HrWX
Jorge J. “flipper83” Barroso Desde hace varios meses en los que estamos en Karumi escribiendo código en Kotlin. En estos meses hemos aprendido unas cuantas técnicas y métodos que donde a traves de los tipos reducimos los errores y hacemos el camino del desarrollo más sencillo. Los tipos están de moda y vienen para quedarse. Enseñaremos ejemplos, código, usos y casuísticas que nos hemos encontrado en nuestro desarrollo en backend o Android y como usando la 'mítica armadura tipada' resolvemos problemas clásicos del desarrollo. Además resolvermos la eterna pregunta sobre si Seiya fue el primer repartidor de Glovo.
Quique Fdez Guerra ¿Conoces TypeScript? ¿Estás trabajando con Vue? ¡Vamos a por el siguiente nivel! En esta charla vas a aprender como crear aplicaciones reales y escalables utilizando lo mejor de TypeScript y Vue, con super herramientas como Nuxt, Inversify, Vuex etc. Estar continuamente actualizando a tu equipo puede ayudar a tu producto, al mismo equipo y a los proyectos en los que trabajáis. Discutamos también sobre si necesitas o no todo esto y no lo usas porque está de moda.
JAVIER FERRER GONZÁLEZ, RAFA GÓMEZ CASAS Analizaremos los pros y contras de las distintas fases por las que podemos pasar a la hora de refacorizar un monolito en términos de arquitectura: Misma infraestructura, infraestructura independiente y comunicación vía HTTP, uso de Circuit Breakers, y una arquitectura basada en eventos de dominio. Veremos los pros y contras de cada fase en aspectos como la afectación que puede tener en todo nuestro sistema el que uno de nuestros servicios se caiga. Cómo podemos evitar que esto provoque un efecto en cascada degradando así otros servicios. La arquitectura basada en eventos es una solución que va de la mano de un nuevo conjunto de problemas al que tendremos que hacer frente: Consistencia eventual, replicación de datos, orden de los eventos no garantizado, duplicidad de eventos… Veremos algunos ejemplos de posibles soluciones a estos problemas para ser capaz de aplicar estos conceptos a nuestros proyectos más allá de la teoría. Acabaremos con una demo rápida entre 2 servicios en distintos ecosistemas a modo de ejemplo de implementación: Un servicio en PHP y otro servicio en Scala comunicándose a través de RabbitMQ.
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!