Kabosu - Creando cosas
Publicado: 2025-10-22
Etiquetas: Proyectos, Reto Open Source, Software
Buenos días, tardes o noches:
Si has leído un poco blog te habrás dado cuenta de que me gusta trastear con código de otras personas. Tengo un sección entera para el Reto de la paella que consiste en coger un juego open source y modificarlo para añadir una paella o algo relacionado. También tengo artículos portando juegos a Linux o a nuevas versiones de Godot. Me gusta ver lo que ha hecho otra gente y aprender.
Una idea que tengo en la cabeza desde hace tiempo es hacer una web de retos de programación que la gente pueda usar para aprender o mejorar en la programación. Tendría una lista de ejercicios dividida por lenguaje (C++, Python, Java...) y nivel de dificultad. La novedad respecto a otras páginas ya existentes es que los ejercicios consistirían en hacer cambios en proyectos de software libre. Por ejemplo, modificar la base de datos Postgres para añadir una nueva función "esNavidad" que reciba una fecha y diga si la fecha corresponde o no al día de Navidad. Estos cambios siempre serían tonterías graciosas, bromas.
Creo que una página así tendría beneficios tanto para la gente que quiere mejorar en la programación como para los proyectos que potencialmente tendrían más ojos mirando su código. Además, al menos a mí, me parecen retos divertidos.
El caso es que, como tantas ideas que tengo, nunca la he llevado a cabo porque requiere mucho tiempo y porque me da miedo crear ejercicios para algún proyecto y que la gente empiece a enviar PRs a su equipo con las tonterías de los ejercicios. O se pongan a molestar en sus foros preguntando dudas. En general causar algún tipo de problema a la gente desarrolla software libre.
Esta idea me vino después de releer Code Reading: The Open Source Perspective de Diomidis Spinelli. Creo que es uno de los libros que más me han influido desde que lo leí por primera vez hace más de 20 años. Es un libro en el que explica conceptos de programación pero para los ejemplos utiliza código de diferentes proyectos de software libre. Es viejo y algo caro pero me parece muy interesante además que lo que explica sigue teniendo validez si tienes interés en C/C++.
Aunque no tengo pensado hacer una web específica para retos, sí que los venía haciendo yo por mi cuenta. Como ya me he cansado un poco del Reto de la Paella porque me he quedado sin ideas, he decidido crear una nueva sección en el blog llamada Reto Open Source para hacer este tipo de ejercicios. Haré los ejercicios para mí y los pondré en esta página. Quizá en un futuro cuando tenga varios los combinaré con los retos de la paella y haré una página dedicada.
Los Retos Open Source consistirán en tres tipos de ejercicios:
Los ejercicios básicos son cambios pequeños como añadir una nueva opción de menú que diga "hola" cuando las seleccionas. Suele ser sencillo de hacer mirando algún menú existente. Este tipo de cambios ayuda a familiarizarse un poco con el proyecto. Por ejemplo ver dónde se crean los menús, si es en el mismo código o con alguna interfaz, si el texto del menú está en ficheros de traducción y cosas así.
El segundo tipo de ejercicios se me ocurrió hace poco y no estaba en la idea inicial de la web que quería hacer. Estos ejercicios consisten en arreglar pequeños fallos que ya se han solucionado (y esto es importante) en el proyecto. Los fallos serán cosas como cuelgues, botones que no funcionan, errores de traducción, etc. Habrá que coger el código antes de que el equipo de desarrollo arreglase el problema e intentar arreglarlo. Luego simplemente hay que buscar la siguiente versión del proyecto y ver cómo se resolvió realmente. Esto me facilita mucho las cosas a la hora de encontrar ejercicios porque simplemente puedo recorrer la lista de commits de un proyecto e identificar, por el título o número de líneas modificadas, cambios que son más o menos sencillos.
El último tipo de ejercicio es el que inició esta idea y serían cambios más o menos importantes en el proyecto pero para añadir una característica absurda. Algo que no está ya en el código porque nadie está tan mal de la cabeza.
Hice el primer Reto Open Source hace ya unas semanas y tengo algunas notas. Ahora solo tengo que escribir un artículo a partir de ellas que espero tener en los próximos días.