💡 «Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Code for readability» - John F. Woods.

viernes, 5 de junio de 2026

Buscando commits malos con el Inspector Gadget

Hay una situación que todo desarrollador acaba viviendo al menos una vez. Te vas un viernes a casa contento con el código funcionando, pero al día siguiente, o tres días después, o una semana más tarde, abres el proyecto y algo ya no va. Y lo peor es que no tienes ni idea de cuándo se rompió.

Lo primero que hace uno es revisar los últimos cambios. Ves que en los últimos 10 commits no se ha tocado nada relacionado con lo que falla (genial). Tendré que mirar más commits diría uno. Pero si el repo involucra a varios compañeros, el historial de commits puede ser bastante extenso. Además, un bug que encuentras hoy no tiene por qué haberse introducido hace poco, igual lleva dos meses en el repositorio.

Git bisect y el Inspector Gadget (un grande)

Para eso existe git bisect .

sábado, 30 de mayo de 2026

Let's get into Microservices (together)

Why would anyone define microservices as an architecture choice?

If you're already familiar to microservices, then the answer to the question above might seem quite obvious. But if you aren't, like me, then you might learn some new concept today.

So, I've recently got his book titled "Building Microservices: Designing Fine-Grained Systems" by Sam Newman and I'm going to write some content as I read, and understand, it :).

Microservices are technology agnostic; they are independently deployable; they embrace the concept of information hidding.

Here is a statement I really like and find extremely important within the confines of... software?, system? development. Whatever.

“Information that is hidden from external parties can be changed freely as long as the networked interfaces the microservice exposes don't change in a backward-incompatible fashion.”

Sam Newman

That makes the whole system modular and reliable. 

But what kind of system could it be? Are we talking about a standalone software consisting of various microservices? Perhaps, a bigger picture of a system consisting of a few softwares, each of them working over microservices at the same time? 

Well, let's get through this by describing a few illustrative examples!

domingo, 17 de mayo de 2026

Mi opinión sobre el uso irresponsable de la inteligencia artificial y sus consecuencias

Me gustaría dar mi punto de vista sobre el mal uso que se le da (en muchas ocasiones) a la inteligencia artificial en el entorno laboral. Cuando digo IA me refiero a ChatGPT, Gemini, Claude, etc. indistintamente.

Como ingeniero y desarrollador de software sé perfectamente el tiempo y esfuerzo que supone hacer ciertas tareas. Pueden ser tareas de código (implementar una nueva funcionalidad sobre la que hay poca documentación en internet), o escribir un estado del arte sobre cierta tecnología y para un determinado propósito. Quizás podría ser algo tan simple como responder a una pregunta que te hace un compañero: "Hey, Chati GPT, ¿cuál es la mejor herramienta para capturar tráfico en Ubuntu 22?"; y le "copipasteas" la respuesta a tu compañero casi sin haberla leído y, ni mucho menos, razonado o contrastado.

Bueno, hasta aquí uno puede pensar que no es para tanto, o que solamente podrían darse problemas serios si es que estamos copiando y pegando código de la IA en código crítico. Bajo mi punto de vista hay otros muchos escenarios en los que es muy fácil caer en la tentación de usar la IA de mala manera. Escenarios en los que, indirectamente, se perjudica al desarrollo de un software haciendo que se implementen cosas que no tienen sentido.

Esto suele pasar cuando se hacen las cosas con prisa (sea porque hay realmente poco tiempo o por ser "un ansias").

Imagen generada con la ayuda de IA (lo de copiar, pegar, rezar de la taza me ha matado).
Icono de volver arriba del blog Codio