Charlas
En Codigus charlamos entre nosotros de diversos temas de desarrollo software y lo emitimos en directo en YouTube, Twitch, etc... Es un formato distendido (o a veces acalorado) y tenemos debates, contamos nuestras experiencias, intercambiamos de opiniones, ideas, enfoques ... A veces invitamos a profesionales del sector que aportan su visión y experiencia particular.
Estas charlas son idóneas para escuchar conduciendo, preparando la cena, … no requieren tu presencia frente a la pantalla. Las charlas se agrupan por temáticas en sagas.
Presentación
Presentando Codigus. Charlando un poco de todo y de nada en concreto
Charla 1: 30/10/2024
Las charlas de codigus son un lugar para intercambiar opiniones e ideas sobre el desarrollo de software. Algunas serán más desordenadas y saltaremos de un tema a otro y otras se focalizarán en un tema concreto. En algunas habrá artistas invitados a los que entrevistaremos o debatiremos con ellos. Esperamos que os aporten ideas o nuevos conocimientos para seguir mejorando en el mundo del desarrollo software. Y si no, al menos que os resulten entretenidas.
Diseño
Los 18 principios de diseño
Charla: 2: 14/11/2024
En esta charla Luis nos presenta los 18 principios de diseño para crear software mantenible que él propone después de organizar los principios de diseño propuestos por diferentes autores referentes en desarrollo de software.
Justificación de los principios de diseño
Charla: 3: 04/12/2024
En esta charla respondemos a comentarios de la comunidad y justificamos la necesidad de estos principios de diseño. Se discute y se reflexiona sobre los principios de diseño, se indican las fuentes de distintos autores justificando qué principios rechazamos por no ser propias del Diseño, por ser Técnicas/Patrones/… Buenas Prácticas pero no Principios, … Nos quedamos con el batido de todos los grandes pero jerarquizado, uniformado, minimizado, modularizado.
Debate sobre los principios de diseño
Charla: 4: 11/12/2024
En esta charla debatimos sobre la propuesta de los Principios de Diseño Software con Javier Vélez Reyes, Jose Luis Ojosnegros Manchon y José Manuel Almaza Ramiro acumulando entre todos una experiencia de más 70 años por empresas como Red Hat, Ericsson, Telefónica I+D, Iberia, UNED, Access Control Systems, BBVA
Paradigmas de Programación
Destapando los Paradigmas de la Programación
Charla: 5: 08/01/2025
En esta charla arrancamos un nuevo debate sobre los paradigmas de la programación. Confrontamos el paradigma de programación imperativa frente a la programación funcional. Y también confrontamos el paradigma de la programación orientada a procesos frente al paradigma orientado a objetos. En esta discusión aparecen aspectos sobre las funciones lambda.
Ordenado los Paradigmas de la Programación
Charla: 6: 22/01/2025
Esta charla es la segunda que dedicamos a los paradigmas de la programación. Hemos partido de las distinciones de la charla anterior entre el paradigma imperativo frente al funcional según los fundamentos del lenguaje y entre el paradigma orientado a procesos frente al paradigma orientado a objetos según el bloque constitutivo del lenguaje. Pero en esta charla hemos incorporado un paradigma más, según la concurrencia, para adentrarnos en un contexto particular pero muy extendido, dentro de peticiones a un servidor que resuelve colaborando con una capa de persistencia. Exponemos los mecanismos bloqueantes frente a los no bloqueantes y terminamos relacionando todo con la programación reactiva funcional.
Ahondando sobre los Paradigmas de la Programación
Charla 7: 06/02/2025
En charlas previas destapamos el estado del arte de los paradigmas de programación: Paradigma imperativo vs declarativo, funcional vs lógico, orientado a procesos vs orientado a objetos, objeto-función vs función lambda. Posteriormente ordenamos otros asuntos de los paradigmas de la programación: secuencial vs concurrente, callbacks vs promesas vs asíncronas, etc. En esta charla hemos seguido profundizando en los paradigmas de la programación: hemos terminado con el paradigma concurrente con los GreenThreads y hemos retomado el origen de la conversación con aspectos como los clousures. Aunque como siempre, acabamos divagando y hablando de xml, sistemas de tipos, procesos de desarrollo, … por culpa de un comentario inicial con la regla 5+5+5! Eso pasa por charlar! ;-)
Replanteando los Paradigmas de la Programación
Charla 8: 20/02/2025
En esta charla arrancamos ordenando un poco todo el camino recorrido: los dos paradigmas según el fundamento matemático (imperativos vs funcional), según la organización (orientada a procesos + datos vs orientado a objetos) y según la concurrencia (secuencial y paralelo). Luego hablamos del contexto de aplicación de la programación funcional concurrente y evaluamos su influencia en los lenguajes imperativos a través de diversos mecanismos (correspondencia de patrones, funciones de orden superior) y sus ventajas y desventajas y su docencia y … charlamus!
Concluyendo los Paradigmas de la Programación
Charla 9: 07/03/2025
En esta charla se habla de diversos aspectos de los paradigmas, pero también de la enseñanza de la programación: Python vs R, concurrencia en Java con los los green threads (otra vez), programación reactiva funcional… y se anticipan las siguientes charlas de la saga de programación: Go, Rust, Scala.
Programación
Lenguaje de programación Go
Charla 10: 19/03/2025
En esta ocasión contamos con la presencia de Pablo Fuente para charlar sobre el lenguaje de programación Go. Presentamos el contexto histórico (quién, cuándo, dónde, …) para luego repasar las distintas características del lenguajes según distintas dimensiones (nivel, traducción, tipado, fundamento, organización y concurrencia).
Lenguaje de programación Scala
Charla 11: 02/04/2025
En esta ocasión contamos con la presencia de Juan Manuel Serrano para charlar sobre el lenguaje de programación Scala. Presentamos el contexto histórico (quién, cuándo, dónde, …) para luego repasar las distintas características del lenguajes según distintas dimensiones (nivel, traducción, tipado, fundamento, organización y concurrencia).
Lenguaje de programación Rust
Charla 12: 16/02/2025
En esta charla presentamos el contexto del lenguaje Rust: quién, dónde, cuándo, por qué, … Para posteriormente atravesar distintos aspectos sobre su nivel, traducción, fundamento, organización y concurrencia para destacar sus aspectos más particulares: shadowing, dyn, macro_rules. Para hacerlo contamos con Rafael (ereslibre) Fernández López y Fernando Nicolás Pastorelli Decillis.
Despliegue
Despliegue, poniendo el código en manos de los usuarios
Charla 13: 30/04/2025
El código adquiere su verdadero valor cuando llega a los usuarios finales. En esta charla, exploramos las estrategias y herramientas clave para llevar aplicaciones desde el entorno de desarrollo hasta la producción de manera eficiente y segura. Ya seas desarrollador, ingeniero DevOps o gestor de proyectos, esta charla te proporcionará una visión integral sobre cómo optimizar el proceso de despliegue y asegurar que tu código impacte positivamente en los usuarios.
Empaquetado y despliegue de apps: Nube, Docker y Kubernetes
Charla 14: 14/05/2025
Cada vez es más importante que las aplicaciones web sean escalables y tolerantes a fallos, para atender las demandas de una base de usuarios cada vez más grande, pero usando los mínimos recursos de cómputo que sean necesarios. La tecnología ha evolucionado mucho en este área en los últimos años, primero con los proveedores de computación en la nube, y posteriormente con la estandarización del empaquetado, distribución y despliegue de aplicaciones basadas en Docker y Kubernetes. En esta charla contamos con Laura Morillo-Velarde, que gracias a su amplia experiencia como desarrolladora backend nos desvelará los secretos de estas tecnologías y cómo se usan en la industria.
Integración, entrega y despliegue continuo
Charla 15: 28/05/2025
En esta charla profundizamos en la automatización de los procesos que permiten que una actualización del software llegue a manos de los usuarios de forma automática y con garantías de calidad. Todos estos procesos, conocidos como integración, entrega y despliegue continuo, son esenciales para que las nuevas funcionalidades y las correcciones de errores lleguen a los usuarios en cuanto estén disponibles, sin tener que esperar semanas o meses. Es un área que se ha desarrollado mucho en los últimos años, con tecnologías, herramientas y buenas prácticas que aparecen cada día.
Microservicios: Cuando la arquitectura y el diseño llegan al despliegue
Charla 16: 11/06/2025
En esta charla hablaremos de la arquitectura basada en microservicios, un estilo de diseño de software en el que una aplicación se construye como un conjunto de servicios pequeños, independientes y desplegables de forma autónoma, que se comunican entre sí a través de red y que tienen su propio sistema de persistencia. Su principal ventaja consiste en el máximo desacoplamiento de los servicios ya que pueden implementarse en tecnologías diferentes, con ciclos de actualización diferentes, y por diferentes equipos de desarrollo. Pero el precio a pagar puede ser demasiado alto, así que sólo debería usarse cuando sea realmente necesario.
Despliegue de decenas de aplicaciones web con Kubernetes
Charla 17: 25/06/2025
Kubernetes ha supuesto una revolución en el despliegue y administración de aplicaciones distribuidas que necesitan escalabilidad y tolerancia a fallos. Pero también tiene sus ventajas cuando se usa para desplegar aplicaciones web “básicas”. En esta charla hablamos sobre un caso real de implantación de Kubernetes para modernizar el despliegue de decenas de mini-aplicaciones web en la Universidad Rey Juan Carlos. Contaremos con dos de los protagonistas de esta experiencia, Ana María García (sysadmin) y Diego Montoto (desarrollador). Nos contarán de primera mano cómo pasaron de un despliegue tradicional (con varios servidores virtualizados en los que se desplegaban varias aplicaciones PHP en un servidor web Apache, dificultando la actualización de la versión de PHP de forma independiente para cada aplicación) a un despliegue basado en Kubernetes. El cambio mejoró la flexibilidad, seguridad, escalabilidad y tolerancia a fallos, pero no estuvo exento de problemas y no resultó gratis.
Cierre Temporada 1 (2024-25)
Meta-codigus
Charla 18: 09/07/2025
En esta charla, titulada meta-codigus, cerramos el año académico. Charlamos sobre el significado de “meta” y luego charlaremos sobre las charlas pasadas y futuras, como mejor ejemplo de meta-charla ;-) Charlamos sobre quiénes somos, solo veis a dos y algunos invitados, pero hay más y merecen justa pleitesía. Charlamos sobre qué hemos logrado a pesar de los defectos de Mica y de Luis. Charlamos sobre qué mejoras barajamos para el futuro a corto plazo, ya mismo, a medio plazo, para septiembre, y a largo plazo, para 2026!!!
Fundamentos del desarrollo del software
¿Qué es la recursividad?
Charla 19: 23/07/2025
En esta charla hablamos sobre qué es la recursividad. Tratamos de escapar de la parcial, sesgada, inexacta, castradora, … y muy extendida definición de que recursivo es cuando una función se llama a sí misma!!! Profundizamos en la recursividad mostrando ejemplos de esta en la naturaleza, en la vida cotidiana, en los juegos, en el arte, en las matemáticas, en los lenguajes, en la biología, en la psicología, en la filosofía, en la lógica, desde los inicios de los fundamentos de la computación, … hasta incluso en el hardware.
¿Dónde está la recursividad en la computación?
Charla 20: 06/08/2025
En esta charla conversamos sobre la recursividad circunscrita al área de la computación. Una vez más revisamos la recursividad más allá de “la función que se llama a sí misma” y analizamos su presencia desde el hardware, pasando por los fundamentos (lógica, lingüística, matemática), en los lenguajes de programación, en el diseño de algunos principios y patrones de diseño y hasta en las pruebas. Discutimos las propuestas de ACM para la conformación de los planes de estudio que presentan el árbol de conocimiento del área: por un lado, en profundidad, para alcanzar la formación de expertos/especialistas. Por otro lado, en amplitud,para la formación generalista.
¿Cómo encontrar la recursividad en la programación?
Charla 21: 20/08/2025
En esta charla abordamos la recursividad en el diseño de algoritmos recursivos. Hablamos sobre el método de diseño de estos algoritmos basado en la naturaleza recursiva del caso inductivo sobre la aplicación de los valores de entrada en un grado menos, tendiendo hacia el caso base, sin seguimientos. En base a este método mostramos una clasificación de distintos esquemas recursivos: recursividad lineal, recursividad múltiple, recursividad mutua y recursividad de cola.
¿Qué es meta?
Charla 22: 03/09/2025
En esta charla hablamos sobre meta: meta-dato, meta-información, meta-lenguaje, meta-modelo, meta-programación, meta-heurísticas, meta-charlas… pero no de meta-verso. Llegamos a la conclusión de que hay varios niveles de meta… algunos más débiles y otros más fuertes, dependiendo de cómo sea la referencia al concepto “sobre sí mismo”. También comentamos sobre la relación de meta con la auto-referencia y la recursividad. En esta charla no hay duda: no tenemos ni idea, más allá del “conocimiento general” y la intuición. Es decir, cumplimos el objetivo con el que empezamos codigus: disfrutar de una charla con un buen amigo.