
De alguna forma, los desarrolladores somos como relojeros: construimos sistemas complejos utilizando piezas diminutas que van encajando armoniosamente unas con otras para formar una máquina que funciona como un todo y aporta valor a nuestros usuarios. Quizás por eso me ha llamado la atención un precioso y trabajado artículo interactivo de Bartosz Ciechanowski, al que he llegado a través de MicroSiervos, sobre cómo funcionan los relojes mecánicos.
Continuando con la serie "cómo funcionan las cosas", Mia Koring nos explica cómo funciona la compresión de texto usando el algoritmo de codificación Huffman, uno de los muchos que existen para que nuestros datos ocupen menos espacio.
También esta semana, Martin Fowler ha publicado una reflexión, que comparto totalmente, sobre cómo los LLMs tienen la capacidad de redefinir lo que entendemos como "programación". De la misma forma que el ensamblador nos alejó de los ceros y unos, o los lenguajes de alto nivel nos fueron aislando cada vez más de la máquina permitiéndonos jugar con abstracciones superiores, los LLMs son una capa de abstracción aún mayor, que incluso nos permite alejarnos de los detalles de implementación y centrarnos más en la lógica y el diseño de alto nivel... eso sí, a costa de la indeterminación. Un artículo muy interesante que no te puedes perder.
Por último, me ha alegrado leer en el post de David Ortinau que .NET 10 va a reducir la verbosidad del XAML usado en páginas y componentes MAUI, algo que siempre me ha parecido más farragoso de la cuenta... sobre todo cuando vienes de la web y usas sintaxis superconcisas como Razor.
El resto de contenidos interesantes recopilados la semana pasada, a continuación.
Por si te lo perdiste...
- Un ejemplo de uso elegante del operador "null coalescing assignment" de C#
José M. Aguilar - Extendiendo claims de usuarios en ASP.NET Core
José M. Aguilar
.NET
- Wire Up XUnit Logging for Crazy Integration Testing
Jeremy D. Miller - Legacy Code Survival Guide: Visual Basic and .NET in 2025
DeeDee Walsh - Task.WhenAll or Parallel.ForEach?
Fati Iseni - Day 11: Implementing a C# Mutation Operator for Genetic Algorithms
Chris Woodruff - Managing Secrets in .NET Applications with Azure Key Vault & Managed Identities
Sudhir Mangla - .NET 8.0.17 Upgrades, Forwarded Headers, and Unknown Proxy Issues
Khalid Abuhakmeh & Wesley Cabus - .NET Channels as a In-Memory Message Bus – Beware!
Derek Comartin
ASP.NET Core / ASP.NET / Blazor
- The Rise of Blazor: Architecting Modern Full-Stack Web Applications with C#
Sudhir Mangla - How to Add Error Bars to Blazor Charts: A Complete Guide with Examples
Sakthiviknesh Chellappa - You can't use switch expressions in Blazor (sometimes)
Steven Giesel - How to use lifetimes in ASP.NET Core dependency injection?
David Grace - .NET Aspire 1: What Is .NET Aspire?
Dave Brock - How to Build Multi-Tenant Reports in ASP.NET Core Applications
Alec Gall - .NET 10 Previews: Blazor Performance Monitoring, JS Interop
Jon Hilton
Conceptos / Patrones / Buenas prácticas
- Text Compression for Beginners (Huffman Coding)
Mia Koring - Backend for Frontend (BFF) Pattern Explained
Paul Williams
Data
- How I Optimized EF Core Query from 30 Seconds to 30 Milliseconds
Anton Martyniuk - Stop Using UUIDs in Your Database
Daniel Craciun
Machine learning / IA
- LLMs bring new nature of abstraction
Martin Fowler - Exposing PowerShell Universal as an MCP server to GitHub Copilot
Ironman Software
Web / HTML / CSS / Javascript
- Vite 7.0 is out!
Vite Team - A Better API for the Intersection and Mutation Observers
Zell Liew - Decoding The SVG path Element: Curve And Arc Commands
Myriam Frisano - Dependency Injection in JavaScript: A Functional Approach
Asmir Mustafic - Animating zooming using CSS: transform order is important… sometimes
Jake Archibald - Lightly Poking at the CSS if() Function in Chrome 137
Sunkanmi Fafowora - How to create light and dark color modes with CSS
Chris Ferdinandi - TypeScript: checking Map keys and Array indices
Axel Rauschmayer - Printing the web: making webpages look good on paper
Declan Chidlow - How We Reduced CKEditor’s Bundle Size by 40%
Filip Sobolinstal - Poking at the CSS if() Function a Little More: Conditional Color Theming
Daniel Schwarz - Tips for making regular expressions easier to use in JavaScript
Axel Rauschmayer - Enhance Formatting Efficiency with Format Painter in Vue Rich Text Editor
Thangavel E. - CSS Blob Recipes
Juan Diego Rodríguez - What's coming to JavaScript
Luca Casonato - Updates to my Table Sorting Web Component
Raymond Camden
Visual Studio / Complementos / Herramientas
- Más allá de los asistentes IA: GitHub lanza su Agente Autónomo para Copilot
CampusMVP - Google announces Gemini CLI: your open-source AI agent
Taylor Mulen & Ryan J. Salva - Working with stacked branches in git (Part 2)
Andrew Lock - Untrusted GIT repositories in Visual Studio
Bart Wullems - Better Models, Smarter Defaults: Claude Sonnet 4, GPT-4.1, and More Control in Visual Studio
Rhea Patel
.NET MAUI
- Simpler XAML in .NET MAUI 10
David Ortinau
Otros
- Mechanical Watch
Bartosz Ciechanowski
Publicado en Variable not found.
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario