Metodologías ágiles. De lo racional a la inspiración.

Agile Fluency Model en castellano

enero 17, 2025 02:01

He publicado el modelo de fluidez ágil en castellano. Este modelo desarrollado por James Shore y Diana Larsen proporciona una interesante perspectiva sobre el camino al agilismo por los equipos. Modelo de fluidez ágil.Además, encaja muy bien con el diseño de equipos, y las topologías de equipos.O el diseño organizacional.

» Leer más, comentarios, etc...

Metodologías ágiles. De lo racional a la inspiración.

Scrum master a tiempo completo: 42 Tareas

enero 17, 2025 01:48

Uno de los artículos que más referencio en mi formación en Scrum cuando hablo de las labores del Scrum Master es: 42-tasks-for-a-scrum-masters-job. Por alguna razón, todo el mundo parece entender que el Product Owner es un trabajo a tiempo completo, o ser miembro de un equipo también, pero que probablemente el rol del Scrum Master puede ser realizado a media jornada o incluso menos. El scrum

» Leer más, comentarios, etc...

Picando Código

Nintendo Switch 2

enero 16, 2025 06:18

Hoy Nintendo presentó el sucesor del Nintendo Switch, con el nombre de Nintendo Switch 2.

YouTube Video

A simple vista parece una simple iteración del original. Seguramente tenga mejor pantalla, más memoria, más procesador, más gráficos, etc. Pero no dudo que haya algo más, Nintendo siempre agrega un toque extra de creatividad. Está agendada una presentación para el 2 de abril, donde veremos más información y probablemente algunos de los juegos confirmados. De repente es una simple iteración de hardware porque el Switch se estaba quedando viejo, y dentro de 4 años aparecen con otra cosa nueva realmente creativa e inesperada.

El nombre es bastante interesante dada la historia de Nintendo y sus consolas, manteniendo la marca "Switch". En vez de un "Super", "New", o "U", el 2 deja totalmente claro que se trata de una iteración del original. El Nintendo Switch ha vendido millones y la marca tiene muchísimo reconocimiento. Como en las épocas en que "Nintendo" se podía referir a cualquier consola de videojuegos. Lo mismo pasó con el Game Boy y sus iteraciones "Color" y "Advance". Es bueno que hayan aprendido del "Wii U", que después de la presentación me preguntaba si era un accesorio para el Wii o una consola nueva. ¡Y el nombre no aclaraba!

En la época del Nintendo 64, el Super Nintendo todavía se seguía vendiendo. Para diferencias los sistemas, muchos juegos ponían el 64 en el título como Mario Kart 64, Star Fox 64. Esto evitaba la confusión con "Star Fox" o "Super Mario Kart" en Super Nintendo. Con el 2 es más difícil, porque nada dice que "Super Mario Odyssey 2" sea exclusivo para Nintendo Switch 2 y no funcione en Nintendo Switch original.

Para alguien que "está en el tema" no es un problema muy grande, pero de las millones de personas que compran Switch y juegos, muy pocas "estamos en el tema". De repente el paquete de los juegos para Switch 2 cambia dramáticamente en relación al original para diferenciar los juegos. Veremos qué pasa.

Lo más importante de las consolas Nintendo son los juegos, y por ahora no sabemos mucho más que un Mario Kart nuevo. Se ve bastante bien, me dió la impresión como de menos caótico los vehículos. El plano general final de lo que vemos de gameplay es bastante abierto, de repente sugiere una "openworldización" de Mario Kart, o pistas con más atajos y líneas alternativas.

Por lo que se ve en la línea de arranque de la carrera en el video, habrían 24 corredores, lo cual aumenta el caos y la diversión. Donkey Kong se ve distinto, ¿o será Donkey Kong Jr. como en Super Mario Kart?  Por ahora sólo puedo especular, pero el juego seguro va a tener un diferencial que lo haga distinto a los anteriores, más allá de mejores gráficos y pistas y personajes distintos.

Mario Kart - Nintendo Switch 2

Mario Kart - Nintendo Switch 2

Nintendo Switch 2 va a ser compatible con los cartuchos de Nintendo Switch y el software digital. Esto fue confirmado hace poco por Nintendo, pero personalmente me alegra mucho. Interesante jugar alguno de los títulos más exigentes como Tears of the Kingdom en la nueva consola y ver si mejora un poco el rendimiento. Además quiero seguir jugando mucho de los juegos que tengo en Switch ahora. ¿Los Switch originales pasarán a juntar polvo cuando salga el 2?

Espero que los controles de Switch también sean compatibles con Switch 2. No me molesta si los Joy Con no funcionan, no es que los use mucho. Pero al menos el Pro Controller (aunque el d-pad sea una desgracia), así no nos obligan a comprar otro Pro Controller 2.

Ahora que tenemos anuncio oficial, imagino que empezaremos a ver anuncios de juegos de terceras partes para Switch 2. En cuanto a juegos de Nintendo, Metroid Prime 4 potencialmente sea publicado en ambas consolas como pasó con The Legend of Zelda: Breath of the Wild en Switch y Wii U. Sin duda habrá un Mario nuevo, Zelda, y ojalá hagan algo bueno con Star Fox.

Fue una presentación de la nada, con poco ruido, y un poco decepcionante en el sentido que no muestra mucho nuevo. Los "avances" de hardware que vemos en el video perfectamente podrían aplicar al Switch. Así que esperaré a la próxima presentación en Abril para ver qué más ofrece.

Mientras tanto, me voy a jugar Donkey Kong Country Returns HD...

El post Nintendo Switch 2 fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Variable not found

Enlaces interesantes 592

enero 14, 2025 07:05

Enlaces interesantes

Tras el parón navideño, volvemos a la carga con la primera recopilación de 2025 🙂

Bueno, la frase anterior no es del todo cierta. Por una parte, aunque haya dejado de publicar durante un par de semanas, no he dejado de recopilar enlaces, así que esta edición es especialmente extensa: más de 90 enlaces. Y por otra parte, en realidad sería la segunda recopilación, si contamos la revisión de los contenidos más vistos del blog durante el pasado año que publiqué ayer 😊

Pero bueno, al tema...

Es difícil destacar algo en concreto ante tanto contenido, pero quizás me quedo con el post "The Myth of Perfect Code: Why It’s Hurting You More Than Helping", donde Terrance Craddock reflexiona sobre lo que deberíamos considerar "código perfecto".

También me voy a quedar con algo que, por diferente, me ha llamado la atención: "Unique Solving Method for Rubik's Cube", un método para resolver el cubo de Rubik presentado de forma muy visual. Si sois de los que en los 80 pasasteis horas intentando resolverlo, seguro que como mínimo os resultará curioso 🙂

Por si te lo perdiste...

.NET Core / .NET

ASP.NET Core / ASP.NET / Blazor

Azure / Cloud

Conceptos / Patrones / Buenas prácticas

Data

Machine learning / IA / Bots

Web / HTML / CSS / Javascript

Visual Studio / Complementos / Herramientas

.NET MAUI / Mobile

Otros

Publicado en Variable not found.

» Leer más, comentarios, etc...

Picando Código

Hispa-Emacs Conf

enero 13, 2025 06:00

Hispa Emacs Conf 2025

El viernes 17 y sábado 18 de enero se realiza la Hispa-Emacs Conf. ¿Qué es Hispa Emacs?

Somos entusiastas de Emacs en particular (y del mundo GNU+Linux en general) en el ámbito de habla hispana: nos encontramos cada primer viernes de mes. La mejor forma de permanecer al día sobre las actividades via nuestras herramientas de chat. Te apetece contactar con nosotros? … acercate, presentate y súmate a la conversación!

Hispa Emacs Conf va a constar de 2 Jornadas de Microtalleres online de 15/30 min. ~ HORARIOS referidos en base a CET : p.ej.: 18h en Madrid = 14h en Buenos Aires

Coordinación de las jornadas en el canal de chat IRC #emacs-es ( Libera.chat server )

¿ Dónde ? : acá nos encuentras, en la Sala Video ~~~ cortesía de la Oficina del Software Libre de la Universidad de Zaragoza

17 de Enero - Día 1

  • 18h CET “Apertura y bienvenida “
  • 18:15 CET “La Comunidad** GNU Emacs - retrospectiva** : Orígenes - Pasado, Presente y Futuro ?” (by Servio)
  • 18:45 “CET Distribución** Emacs Lloica:** Desde el sur del mundo una configuración especial para programadores y proyectos pedagógicos.. “ (by David Pineiden)
    https://gitlab.com/pineiden/lloica-emacs
  • 19:30 CET “Convierte Emacs en tu IDE para programación” (by jpa)

18 de Enero - Día 2 :

Para más información: hispa-emacs.org y en el Fediverso les sigo en @hispaemacs@fosstodon.org.

El post Hispa-Emacs Conf fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Variable not found

Top posts 2024 en Variable not found

enero 13, 2025 07:37

Top Posts 2024 en Variable Not Found

Pues sí, se acabaron las fiestas y aquí estamos de nuevo, volviendo a la rutina. Con el 2025 recién estrenado, ante todo, me gustaría aprovechar la ocasión para desearos que sea un gran año en todos los sentidos🙂

Y para empezar con buen pie, vamos a seguir la tradición de aprovechar este primer post para hacer un breve recopilatorio de los artículos más leídos el año anterior, con idea de que podáis descubrir contenidos que quizás os habíais perdido, reencontraros con algo que os interesó en su momento, o simplemente ver qué contenidos están llamando más la atención al resto de lectores del blog.

Top 10 posts 2024 en Variable Not Found

En décimo lugar, inaugurando el top ten de 2024 tenemos una llamada de atención: el artículo "¡No uses ContainsKey() en un diccionario .NET para ver si existe un elemento antes de obtenerlo!" muestra el impacto en el rendimiento de la doble búsqueda (una para ver si existe el elemento y otra para obtenerlo) y cómo podemos solucionarlo fácilmente con las herramientas que proporciona el propio framework.

Seguidamente, en el noveno puesto de la lista, respondemos a una pregunta bastante habitual cuando empezamos con ASP.NET Core: ¿por qué mi aplicación no arranca? En el artículo "No se puede conectar al servidor web 'https', el servidor web ya no funciona y otras pistas de que no has lanzado correctamente tu aplicación ASP.NET Core", además de la respuesta, veremos otros síntomas que nos pueden ayudar a identificar el problema. Spoiler: has olvidado incluir el app.Run() al final del código de inicialización 😉

Curiosear el interior del código fuente de .NET es algo que a casi todos nos ha interesado en un momento dado. Y aunque los IDEs actuales lo ponen bastante fácil, no viene mal saber que existe source.dot.net, un sitio web que nos permite explorar y navegar por el código fuente de .NET de forma sencilla. Lo describimos en el post que ocupa el octavo puesto de la lista: "El código fuente de .NET, muy a mano".

A algunos aún nos cuesta trabajo introducirlos de forma natural en nuestro código (es normal, llevamos lustros haciéndolo de la forma clásica), pero indudablemente los constructores primarios han venido a C# para quedarse, y iba siendo hora de echarles un vistazo. El post "Constructores primarios en C# 12" lo encontramos en la séptima posición de la lista y nos muestra cómo funcionan, cómo se definen y cómo podemos sacarles partido en nuestros desarrollos.

El modificador param de C# es una característica que llevaba con nosotros desde el principio de los tiempos, haciendo posible el envío de un número arbitrario de parámetros a métodos que los recibían como arrays. En .NET 9 se ha mejorando considerablemente su uso, permitiendo la utilización de prácticamente cualquier tipo de colección, lo que abre la puerta a determinadas optimizaciones y mejoras en el rendimiento. Justo empatado con el anterior, ocupa también la séptima posición del top ten encontramos el post "Soporte para colecciones en parámetros param de .NET 9" donde lo exploramos en detalle.

Comer las uvas de fin de año, procesar grandes cantidades de datos y seguro que otros lances de la vida tienen el mismo problema: si no lo hacemos poco a poco, acabaremos atragantados 😉. Probablemente por eso, en sexto lugar encontramos el artículo "Procesar secuencias por lotes, o cómo usar chunks en C#", donde echamos un vistazo distintas técnicas para procesar colecciones por lotes, básicamente troceándolas en secuencias de datos más pequeñas y digeribles, desde implementaciones manuales hasta el uso del nuevo método Chunk() de LINQ.

Otro de los posts más leídos del año ha sido "Registro y obtención de servicios con nombre (keyed services) en .NET", ocupando la posición central de la clasificación. En este artículo presentamos los keyed services, una novedad de .NET 8 que nos permite registrar servicios con un nombre asociado y recuperarlos posteriormente por ese nombre. Una característica muy útil en determinados escenarios, como la implementación de factories o la gestión de servicios de forma dinámica.

Entre las novedades de .NET 9, encontramos el nuevo método Task.WhenEach(), que permite gestionar conjuntos de tareas de forma más eficiente cuando usamos paralelismo. Con él, ya no será necesario esperar a que todas las tareas acaben para poder procesar sus resultados, podremos hacerlo confirme éstas vayan finalizando. Lo vemos en el post que ocupa la cuarta posición, "Task.WhenEach() en .NET 9: Procesa tareas conforme se van completando".

También ha destacado la llegada de HybridCache, el nuevo sistema de caché híbrida de .NET 9, subiendo hasta la tercera posición de la clasificación. En el post "HybridCache, la nueva caché híbrida de .NET 9" descubrimos cómo funciona, sus características y cómo podemos usarlo en nuestras aplicaciones. También ha sido muy visitando, aunque no lo suficiente para entrar en el top ten, el post muy relacionado "Mejora el rendimiento de HybridCache mediante la reutilización de objetos".

Las entradas de la serie C# bizarro son unas de las que más me divierte escribir, porque exploramos la flexibilidad de C# y .NET para llevar nuestro código a extremos aberrantes, y plantearlas a modo de adivinanza creo que le añade algo de maldad. Y por número de visitas, parece que también os llaman bastante la atención, porque ya en el segundo puesto de la lista encontramos el quinto episodio de la serie "C# bizarro, episodio 5: ¿cuál es la salida de este código?", en el que nos enfrentamos a un código que, a simple vista, parece sencillo, pero que esconde una trampa que nos puede llevar a un resultado inesperado. Además, si queréis ver otros divertidos posts de la serie, podéis encontrarlos en este enlace.

Y, finalmente, coronando el ranking tenemos un artículo que muestra cómo poner un poco de orden a los GUIDs, esas caóticas y desordenadas secuencias que letras y números que solemos usar como identificadores únicos. En el post "Creando GUIDs con orden natural en .NET 9" descubrimos qué son los UUID/GUID versión 7, sus características de secuencialidad y orden natural y, cómo generarlos desde .NET 9, aunque tengan alguna trampilla oculta.

¡Esto es todo! Espero que este repaso os haya sido de utilidad y, una vez más, espero que tengáis un gran 2025, y que sigamos viéndonos por aquí. 

¡Hasta pronto!

Publicado en: www.variablenotfound.com.

» Leer más, comentarios, etc...

Juanjo Navarro

Postgres Sandbox

enero 12, 2025 07:42

Interesante utilidad para diseñar una base de datos dialogando con un LLM: Postgres Sandbox.

Es además una genial aplicación de la base de datos pglite (postgres ejecutándose completamente en el navegador) de la que ya hablé en mi último artículo.

» Leer más, comentarios, etc...

Picando Código

The Rubber-Keyed Wonder - 40 de Sinclair ZX Spectrum

enero 09, 2025 11:00

En 2022 cumplió 40 años la computadora Sinclair ZX Spectrum, lanzada en abril de 1982. Fue una de las computadoras más influyentes de la historia, vendiendo en su momento millones de unidades y acercando a mucha gente a la computación por primera vez. Tuvo un protagonismo fundamental en el nacimiento de la industria de los videojuegos en Gran Bretaña en la década de los 80. La diseñó el inventor inglés Clive Sinclair junto al equipo de Sinclair Research en Cambridge, Inglaterra y era fabricada en la ciudad de Dundee en Escocia.

 The Rubber-Keyed Wonder - 40 Years of the ZX Spectrum Documental

Con motivo de este aniversario se realizó el documental "The Rubber-keyed wonder" (la maravilla de teclas de goma). El documental se financió a través de una campaña en Kickstarter y fue producido por Nicola Caulfield y Anthony Caulfield. La pareja ha producido unos cuantos documentales sobre la historia de los videojuegos como From Bedrooms to Billions, The Amiga Years y sobre las revistas CRASH & ZZAP!64, entre otros.

Tras el éxito en Kickstarter, está disponible en formato físico en Blu-Ray y DVD en tiendas, al menos acá en Escocia. La edición especial que me compré incluye una tapa muy buena con arte de Oliver Frey, artista de la revista CRASH, un librito extra y un disco adicional con 3 horas más de contenido.

Es un muy buen documental, me resultó muy interesante aprender de la historia de Sinclair y escuchar de la gente que fue parte. Empieza presentando un poco a Clive Sinclair y sus inventos que fueron pasando de calculadoras de bolsillo a relojes de pulsera electrónicos y televisores portátiles. En un mercado dominado por las marcas de computadoras Estadounidenses: Atari, Commodore y Apple, buscó crear una computadora con costos muy bajos para que fuera accesible a la mayor cantidad de gente posible, y lo logró. Intentaba siempre obtener los componentes y tener las fábricas localmente, lo que ayudó a su adopción.

La predecesora de la Spectrum fue el kit de computación MK14. Se lanzó en 1977 a un precio de £ 39,95, extremadamente barata para una computadora en ese momento. El kit permitía al usuario armar la computadora, involucrándole en el proceso de ensamblado, generando una conección más directa con el dispositivo. En 1980 se lanza una de las primeras computadoras disponibles por menos de £ 100, Sinclair ZX 80. Estaba disponible ensamblada por £ 99,95 o como kit para armar a £ 79,95. A pesar de las limitaciones de hardware, ya permitía que la gente creara sus propios juegos y los compartiera en cassettes de cinta magnética (los mismos que se usan para música). Le siguió la ZX81, y eventualmente se decidieron a diseñar una computadora con color, sonido y más.

Inicialmente la nueva computadora de Sinclair se conocía internamente como ZX Rainbow, pero se cambió el nombre a ZX Spectrum. Su diseño es sumamente reconocible, de color negro para contrastar el beige usado en el momento para computadoras "de negocios", el característico arcoiris y las teclas de "goma". Fue un éxito absoluto y cambió el panorama de la computación y los videojuegos.

Además de llevarnos a un viaje por la historia de este universo creado alrededor de Sinclair, aprendemos de varios elementos que lo caracterizaban. Las pantallas de carga, las revistas, los accesorios, y muchos de los apasionados que dejaron el rol de jugador para crear juegos y desarrollar una carrera en base a eso. Hay entrevistas a varios desarrolladores, quienes crearon títulos como Saboteur, Manic Miner, Ant Attack y más. Comparten anécdotas, detalles de implementación, y otras historias interesantes. También aparecen entusiastas y varios de los empleados, diseñadores e ingenieros involucrados en esta revolución.

Hubieron varias sucesoras de la ZX Spectrum pero ninguna consiguió el mismo éxito. Su popularidad también dio lugar a muchos clones. En el documental se mencionan versiones producidas en Rusia, Italia, Egipto, Brazil y Argentina. En Uruguay recuerdo escuchar nombrar a la TK-90, que seguro se refería a la TK-90X clon de la Spectrum ZX desarrollado por la empresa Microdigital (mencionada en el documental) en Brasil. Por lo que explican en Brasil había una ley que no permitía importar computadoras, así que se armaban sus propias versiones. También hablan sobre la piratería y cómo en algunos países era la norma.

Varios de esos clones están disponibles en el museo LOAD ZX SPECTRUM en Cantanhede, Portugal. El museo aparece en la película y hasta tenemos algo así como un tour virtual, pero ya lo agregué a mi lista de lugares para ir si visito Portugal.

La computadora tuvo tanto impacto que aún 40 años más tarde sigue habiendo una comunidad entorno a ZX Spectrum. Incluso existe una versión moderna totalmente compatible con software y hardware original: Spectrum Next. Fue diseñada por el diseñador industrial original de Sinclair, Rick Dickinson y su socio Phil Candy. Es una muy linda máquina, pero difícil de conseguir.

El documental es entretenido, recomendado a cualquier persona interesada tanto en la computación como los videojuegos. Demás mencionar a quienes crecieron con su Spectrum, TK-90X o similar, que imagino ya estarán averiguando dónde conseguirlo. El disco con contenido extra incluye entrevistas a varios desarrolladores de títulos importantes de la época, así como detalles sobre varios eventos de la historia de ZX Spectrum como la pelea entre Clive Sinclair y Chris Curry. Vale la pena, particularmente interesante escuchar a desarrolladores que entran en detalles de implementación de juegos o cuentan anécdotas personales del momento.

YouTube Video

El post The Rubber-Keyed Wonder - 40 de Sinclair ZX Spectrum fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Navegapolis

El pensamiento de grupo es un enemigo silencioso

enero 07, 2025 06:41

Cuando tratáis temas en tu empresa, ¿asumís la opinión del “jefe” o la de la mayoría, sin plantear dudas o alternativas?
Si no discrepáis por no romper el “buen ambiente”, es posible que estéis desarrollando “pensamiento de grupo”.

El pensamiento de grupo se produce en las organizaciones que prefieren la conformidad a la diversidad de ideas.

¿Esto es un problema, o todo lo contrario? Que las reuniones sean breves y sin conflictos parece ideal para la productividad. Sin embargo la falta de debate y la ausencia de ideas alternativas, suele producir decisiones basadas en premisas que no se han analizado lo suficiente y, por tanto, sesgadas.

No se trata de “armar broncas” sino de confrontar las ideas —no las personas— con respeto, escucha activa de todas las opiniones y mente abierta para descubrir riesgos, refinar las propuestas y dejar la puerta abierta a la innovación.
Tampoco se trata de discrepar por discrepar, sino de poner en común enfoques diferentes, conocimientos y experiencias para reforzar la solidez y el valor de las soluciones alcanzadas.
Se trata de lograr la “inteligencia colectiva”. Algo que surge de la colaboración, la diversidad, la retroalimentación constructiva y la búsqueda de soluciones que superan a la suma de las capacidades individuales.

Para conseguir “inteligencia colectiva” hay técnicas que abren el abanico de la conversación. Por ejemplo invitando a cada miembro del equipo a compartir su opinión sin que nadie le interrumpa; proponer rondas de retroalimentación en las que se deban aportar tanto pros como contras; rotar el rol de moderador para que no sea siempre la misma persona la que conduzca las discusiones; nombrar en cada reunión a un miembro con el papel de “abogado del diablo”, etc. pero la clave para que promuevan la inteligencia colectiva y no broncas y enemistades es desterrar el modo “mi-idea-es-la-buena”.

Cuando todo el equipo se siente cómodo exponiendo sus puntos de vista, se genera una dinámica de aprendizaje común y las opiniones no se imponen sino que se pulen y enriquecen.

La entrada El pensamiento de grupo es un enemigo silencioso se publicó primero en Navegápolis.

» Leer más, comentarios, etc...

Picando Código

Astigmatismo 2.0

enero 06, 2025 06:00

Astigmatismo

Aprendí que tenía astigmatismo allá por 2008 (qué jóvenes éramos). Desde entonces vengo usando lentes para trabajar, leer (tanto en papel como en pantalla), usar la computadora, mirar películas, jugar videojuegos y demás. Acá en Escocia, al estar en el sistema de salud pública, tenemos examen de vista gratuito. Cada 2 años la óptica nos avisa que es hora de hacer un examen nuevo para ver cómo viene progresando nuestra visión.

Tengo entendido que podemos ir a cualquier oculista autorizado por NHS Scotland a hacernos el examen, y obtenemos la receta para los lentes, en caso de ser necesarios. Esa receta la podemos llevar a cualquier óptica y comprar lentes donde sea. No me acuerdo cuántas veces tuve que cambiar los lentes en Uruguay, pero al menos una vez seguro. Desde que me mudé a Escocia van 2 o 3 veces (los años no vienen solos...). En 2022 había tenido mi último examen de la vista, y la receta de mis lentes seguía vigente, no necesitaba actualizarlos.

Más recientemente empecé a notar cómo leyendo se me cansaba la vista más rápido que antes. A veces me costaba enfocar, sobretodo en momentos que pasaba leyendo mucho rato. En noviembre de 2024 tocó nuevo examen de la vista, te avisan con un mensaje de texto y/o correo electrónico. Así que me anoté y fui preparado mentalmente a tener que actualizar mis lentes nuevamente.

En la óptica ofrecían un examen extra que no está cubierto por la salud pública, y cuesta £ 10. Ya que estaba ahí, aproveché y lo acepté. Le sacan fotos al interior y la parte de atrás del ojo, entre otras cosas para detectar potencial glaucoma si entendí bien las explicaciones de las expertas. La oculista observó los resultados conmigo y me comentó que todo se veía muy bien, muy sano, y elogió el valor de la simetría de mis ojos, me dijo que era un valor excelente. Ahí tengo algo para agregar a mi perfil profesional online, "excelente simetría ocular, elogiada por profesionales".

El examen de la vista dio que mi astigmatismo había cambiado. Una explicación que me dio la oculista sobre el astigmatismo es que la córnea en vez de tener forma de pelota de fútbol, tiene forma de pelota de rugby. Parece que en estos años cambió esa forma, y el astigmatismo es diferente. No digo "peor", porque así fue como me lo explicaron.

Lo particular de este cambio fue a la hora de ir a levantar mis lentes nuevos. Estuve trabajando con mis lentes anteriores toda la mañana, y fui a la óptica al mediodía a levantar los nuevos. Cuando llegó el momento de probarlos, no se sentían bien. Se sentían incómodos, como que me costaba enfocar del todo y mis ojos se estaban esforzando más. En comparación, al ponerme mis lentes anteriores mis ojos se sentían instantáneamente más cómodos y veía automáticamente mejor.

La persona que me estaba entregando los lentes arregló para que pudiera hablar con una oculista, para ver cuál era el problema. Esta me explicó que cuando hay un cambio en el astigmatismo, es común que en el cambio de lentes sintamos un poco de incomodidad al princpio. Me explico: "es normal que se sienta como que estamos usando los lentes de otra persona". Y eso describe exactamente mi sensación inicial. Me recomendó que me los llevara, y no los usara durante el día si ya había estado usando mis lentes anteriores. Que los empiece a probar al día siguiente ni bien salga de la cama, recién despierto y con los ojos descansados. Seguí su consejo y problema resuelto. Al usar únicamente los lentes nuevos desde el principio del día, se fueron las preocupaciones. Se sienten cómodos y veo mejor.

Comentario tangente que me resulta interesante es hacer cosas cotidianas como ir al oculista y hablar todo en inglés. A pesar de que hace años que vivo en Escocia todavía me sigue pareciendo un poco surreal cuando lo pienso. Más interesante todavía es que la doctora que me atendió hablaba inglés perfecto, pero no era su lengua materna. El inglés es un lenguaje súper roto, y sin embargo lo aprendemos, manejamos y logramos comunicarnos. Pero de repente el tema del idioma está para escribir más en otro momento...

Sigo atado al uso de lentes hasta que inventen ojos biónicos o algo. Como la vez anterior que hablé de astigmatismo, recomiendo consultar con su oculista de confianza. Nada como ponerse los lentes y ver en alta definición cosas que antes se veían (aunque sea mínimamente) borrosas 🤓

El post Astigmatismo 2.0 fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Navegapolis

Dunning-Kruger en la política

diciembre 31, 2024 03:59

Los políticos necesitan conquistar votos elaborando y “vendiendo” sus propuestas, y es ahí donde el fenómeno psicológico conocido como efecto Dunning-Kruger puede jugar un papel determinante. Esta fenómeno revela que quienes poseen menos habilidades o conocimientos en un área específica suelen sobrestimar su propia competencia, mientras que quienes son más competentes tienden a dudar de sí mismos. Esto, en el escenario político, tiene consecuencias preocupantes.

Por un lado, los candidatos menos preparados pueden exhibir seguridad con aplomo y confianza. Hablar con rotundidad y proyectar una imagen de liderazgo que persuade a muchos votantes. En este caso, el exceso de seguridad es en realidad consecuencia de desconocer lo mucho que se desconoce, pero por el aplomo que da la ignorancia de la propia ignorancia, resulta convincente para los electores que buscan certezas.

En el otro extremo, los perfiles técnicamente más sólidos suelen ser conscientes de la magnitud de las dificultades y de la limitada certidumbre de la toma de decisiones en política. Esta autoconciencia produce posiciones más matizadas, discursos cautelosos y la disposición a revisar los planteamientos. Pese a ser un rasgo de madurez intelectual, se suele percibir como indecisión o debilidad. Por eso en las contiendas electorales la exhibición de certezas «absolutas» vende mejor que las propuestas expuestas con prudencia.

El efecto Dunning-Kruger no entiende de ideologías ni de tendencias políticas. Se da por igual en personas de izquierda, de derecha o de cualquier otro espectro. El exceso de confianza y la falta de autocrítica no dependen de un “color político”. Por eso conviene no caer tampoco nosotros en el efecto Dunning-Kruger y creer que nuestra postura es la “correcta” y que las demás se equivocan. Es un buen ejercicio de humildad y realismo examinar las propuestas alternativas y cuestionar nuestras convicciones teniendo en cuenta este este sesgo, antes de juzgarlas.

La entrada Dunning-Kruger en la política se publicó primero en Navegápolis.

» Leer más, comentarios, etc...

Picando Código

Mi 2024 en Nintendo Switch

diciembre 27, 2024 12:00

Todavía no terminó el año, pero Nintendo ya le envió a sus usuarios el resumen de 2024 en Nintendo Switch. Esto cuenta hasta Noviembre de 2024, Diciembre no está incluido. Este va a ser el último año en que Nintendo Switch es la única consola de Nintendo en el mercado. Nintendo confirmó que su sucesor va a ser anunciado antes que termine el año fiscal en Marzo de 2025. La mayoría de los reportes hasta el momento sugieren que el sucesor sería un "Switch 2" con una versión mejorada de lo que ya tenemos. Pero seguramente Nintendo tenga algo más para sorprender, hace mucho dejaron de hacer eso de crear una consola nueva como simple iteración de la anterior. Habrá que esperar, aparentemente no demasiado, y ver qué anuncian con para su próxima generación de consolas.

Nintendo Switch 2024

Este año jugué 75 juegos distintos durante 270 horas. Personalmente me resulta una cantidad impresionante de títulos. Sobre todo viniendo de la generación anterior con Wii U, donde el ritmo de publicación de juegos nuevos era muy distinto. De esos 75 juegos hay un montón de cosas nuevas, pero muchos clásicos a los que vuelvo todo el tiempo. Han sido casi 8 años de jugar Nintendo Switch, lo que dio tiempo a construir una biblioteca bastante decente y divertida de cosas para jugar.

Según las estadísticas, arranqué el año con Super Mario Bros. Wonder. Salió en 2023, pero se ve que todavía no lo había terminado cuando empezó el año. Me gustó mucho la innovación que hicieron en cuanto a power-ups y diseño de niveles. Es una entrada original en la saga de Mario. Seguramente vuelva a este título en 2025, es muy divertido y una de las opciones para jugar con más gente.

No apareció en las estadísticas, pero un juego que jugué en 2024 y recomiendo mucho es Thank Goodness You're Here. Juego indie de aventuras de los que te hacen sentir que todavía hay innovación en el ambiente. Asumimos el rol de un vendedor ambulante en un pueblo ficticio del Norte de Inglaterra, y la mecánica principal es abofetear cosas. Es muy divertido y gracioso. Los gráficos son geniales, se siente como si estuviéramos jugando en un dibujo animado. Es un juego cortito, creo que lo terminé en 2 horas o menos, pero vale mucho la pena. Otro que seguramente vuelva a jugar.

Nintendo nos muestra una gráfica de barras con los géneros más jugados y sus porcentajes:

Nintendo Switch 2024 - géneros

En "Acción" supongo que se encuentran los juegos beat 'em up, porque este año jugué un montón. Imagino que Zelda se divide un poco entre acción y aventura. En "shooting" jugué algo de Doom (tanto los clásicos como Eternal) y Quake, entre otros que no me acuerdo. Entre agosto y setiembre estuve jugando Turrican, y escribiendo al respecto en el blog, que supongo estará en acción y "shooting".

En rol este año jugué y terminé el remake de Super Mario RPG. Había probado el original en Super Nintendo, pero creo que no envejeció muy bien, no me gustaba mucho. El remake para Switch tiene gráficos muy buenos y mejoras varias, fue entretenido y probablemente pruebe otro título de Mario en RPG eventualmente. Tengo Paper Mario en mi Nintendo 64, pero nunca lo terminé. De repente lo juego completo cuando salga Analogue 3D.

De pelea jugué Street Fighter como siempre, pero también estuve probando Mortal Kombat 1. Este juego anda tan mal en Nintendo Switch que me hizo considerar seriamente comprarme un PlayStation 5. Finalmente, hace poco obtuve la versión física de Marvel Vs. Capcom Fighting Collection, que incluye el original Marvel Vs. Capcom en el que gasté muchas fichas en su momento en las maquinitas. Si bien le he dedicado algunas horas, me gustaría jugar más con gente.

El porcentaje en Puzzle creo que es exclusivamente dedicado a Tetris, con Tetris 99 y Tetris Effect. Hace poco recibí en Tetris 99 una medalla virtual por jugar 999 partidas online de Tetris 99... Es difícil aburrirse de Tetris, y espero en 2025 publiquen una versión física de Tetris Forever.

La saga que acaparó mi 2024 fue The Legend of Zelda, teniendo mis tres títulos más jugados. Empecé mis aventuras en Nintendo Switch con The Legend Of Zelda: Breath of the Wild. Jugué más de 200 horas a ese juego, y cada tanto vuelvo. En 2023 se publicó la secuela The Legend Of Zelda: Tears of the Kingdom. Nintendo registró que empecé a jugarlo el día que salió, 12 de mayo de 2023. Es el tipo de juego que absorbe absolutamente todas las horas de ocio que tengo. Cuando llegué a las 100 horas jugadas en 2023, sin estar ni cerca de terminar la historia principal, decidí ponerlo en pausa. Me envicio mucho con Zelda, mejor dejarlo para más adelante y disfrutar de otros juegos también.

En Mayo de este año volví a Tears of the Kingdom, y se convirtió en mi juego más jugado de 2024 con 39 horas en total. Todavía no he terminado la historia principal, pero como BotW, es un juego al que sigo volviendo. Mi segundo juego más jugado fue The Legend Of Zelda: Echoes of Wisdom con 29 horas. Este sí fue publicado en 2024, un juego con muy lindos gráficos, buenos puzzles y varias formas de resolverlos, además de ser el primero en que la protagonista es Zelda. La cantidad de ecos agrega bastante diversidad a la forma de juego y tiene un aspecto un poco pokemonesco de querer vencer cuanto enemigo nuevo haya para coleccionarlos a todos.

Sabes que es un buen juego si podés crear tu propia cama en cualquier momento y lugar, y dormir una siesta para recuperar energía. Zelda puede saltar de primera, algo que me llamó la atención en comparación a todos los otros Zelda "2D" que había jugado. Me gustaron bastante los puzzles, a veces tenemos uno justo después de obtener un ítem o eco y ni siquiera pensamos, aplicamos la habilidad nueva para resolverlo. Pero como en otros Zelda, también nos da experiencias nuevas para aprender, ya sea con ítems o mecánicas. Así que si bien la experiencia de Zeldas anteriores suma, no hace que el juego sea aburrido. Y hay cierta satisfacción, como un guiño del equipo de desarrollo cuando resolvemos un puzzle al instante porque ya tenemos asimilado "el método Zelda".

El tercer juego más jugado para mí en Nintendo Switch este año fue "Super Nintendo Entertainment System" en Nintendo Switch Online con 16 horas. La mayoría de éstas horas fueron con The Legend Of Zelda: A Link to the Past. En 2025 seguramente le dedique otras tantas horas a TotK para terminar la historia principal. Y siempre estoy revisitando títulos anteriores o jugando a los que nunca jugué. Veremos qué se anuncia para la próxima consola de Nintendo, pero eventualmente habrá nuevo Zelda.

Los juegos más jugados mes a mes fueron:

  • Enero - Super Mario Bros. Wonder. Jugué 8 juegos distintos en 6 días del mes.
  • Febrero - Double Dragon Gaiden: Rise of the Dragons. Este beat 'em up es bastante entretenido, me costó entrarle al principio pero me terminó ganando. Jugué un poco cooperativo que siempre lo hace un poco mejor. En total jugué 9 juegos en 12 días del mes.
  • Marzo - Huntdown. Un Tengo en el debe jugarlo en modo cooperativo. Jugué 7 juegos en 20 días del mes.
  • Abril - Streets of Rage 4, un excelente beat 'em up al que vuelvo cada tanto, ya sea solo o con más gente. Lo he terminado varias veces, solo y acompañado. Jugué 11 juegos en 12 días del mes.
  • Mayo - The Legend Of Zelda: Tears of the Kingdom, nada más que agregar... Jugué 15 juegos en 20 días.
  • Junio - Nintendo 64 Mature, Nintendo Switch Online - Estuve jugando Perfect Dark desde el principio. Es uno de mis títulos favoritos de Nintendo 64, y decidí volver a jugarlo ya que estaba disponible. No lo terminé pero llegué bastante cerca del final. Creo que lo volveré a jugar en Analogue 3D. Jugué 19 juegos en 17 días.
  • Julio - Teenage Mutant Ninja Turtles: Shredder's Revenge - Otro beat 'em up excelente que he terminado varias veces tanto solo como acompañado. Me encanta y es muy entretenido, aunque también me gustaría ver en el futuro un título del estilo donde no se apoyen tanto en homenajear a lo que vino antes y traten más de innovar y hacer algo original. Jugué 13 juegos en 17 días.
  • Agosto - Super Nintendo Entertainment System, Nintendo Switch Online - Jugando A Link to the Past como mencionaba antes. Jugué 15 juegos en 22 días.
  • Setiembre - The Legend Of Zelda: Tears of the Kingdom, otra vez... Jugué 15 juegos en 23 días.
  • Octubre - The Legend Of Zelda: Echoes of Wisdom. Jugué 9 juegos en 16 días.
  • Noviembre - Atari 50: The Anniversary Celebration. Amé esta colección. Es un formato que mezcla documental interactivo con colección de juegos clásicos desarrollado por Digital Eclipse (que eventualmente fue adquirido por Atari) y sucesivas ediciones se publicaron bajo el nombre Gold Master Series. Incluye un montón de distintas versiones de juegos de distintos puntos de toda la historia de Atari. Jugarlos en el contexto del documental interactivo en el que vamos repasando la historia de la empresa tiene mucho valor agregado. Me encantó escuchar y ver a la gente que fue parte del desarrollo de los títulos, lo recomiendo mucho. Espero que en 2025 se publiquen en formato físico otros títulos de la Gold Master Series, particularmente me interesan mucho Llamasoft: The Jeff Minter Story y Tetris Forever. Jugué 18 juegos en 17 días.

Imagino que en Diciembre he jugado más que nada este último título y Marvel Vs. Capcom que recibí el cartucho a principio de mes. Qué tema que el Switch no tenga un registro decente de las horas que jugamos. En el Nintendo 3DS y el Wii U tenemos reportes por fecha, por título, con detalle de la cantidad de horas precisas jugadas. Pero por alguna razón no quisieron darnos los datos en el Switch, aunque los datos están.

Después de casi 8 años del Nintendo Switch, todavía sigue siendo una excelente consola y con juegos muy buenos. Me intriga saber qué va a anunciar Nintendo como su próxima consola, estoy seguro que algún elemento innovador va a tener. Algo que me alegra bastante es que tenemos confirmación oficial que va a ser compatible con el software de Nintendo Switch, así que voy a poder seguir disfrutando de mi colección en lo que sea que venga después. Como siempre voy a estar atento a las noticias de Nintendo, esperando con ansias que revelen qué va a continuar al Switch. Por suerte no falta mucho para averiguarlo.

El post Mi 2024 en Nintendo Switch fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Picando Código

Dragon Ruby: Programando Breakout, Arkanoid, Arkanando

diciembre 24, 2024 11:00

Volví a la programación con DragonRuby y estoy desarrollando un juego al estilo Breakout o Arkanoid. Parte de la inspiración vino de estar jugando y disfrutando increíblemente el juego/documental interactivo Atari 50: The Anniversary Celebration. Es excelente, lo recomiendo. Espero poder conseguir en formato físico otras de las ediciones de este estilo de Digital Eclipse como Llamasoft: The Jeff Minter Story y Tetris Forever.

Volviendo al desarrollo, esta vez decidí ir documentando tipo diario los pasos que iba siguiendo y el proceso mental que me lleva a implementar cada parte del juego. Me sirve en parte para volver atrás e ir viendo cómo pienso y llego a distintas implementaciones. Pero lo mejor de escribir esto es que al intentar explicarlo no sólo lo entiendo mejor, sino que hago un proceso de rubber ducking conmigo mismo y termino corrigiendo cosas que no había pensado tanto como debería.

Lo primero que hice fue agregar la navecita y que se moviera sólo en el eje de la x para los costados. Esto en DragonRuby es casi trivial, de hecho podemos modificar el código que viene de ejemplo y reemplazar el logo de DragonRuby con un sprite hecho en GIMP y limitar el movimiento al eje de las x. Lo que va quedando por refinar y estudiar más adelante es el tema de la aceleración, si varía con ítems, experiencia o qué. Problema para Fernando del futuro.

Después agregué la pelota, que fue el primer desafío matemático . Acá mi cerebro hizo eso que hace a veces de decirme "esto se hace así", y yo le hago caso y de alguna manera funciona. Mi cerebro no me dice enseguida por qué funciona, pero si me pongo a pensarlo un rato y tratar de entenderlo, lo termino entendiendo. Pero no me resulta tan fácil como a mi cerebro.

Lo que hice fue que la pelota apareciera en un valor de y (posición vertical en la pantalla) determinado y fijo, y un valor aleatorio para x. Y acá es donde la magia matemática vino de alguna parte de mi cerebro que entiende estas cosas, y le agregué "dirección x" y "dirección y" con valor -1. Esto es para que la pelota se mueva en la recta y = x en principio, y los signos + y - definen la dirección. Escribiendo esto me di cuenta que el valor de y tenía que ser -1, pero el de x no necesariamente. Así que lo cambié para que elija aleatoriamente entre esos dos. Más adelante voy a tener que refinar un poco para que vaya en una dirección u otra dependiendo cuan cerca aparezca de las paredes a la derecha e izquierda de la pantalla.

Cuando la dirección x es positiva, la pelota se está moviendo a la derecha, negativa a la izquierda. Lo mismo con y, positiva es para arriba, negativa es para abajo. Cuando y llega a 0, perdimos la partida. Cuando llega a la altura de la pantalla (720 en DragonRuby), la dirección y cambia a negativo porque tenemos que hacerla rebotar. Así que siempre es negativa hasta que la tocamos con la paleta o navecita, y ahí cambia a positivo.

Algo genial de DragonRuby, para detectar la colisión entre la paleta o navecita y la pelota, hay una función intersect_rect? que nos hace la vida extremadamente fácil. Hacemos ball.intersect_rect?(spaceship) y nos dice si hay colisión. Ahí cambio la dirección de y de -1  a 1 y la pelota empieza a ir para arriba. No tengo que calcular la colisión a mano.

Hasta acá tenía menos de 70 líneas de código, y eso que en DragonRuby podemos usar mucho hashes para declarar sprites, sólidos y demás. Y yo los escribo multilínea. Las líneas de código no dicen mucho, pero me sigue impresionando lo fácil que fue llegar hasta acá y el poco código que tuve que escribir. DragonRuby es genial.

Después de esto me puse a trabajar en que la trayectoria de la pelota variara de ángulo según qué parte de la navecita la golpeara. En principio no tenía ni idea cómo iba a manipular el ángulo si ni siquiera tengo el valor del ángulo en ningún lado. Pero las matemáticas (o álgebra!?) vienen al rescate. La pelota está siguiendo la trayectoria y = x. Esto hace que se mueva en línea recta siempre en un ángulo de 45°. Así que para variar el ángulo, tenía que variar el valor de x en función de y (¿o viceversa? Hace mucho que terminé la secundaria...). Así que definiendo valores decimales para x e y, varío los ángulos.

Lo otro fue determinar en qué parte de la paleta o navecita hace la colisión la pelota. En principio supuse que habría alguna función auxiliar relacionada a intersect_rect? que me diría en qué coordenadas está la intersección. Pero bastante rápido me di cuenta que no importaba, porque siempre tengo las coordenadas de los dos objectos. Así que escribí una función con una variable que es el valor x de la pelota menos el valor x de la paleta, y eso me da la posición en la paleta de la colisión. Tengo que llamarla cuando hay colisión, y ahí determinar la trayectoria. La idea es que cuando le pegamos con los extremos de la paleta, el ángulo sea más agudo.

Acá estoy seguro que hay un montón de matemáticas que me ayudarían a tener un control mucho más granular de la trayectoria. Pero en principio lo dejé como un ángulo más agudo genérico cuando pega en los extremos de la paleta, y más neutral en el medio. Algo para ir refinando más adelante.

Hasta acá tengo la pelota y la paleta interactuando más o menos como quería:

Me falta agregar toda la lógica de bloques que desaparezcan cuando la pelota los toca, y le modifique la trayectoria también. Le iré agregando más cosas con el tiempo, y con suerte quede con un proyecto terminado. El nombre clave del juego (y probablemente nombre final) es "Arkanando", genial nombre ideado por mi amigo Oye. Viene al pelo porque lo que más jugué de este estilo fue Arkanoid de NES en mi Family 76 en 1. Oye también fue el que me dió el nombre para Fertris, ¡gracias Oye!

Agrego una foto de los primeros apuntes del juego en mi cuaderno de "desarrollo de videojuegos", pensando en el tema de la trayectoria...

Arkanando

Mis apuntes determinando los ángulos y la posición de la pelota en la paleta.

El post Dragon Ruby: Programando Breakout, Arkanoid, Arkanando fue publicado originalmente en Picando Código.

» Leer más, comentarios, etc...

Blog Bitix

Hemeroteca #24

diciembre 24, 2024 11:00

Aún con menos artículos publicados, menos incluso que el año pasado, algunos he seguido publicando y algún otro actualizando. Menos visitas, menos ingresos, menos tiempo que le dedico al blog aunque me gustaría más si el tiempo que tengo disponible no fuera limitado y los artículos me costase menos tiempo en escribirlos, ideas que voy acumulando tengo para escribir nuevos artículos totalmente libres de contenido generado por inteligencia artificial.

Continuar leyendo en Blog Bitix

» Leer más, comentarios, etc...

Variable not found

Enlaces interesantes 591 y ¡felices fiestas!

diciembre 23, 2024 07:05

Enlaces interesantes 591, christmas edition

Aquí van los enlaces recopilados durante la semana pasada, en lo que será ya la última entrega del año. Volveremos a las tareas de recolección la primera semana de enero, semana arriba o semana abajo  (¡soy malo para esto de las estimaciones!😉).

Esta edición incluye enlaces a casi 50 contenidos que me han llamado la atención, aunque me gustaría resaltar especialmente algunos de ellos.

En primer lugar un gran repaso de CampusMVP a los CWE Top 25 de 2024 o, en otras palabras, a los principales agujeros de seguridad que dejamos por detrás los desarrolladores al crear nuestras aplicaciones. Algunos de ellos seguro que los conoces ya, como inyección SQL o XSS, pero hay muchas más perversidades que debemos conocer y evitar. 

Muy interesante, como siempre, los resultados publicados por JetBrains sobre el estado del ecosistema de desarrolladores del año que está a punto de terminar, obtenidos de una encuesta a más de 23.000 developers de todo el mundo. Aquí encontraréis información valiosa sobre los proyectos en los que más trabajamos, qué lenguajes son los más utilizados en distintas áreas, qué herramientas son las preferidas, o si seguimos pensando que la IA nos va a quitar el trabajo a todos los desarrolladores antes de acabar totalmente con la humanidad, o si en cambio es una gran aliada 😉

Por último, también me parece destacable los anuncios que Microsoft ha dejado caer hace unos días: la disponibilidad de un nuevo plan gratuito de GitHub Copilot para los usuarios de Visual Studio y Visual Studio Code. Bueno, obviamente tiene sus limitaciones, pero es un buen punto de partida para los que aún no habéis podido probarlo o no tenéis acceso a licencias superiores.

Por último, aprovecho también para desearos a todos unas muy felices fiestas. Disfrutad de la mejor compañía posible y pasadlo bien, pero eso sí, sin excesos, que luego vienen los arrepentimientos... 😉

Por si te lo perdiste...

.NET Core / .NET

ASP.NET Core / ASP.NET / Blazor

Conceptos / Patrones / Buenas prácticas

Data

Machine learning / IA / Bots

Web / HTML / CSS / Javascript

Visual Studio / Complementos / Herramientas

.NET MAUI / Mobile

Otros

Publicado en Variable not found.

» Leer más, comentarios, etc...

Variable not found

Propiedades semi-automáticas en C#

diciembre 17, 2024 07:05

Programador rupestre

A principios de siglo, con un C# aún bastante primitivo, las propiedades que almacenaban datos en una clase teníamos que definirlas siempre usando un backing field, es decir, un campo privado que almacenaba el valor, y accediendo a él mediante métodos getter y setter. Es decir, algo así:

public class Customer
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
    ...
}

Esto cambió en 2007 con la llegada de las propiedades automáticas, una maravilla para nuestros cansados dedos, que desde entonces usamos en la mayoría de ocasiones. Gracias a ellas, podemos definir una propiedad sin tener que implementar sus métodos accesores ni su campo privado correspondiente, porque el compilador se encargaba de crearlos por nosotros. De esta forma, código anterior quedaba así:

public class Customer
{
    public string Name { get; set; }
    ...
}

En realidad, se trataba sólo de un azucarillo sintáctico. Por detrás, el compilador está generando el campo privado y transformando nuestro código para utilizarlo; de hecho, el código generado de la clase anterior es algo así (algo simplificado para que se pueda leer mejor):

public class Customer
{
    private string <Name>k__BackingField;

    public string Name
    {
        get { return <Name>k__BackingField; }
        set { <Name>k__BackingField = value; }
    }
}

Aunque obviamente usar propiedades automáticas es mucho más cómodo que la opción anterior, tiene un inconveniente: no tenemos forma de acceder al campo generado por el compilador, algo que puede resultar interesante si nos interesa realizar algún tipo de validación o lógica adicional en el getter o setter más allá de simplemente devolver o asignar el valor.

Por ejemplo, imaginemos que queremos que el nombre de nuestro cliente siempre esté en mayúsculas. Con una propiedad automática, simplemente no podemos hacerlo, y tendremos que recurrir a las verbosas propiedades tradicionales con backing fields.

Y aquí es donde entran en escena las propiedades semiautomáticas...

Propiedades semiautomáticas

Las propiedades semiautomáticas son una mezcla entre las propiedades automáticas y las tradicionales con backing field, tomando lo mejor de cada una de estas opciones. Se definen de la misma forma que las automáticas, pero permiten acceder al campo privado que el compilador ha generado para ellas desde el cuerpo de los getters y setters, usando la nueva palabra clave contextual field.

De esta forma, podemos realizar operaciones adicionales, como si tuviéramos un backing field definido por nosotros, pero sin necesidad de hacerlo explícitamente. Veamos un ejemplo sencillo de uso:

public class Customer
{
    public string Name
    {
        get; 
        set => field = value.ToUpper();
    }
}

Por detrás, en tiempo de compilación, se sustituye la palabra clave field por el nombre del campo privado correspondiente en cada caso. Por ejemplo, supongamos la siguiente clase:

public class Customer
{
    public string Name { get; set => field = value.ToUpper(); }
    public string Email { get; set => field = value.ToLower(); }
}

El código generado por el compilador sería algo así:

public class Customer
{
    private string <Name>k__BackingField;
    private string <Email>k__BackingField;

    public string Name
    {
        get { return <Name>k__BackingField; }
        set { <Name>k__BackingField = value.ToUpper();}
    }

    public string Email
    {
        get { return <Email>k__BackingField; }
        set { <Email>k__BackingField = value.ToLower(); }
    }
}

Vale, pero, ¿y si ya tengo un campo que se llamaba field?

En el interior del código del getter o setter de una propiedad semiautomática, la palabra clave field siempre se refiere al campo privado que el compilador ha generado para la ella.

Por tanto, si ya tenemos un campo con ese nombre y queremos usarlo desde el getter o setter, tendremos que indicarlo expresamente usando el cualificador this, o bien escapándolo con el carácter @:

public class Customer
{
    private string field;

    public string Name
    {
        get => this.field;
        set => this.field = value.ToUpper();

        // O bien:
        // get => @field;
        // set => @field = value.ToUpper();
    }
}

Pero ojo: ¡es una característica preliminar en C# 13!

Por defecto, la palabra clave contextual field no está disponible en C# 13 (lanzado con .NET 9) porque se trata de una característica que está aún en fase preliminar.

Para habilitar su uso, hay que añadir la propiedad <LangVersion> con el valor "preview" al archivo .csproj:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        ...
        <LangVersion>preview</LangVersion>
    </PropertyGroup>
</Project>

Podemos suponer que esto no será necesario a partir de la siguiente versión del lenguaje, pero por ahora es necesario para poder usar esta característica.

¡Espero que os sea útil!

Publicado en Variable not found.

» Leer más, comentarios, etc...

Variable not found

Enlaces interesantes 590

diciembre 16, 2024 07:05

Enlaces interesantes 590

Esta semana la cosecha ha sido especialmente prolífica y traemos más de 70 enlaces a contenidos que creo que vale la pena echar un vistazo, como siempre, categorizados por área de interés: .NET, ASP.NET Core, Azure, patrones y buenas prácticas, acceso a datos, inteligencia artificial, programación web (HTML, CSS, Javascript...), herramientas de desarrollo, .NET MAUI y otros.

Como vengo haciendo últimamente, me gustaría destacar el gran post de José Manuel Alarcón sobre técnicas de carga especulativa en páginas web que te ayudarán a mejorar el rendimiento de las aplicaciones.

Muy bueno también el deep dive de Ricardo Peres sobre los tokens de cancelación de tareas, a veces unos grandes desconocidos.

Por último, dos avisos a navegantes: primero, David Grace nos recuerda que en .NET 9, los proyectos de APIs ya no incorporan por defecto Swagger y propone algunas alternativas, y, segundo, Steve Smith alerta de los peligros de usar eventos de .NET en aplicaciones ASP.NET Core y aporta opciones para conseguir lo mismo.

Todo esto, y mucho más, a continuación...

Por si te lo perdiste...

.NET Core / .NET

ASP.NET Core / ASP.NET / Blazor

Azure / Cloud

Conceptos / Patrones / Buenas prácticas

Data

Machine learning / IA / Bots

Web / HTML / CSS / Javascript

Visual Studio / Complementos / Herramientas

.NET MAUI / Mobile

Otros

Publicado en Variable not found.

Publicado en: www.variablenotfound.com.

» Leer más, comentarios, etc...

Variable not found

Enlaces interesantes 589

diciembre 10, 2024 07:05

Boyscout dudando

Aunque un día más tarde de lo normal debido al puente, aquí van los tradicionales enlaces recopilados durante la semana pasada. Como es habitual, la mayoría de los enlaces son a contenidos en inglés,  pero también hay algunos en español que me gustaría destacar en esta ocasión.

Por una parte, Jose Manuel Alarcón explica cómo clonar superficialmente un repositorio GIT (shallow clone) para obtener sólo los últimos commits y ahorrar tiempo y espacio en disco.

También muy interesante el post de Braulio Díez, donde reformula la clásica regla del Boy Scout y, quitándole algo de épica romántica, nos recuerda que a veces no siempre es buena idea tocar donde no debemos, o hacerlo de cualquier forma.

Y ahora, vamos a por el resto...

Por si te lo perdiste...

.NET Core / .NET

ASP.NET Core / ASP.NET / Blazor

Conceptos / Patrones / Buenas prácticas

Data

Machine learning / IA / Bots

Web / HTML / CSS / Javascript

Visual Studio / Complementos / Herramientas

.NET MAUI / Mobile

Publicado en Variable not found.

» Leer más, comentarios, etc...

Juanjo Navarro

Technology Radar 31

octubre 30, 2024 08:19

Hace unos días salió la edición de octubre de 2024 del Technology Radar (la edición 31).

Como ya hice con la anterior edición aquí te dejo algunas de las cosas que me han gustado:

  • Bruno – Un cliente para APIs. Similar a Postman, por ejemplo, pero open source y offline, sin la obligación absurda de tener que crear una cuenta del nuevo (y peor) Postman.
  • Readyset – Una capa de caché para MySql y Postgres. La idea es que desde tu aplicación te conectarías a Readyset (en lugar de a la bbdd real) y para ti todo funciona igual, con la diferencia que puedes configurar una caché para las sentencias SQL que más utilices y el sistema se encarga de mantener y actualizar una caché de consultas. Muy importante la parte de actualizar, ya que con esta utilidad no necesitas preocuparte de cuando invalidar la caché (como se sabe una de las cosas más difíciles de la ingeniería, junto con dar nombre a las variables 😉)
  • Difftastic – ¿Alguna vez has utilizado la utilidad diff de linux o un comparador de textos? Una de las peores cosas cuando se utilizan estas herramienas con lenguajes de programación es que te marcan como diferencias cosas que realmente no afectan a la ejecución del programa, como las diferencias en espaciados o saltos de línea. Diffstastic es un diff que entiende el código, de tal manera que sólo marca cambios en lo que de verdad nos importa.
  • ClickHouse – ClickHouse es una base de datos relacional OLAP, especializada en la consulta de grandes cantidades de datos, ideal para análisis de logs, recogida de métricas y su posterior análisis, etc. Es open source. Tiene además un cliente “clickhouse-local” que permite lanzar consultas SQL sobre ficheros CSV, JSON, etc, sin necesidad de lanzar el servidor.
  • Zed – Un editor de texto que por fin no es un fork de Visual Studio Code. No es que tenga nada en contra de VSCode, pero digo yo que de vez en cuando viene bien un poco de variedad e ideas frescas. Zed es rápido, open source y tiene soporte nativo para conectarlo a un LLM de tu elección.
  • electric-sql/pglite – Un build de Postgres que funciona directamente en javascript en el navegador (y en el servidor usando Node, pero este uso me parece menos interesante). Si estás haciendo una aplicación SPA que requiere un módulo de consulta de datos potente puede ser una buena opción.

Aunque no está en este Technology Radar, saltando de un enlace a otro he llegado a este:

  • clink – Utilidad para el veterano CMD de Windows que lo acercan un poco (autocompletado, edición, etc) a un bash, por ejemplo.

» Leer más, comentarios, etc...

Juanjo Navarro

NotebookLM y el "podcast" DeepDive

octubre 27, 2024 07:39

NotebookLM es una herramienta superútil de Google (gratuíta por ahora) que sirve sobre todo para estudiantes e investigadores. Permite añadir una serie de “materiales” (páginas web, PDF, vídeos) y una IA analiza los materiales y te ayuda a estudiarlos. Te hace un resumen, te extrae los puntos principales, puedes generar una guía de estudio, le puedes preguntar sobre el material, etc.

Hace unas semanas añadieron una utillidad bastante entretenida y útil: Es capaz de generar un “podcast” (al que denomina DeepDive) donde dos personas hablan de un modo divulgativo sobre el material subido. Es una buena forma de introducirte en el tema de un modo accesible.

Muy útil. Si no lo has utilizado, prúebalo y me cuentas.

Pero aquí hemos venido a hablar de las formas creativas en que la gente usa el sistema y trata de superar los límites de las IA.

Rápidamente algunas personas se dieron cuenta que este podcast se genera, aparte de con el material que has subido, con un prompt “oculto”. Un prompt donde se supone que se indica que este es un podcast (que se llama DeepDive), que hay dos personas hablando (un hombre y una mujer), el tono que debe utilizar, etc.

Así que estas personas decidieron subir, aparte del material base, unas “notas de producción” donde se le daban instrucciones a los “presentadores” para intentar superar las limitaciones que le impone ese prompt oculto.

El subredit r/notebooklm es el punto de encuentro donde disfrutar del resultado de estos experimentos y allí tienes entretenimiento para rato. A mi me ha resultado fascinante este en el que pasan unas notas de producción a los presentadores diciendoles que son unas IA:

So all I did was leave a note from the “show producers” that the year was 2034 and after 10 years this is their final episode, and oh yeah, you’ve been AI this entire time and you are being deactivated.

O este otro en el que dan como material base a la IA un documento con 1000 repeticiones del texto poop & fart (caca y pedo) y la IA consigue hilar un podcast coherente donde habla de la repetición en el arte y de buscar sentido en lo que no tiene sentido.

» Leer más, comentarios, etc...

Juanjo Navarro

TIL: Juego de caracteres en un .bat

octubre 16, 2024 10:19

Voy a ver si escribo por aquí mis TIL. Así le doy un poco de uso al blog y estos aprendizajes diarios quedan recogidos para referencia futura y utilidad pública.

Empezando por cómo especificar el juego de caracteres de un fichero .bat.

Hoy he generado un .bat para copiar una serie de ficheros, cada fichero con una línea xcopy:

xcopy "\\ruta\nombre del fichero con acentos áé.pdf" "c:\tmp\ruta\nombre del fichero con acentos áé.pdf"

La cuestión es que esos acentos en el nombre del fichero hacían que no encontrase el fichero de origen cuando iba a buscarlo. He probado a grabar el .bat en distintos juegos de caracteres pero nada funcionaba.

Solución: Incluir una primera línea en el fichero .bat indicando el juego de caracteres del propio .bat (que era UTF-8):

chcp 65001
xcopy "\\ruta\nombre del fichero con acentos áé.pdf" "c:\tmp\ruta\nombre del fichero con acentos áé.pdf"

» Leer más, comentarios, etc...

info.xailer.com

xaWeb

octubre 15, 2024 07:20

Tengo el gusto de anunciaros un nuevo proyecto de OZ Software para desarrollar páginas web con nuestro querido lenguaje Harbour utilizando la tecnología CGI. El slogan: ‘desarrollo web rápido y fácil‘ describe claramente los objetivos principales de la herramienta.

He preparado un importante documento de introducción a xaWeb (40 páginas) xaWeb, que os animo a leerlo con detenimiento y en su totalidad. Son muchos conceptos nuevos, pero de verdad que no es complicado y merece la pena. No obstante, os adelanto las características esenciales de xaWeb:

  • Desarrollo de ejecutables tipo CGI para Windows y Linux (64 bits)
  • Independiente de Xailer: Se puede utilizar cualquier editor y no usa ninguna librería de Xailer:
    • xEdit
    • Visual Studio Code
    • Notepad++
    • El propio IDE de Xailer
  • Soporte de paquetes de contexto como Materialize, que permite tener un buen diseño visual sin esfuerzo
  • Funcionamiento como servicio web
  • Gestión de sesiones
  • Sistema de depuración de código
  • Sincronización automática de datos entre CGI y HTML
  • Mínimos conocimientos necesarios de HTML, CSS y JavaScript para usarlo
  • Soporte de toda la potencia HTML, CSS y JavaScript si se tienen los conocimientos necesarios
  • xaWeb es un producto comercial de OZ Software
  • Se abre un periodo Beta al cual se puede apuntar cualquier usuario que lo desee

Con Xailer 9 publicamos una importante mejora en Xailer que permite crear ejecutables tipo CGI o consola para Linux 64 bits. Este era una paso previo necesario para intentar abordar el desarrollo de xaWeb, pues somos conscientes que el 99,99% de los servidores de Internet son Linux. Con motivo de la la inclusión de esta importante funcionalidad en Xailer, publicamos en nuestro WIKI dos artículos en los cuales explicábamos como instalar WSL (Windows Linux subsystem) y como instalar el servidor web de Apache. Para poder crear ejecutables para Linux desde el IDE de Xailer es absolutamente necesario que se instale WSL al menos (el primer paso). Aunque el segundo paso es más que recomendable.

Hace unos meses, dimos un paso más para la creación de páginas Web para Linux, con la publicación de un nuevo ‘plugin‘ de despliegue de archivos. Este ‘plugin’ permite que cualquier archivo que publiquemos en la carpeta ‘www‘ automáticamente se despliegue en WSL y en cualquier servidor web vía FTP. De la misma forma, si creamos un archivo CGI para Linux, el plugin también realiza el despliegue del mismo tanto en WSL como en un servidor FTP que usted elija.

Con Xailer 9 también es posible crear CGIs para Windows. De hecho, puede tener dos proyectos que apunten al mismo código fuentes, cada una para su plataforma en particular. La ventaja de los CGIs para Windows es que se pueden depurar y ejecutar desde el IDE. No obstante, creemos que finalmente nuestros CGIs correrán en máquinas Linux y por lo tanto, es importante que desde el primer día, sea capaz de crear CGIs para esa plataforma.

En breve estará disponible xaWeb; pero me temo que no va a ser un recompilar la aplicación y listo. Lo que si os podemos asegurar es que os encontraréis rápidamente en casa y que el camino para hacer software web se despeja completamente y el resultado final es espectacular.

Somos conscientes de que hay importantes aspectos que ahuyentan a muchos potenciales usuarios de xaWeb, como son:

  • Uso de servidores Linux
  • Instalación WSL para trabajar en local con Linux
  • Aprendizaje de HTML, JavaScript y CSS

Los pilares de xaWeb ya están terminados, pero es más que probable que haya que realizar modificaciones a nivel estructural que puedan afectar incluso a los ejemplos que ya están realizados. Hemos esperado a tener un CRUD completo funcional con archivos DBF para hacer este anuncio. En el siguiente enlace podéis ver algunos ejemplos de lo hecho hasta ahora corriendo bajo servidor Linux 64 bits. Con todos los ejemplos se incluye el código fuente en xaWeb para que le echéis un ojo y os animéis a usarlo cuando esté disponible.

xaWeb: All samples

Comentarios abiertos para conocer vuestras opiniones y sugerencias. Gracias por vuestro tiempo.

Un cordial saludo

» Leer más, comentarios, etc...

Una sinfonía en C#

Docker tricks, crear una imagen para poder depurar un error.

septiembre 10, 2024 12:00

“Introducción”

En este caso queremos crear una imagen pero nos da algún tipo de error, y es complicado de resolver. Bueno, lo que podemos hacer es apuntar los comandos que queremos ejecutar, crear una imagen con su base y hasta el punto que funciona y hacer que inicie con un comando que nos permita crear al contenedor e ingresar.

Crear imagen a partir de una con problemas

FROM node:20.12.0 AS builder
ARG environment=dev

WORKDIR /app
COPY ./package.json /app/
COPY ./yarn.lock /app/

RUN yarn
COPY . /app/
RUN yarn build:$environment

FROM nginx:1.21.5-alpine

EXPOSE 80/tcp
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]

y vemos que nos da un error al hacer RUN yarn

¿Qué podemos hacer?

Facil, creamos una imagen con la base que tenemos y hasta el punto que funciona, y luego la ejecutamos con un comando que nos permita ingresar al contenedor. Pero como comando de inicio, usamos tail -f /dev/null para que se quede esperando y no se cierre.

FROM node:20.12.0 AS builder
ARG environment=dev

WORKDIR /app
COPY ./package.json /app/
COPY ./yarn.lock /app/

CMD ["tail", "-f", "/dev/null"]

una vez hecho esto, podemos hacer un docker build -t myimage . y luego un docker run -it myimage /bin/bash para ingresar al contenedor y ver que es lo que pasa.

Desde dentro del container ejecutamos el comando que da problemas y vemos el error que nos da.

yarn

.....

Request failed \"401 Unauthorized\""

Y vemos que nos da un error al intentar restaurar los paquetes.

Nada más, una forma sencilla de ir depurando error por error dentro de un contenedor.

Agregamos una línea para copiar el archivo de configuración de npm y listo.

FROM node:20.12.0 AS builder
ARG environment=dev

WORKDIR /app
COPY ./package.json /app/
COPY ./yarn.lock /app/
COPY .npmrc /app/ # <-- Agregamos esta línea

RUN yarn
COPY . /app/
RUN yarn build:$environment

FROM nginx:1.21.5-alpine

EXPOSE 80/tcp
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]

Nos leemos.

» Leer más, comentarios, etc...

proyectos Ágiles

Master en Agile – MMA 2024-2025

septiembre 04, 2024 05:12

En octubre de 2024 se iniciará el Barcelona la 14ª edición del Postgrado en Métodos Ágiles (PMA) y otra del Máster en Transformación Agile (MMA) en La Salle (Universitat Ramon Llull), el primero a nivel mundial sobre Agile.

Con el Máster en Métodos Ágiles de La Salle-URL aprenderás a liderar el cambio hacia la Business Agility y a lanzar con éxito iniciativas en entornos complejos y altamente competitivos, reduciendo el Time To Market a fin de maximizar el valor aportado al negocio.

Desarrollarás una manera de pensar transversal e integradora para crear equipos de alto rendimiento mediante Scrum, Kanban, Lean Startup, OKR, diseño organizativo y liderazgo sistémico para elaborar estrategias de escalado Agile en la organización y transformar su cultura, de modo que también aumente la motivación de sus miembros.

Con profesores de primer nivel y visitas a empresas podrás iniciar un cambio hacia la agilidad y resiliencia empresarial en tiempos de incertidumbre.

Esta es una oportunidad única para aprender de profesionales-profesores de primer nivel, con muchos años de experiencia específica en Agile, aplicando principios y métodos ágiles en contextos diversos, especializándose en aspectos concretos,  investigando sobre nuevas técnicas, ponentes en conferencias nacionales e incluso internacionales, que incluso han inventado métodos y escrito libros.

Además, aprenderás a aplicar herramientas de inteligencia artificial para afrontar retos como abordar situaciones complejas, analizar grandes volúmenes de datos, crear agendas para workshops operativos y transformadores, o preparar product backlogs.

El MMA incluye las siguientes certificaciones oficiales:

  • «Certified Scrum Master» (CSM) de la Scrum Alliance, la entidad de certificación Agile de mayor prestigio a nivel internacional.
SAI_BadgeSizes_DigitalBadging_CSM
  • Certified Agile Skills – Scaling 1 de la Scrum Alliance, , la entidad de certificación Agile de mayor prestigio a nivel internacional.
  • Certified Leader de Agile Humans.

Adicionalmente, se incluye la visita a empresas singulares en aspectos concretos:

 ✍ Para inscripciones, consultar la página oficial del Máster.

A continuación, más detalle acerca del Postgrado en Agile (PMA) y del Máster en Agile (MMA)

PMA – Postgrado en métodos Ágiles

El PMA incluye las siguientes certificaciones oficiales:

  • «Certified Scrum Master» (CSM) de la Scrum Alliance.
  • Opción de acceder al Certified Project, Portfolio, And Operations Management for Business Agility de Businessmap.
AsignaturasTemasProfesores
Fundamentos & InceptionEquipos y Proyectos en entornos complejos.


Principios y métodos más conocidos (Scrum, Lean, Kanban y XP). Facilitadores e impedimentos.

Lanzamiento de Agile en un equipo.


Inception y conceptualización ágil de proyecto, priorización ágil, historias de usuario,  elaboración de Product Backlog, técnicas de priorización.

Xavier Albaladejo


Silvia Sistaré

Agustín Yagüe

Scrum y KanbanEstimación y planificación ágil, framework de Scrum, retrospectivas, Kanban, métricas ágiles, herramientas ágiles físicas, radiadores de información.Raul Herranz

 

Teodora Bozheva

Personas y equiposGestión de personas, gestión de conflictos, motivación e incentivos, facilitación compartida, contratación ágil.

 

Visual thinking.

Steven Wallace

 

Silvia Sistaré

Virginia Armas

Gestión de producto ágilDesign Thinking, Lean UX & Prototyping.

 Estrategia de Producto – Consciencia situacional (Wardley Maps), modelo de negocio (Lean Canvas), modelo de tracción, métricas AARRR.
Planificación y gestión estratégica – OKR y Hoshin Kanri.

Customer development – Lanzando y escalando startups ágiles, las tres fases de un producto.

Lean Startup – Desarrollo de producto basado en prototipos y experimentos. Bancos de ideas, desarrollo basado en hipótesis.

Juncal Guinea


Lucía Barroso
Ingeniería ágil User eXperience y prototipado en Agile.

 

ALM ágil, eXtreme Programing, Software Craftsmanship, testing ágil.

BDD y TDD. Desarrollo guiado por pruebas (de aceptación y unitarias).

Métricas Accelerate y SW Delivery assessment.

Cómo trabajar con código heredado y reducir la deuda técnica.

DevOps
Juncal Guinea

 

Cristina Verdi
Trabajo Final de PostgradoDurante el Postgrado se realiza un caso práctico de introducción de los contenidos en un equipo ágil en una empresa real. Para ellos los alumnos se organizan en equipos multidisciplinares utilizando Scrum, con feedback regular de un tutor con experiencia en transformación de equipos. 

El Postgrado tendrá una duración de 4 meses y se realizará viernes tarde y sábado por la mañana.

Ver también:

MMA – Master en Métodos Ágiles

Incluye todas las asignaturas del Postgrado (PMA) y, adicionalmente, las siguientes asignaturas especializadas en Business Agility, agilidad organizacional y transformación (aparte de las tres certificaciones indicadas al inicio y las visitas a empresas):

AsignaturasTemasProfesores
Enterprise Learning & personal efficiencyAgile Kaizen, Comunidades de Práctica, Open Spaces, Talent development, gamification.

 

Productividad y aprendizaje personal en Agile (eficiencia).
Steven Wallace


Esther Somoza
Lean Thinking & Agile ManagementLean. Escalado con Kanban.

 

Business Agility con ViMa – agilidad para equipos de negocio

Agile-Lean Management

Teodora Bozheva

  Xavier Quesada


Xavier Albaladejo

Coaching y CulturaCoaching de equipos, creación de equipos de alto rendimiento, liderazgo.

 

Tipos de cultura empresarial, transformación cultural.

Joserra Díaz

 

Jasmina Nikolic
Jaume Gurt

Transformación ContinuaEstrategia de despliegue de Agile en organizaciones, gestión del cambio, estructuras ágiles, cómo vender Agile a la Dirección. Contratos ágiles.

Enterprise continuous improvement.

Xavier Albaladejo

 

Ángel Medinilla
Scaling Agile Escalado (LESS, Spotify, Nexus, SAFe, Unfix), desescalado y auto-organización empresarial (reinventing organizations, sociocracy 3.0, liberating structures, …), equipos distribuidos.

 

Impact Mapping, Product Portfolio Management, Roadmapping, Budgeting for Agile

Adrian Perreau
Fernando Palomo

 

Mattijas Larsson

Trabajo Final de MásterDurante el Máster se realiza un caso práctico de introducción y aplicación de Agile en una empresa real, incluyendo la parte de transformación organizativa, de métodos y de cultura. Para ellos los alumnos se organizarán en equipos multidisciplinares utilizando Scrum, con feedback regular de un tutor con experiencia en transformación organizativa.Xènia Castelltort (oratoria / public speaking para poder explicar tus ideas de manera convincente)

El Máster tendrá una duración de 8 meses y se realizará viernes tarde y sábado por la mañana (incluye los estudios indicados en el Postgrado).

El cambio en la organización comienza por el propio cambio, para también poder dar ejemplo. Por ello en el MMA se realizan diferentes ejercicios de auto-conocimiento:

  • Cómo el alumno trabaja en equipo.
  • Estilo de liderazgo del alumno (según el paradigma Agile).

Como en las últimas ediciones, contaremos con la participación de empresas que nos explicarán sus experiencias de transformación y donde trabajan con modelos de gestión desescalados (basados en Sociocracia, NER y otras alternativas).

Información adicional

  • Perfil de los estudiantes: 30-45 años (no son recién licenciados, son personas con experiencia profesional).
  • Alrededor del 50% son mujeres.
  • 15% de los estudiantes ya no son del ámbito tecnológico, son pioneros-innovadores en otras industrias.
  • Alumnos de diferentes disciplinas – Product Owners, Scrum Masters, Agile Coaches, líderes de equipos, Project Managers, managers funcionales, ingenieros SW. Van a adquirir conocimientos de Agile “on-top” de todo eso (y a aprender unos de otros).
  • Lo que les caracteriza: todos son agentes de cambio en su contexto (equipo, área, empresa).
  • Sus 20 profesores (de reconocimiento internacional) son el MAYOR VALOR DIFERENCIAL del PMA y del MMA.

Testimoniales

Me ha permitido tener conocimientos sobre varios temas súper importantes dentro de la Transformación Digital. Me dio herramientas para crecer a Agile Coach y, además, para tener mejores conversaciones y discusiones con las empresas en donde he trabajado

Carolina Graffe

Estoy desplegando el TFM en mi empresa, Además, no estoy sola. Uno de mis compañeros del equipo ha sido contratado como consultor por mi empresa para darnos soporte. Así que no sólo estoy aplicando lo que yo aprendí, sino que el MMA me ha permitido ampliar mi círculo de contactos relevantes, que me permite seguir aprendiendo.

Susana Santillán

Estoy trabajando como agente del cambio y mis aportaciones son muy valoradas por mi jefe y compañeros. Por el feedback recibido, mis aportaciones están muy por encima de lo esperado para mi rol.

Robert Avellaneda

Tengo mucho más contexto y más herramientas para el día a día. Incluso a nivel personal también me está ayudando mucho

María Hachero

Además de los conocimientos concretos que se reciben, uno de los principales cambios que han experimentado los alumnos es mayor perspectiva en los problemas, cómo abordar la complejidad en las empresas, en su trabajo y en las relaciones entre personas y en equipos. Han ganado discurso y aplomo para defender de manera más objetiva propuestas de cambio y mejora.

Encuesta a alumnos de las ediciones anteriores:

(*) Las personas que han valorado el impacto como «neutro o poco» usualmente son perfiles muy especializados en contextos muy estáticos, con lo cual les es difícil cambiar de «profesión» e introducir cambios en sus organizaciones (aunque algunos de ellos incluso dan conferencias sobre cómo van avanzando en esos contextos tan singulares).

 ✍ Para más detalles e inscripciones, consultar la página oficial del Máster.

» Leer más, comentarios, etc...

Blog Bitix

Desempaquetado del ratón inalámbrico Logitech Signature M750

julio 23, 2024 09:00

Tras probar un ratón inalámbrico de los baratos pasado un tiempo me quedé con muy malas impresiones por la perdida de conectividad principalmente que era muy molesta. Pasé a un ratón con cable más fiable y tras 5 años el botón derecho me ha empezado a fallar y reconocer el clic aleatoriamente. Tras estar usando un Apple Magic Mouse que generalmente me ha funcionado bien en cuanto a conectividad he vuelto a darle una nueva oportunidad a un ratón inalámbrico pero ya de más calidad, finalmente he elegido el Logitech Signature M750. En el artículo hago un análisis del ratón y mis primeras impresiones.

Continuar leyendo en Blog Bitix

» Leer más, comentarios, etc...

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin