jueves, 1 de junio de 2023

¿Y ahora qué sigue?

Finalmente pude publicar una actualización de PSeInt después de tanto tiempo. Repasemos en qué situación quedó este proyecto y cuáles serían mis próximos pasos, tanto para PSeInt como para ZinjaI.

 

viernes, 28 de abril de 2023

"No me acuerdo" (a.k.a. "estudié por catálogo").

"No me acuerdo" es, en el 95% de los casos, una de las peores respuestas que me pueden dar mis alumnos. Y tiene que ver con la forma de encarar el estudio y un problema muy recurrente que vemos en las carreras de ingeniería: lo que voy a llamar "estudiar por catálogo".

martes, 18 de abril de 2023

Un pequeño y raro bug en PSeInt

La semana pasada corregí un bug de PSeInt de lo más curioso, por la forma en que se manifestaba, y la causa del mismo. Es un ejemplo de las "sutilezas" de programar orientado a eventos y la inversión del control, y de lo importante de la programación defensiva.

miércoles, 22 de marzo de 2023

El proceso de publicar una versión de PSeInt

Últimamente estuve escribiendo sobre los cambios internos de PSeInt. Todavía estoy muy lejos de donde quiero estar en este sentido, pero hice una pausa en un punto razonable como poder sacar una versión. Para actualizar los perfiles, publicar algunas correcciones a bugs u otras mejoras menores, actualizar las opciones de descarga, etc... El mantenimiento que vengo posponiendo hace más de un año.

Pero aún así, aunque el código nuevo anda, todavía no pude publicarlo. ¿Qué me está frenando?

viernes, 3 de febrero de 2023

Las palabras clave en los fuentes de PSeInt

Siguiendo con los cambios internos en PSeInt, me embarqué en uno de los más trabajosos, que tiene que ver con la posibilidad de variar las palabras claves del pseudocódigo. Veamos el problema, la parte resuelta, la parte que falta, y las ventajas que traerá cuando se complete.

martes, 17 de enero de 2023

Sobrecargando funciones según el tipo de retorno

En C++, la sobrecarga de funciones consiste en tener dos o más funciones con un mismo nombre pero diferentes parámetros (en tipo y/o en cantidad). Al hacer una llamada, el compilador analiza los argumentos y decide a cuál corresponde invocar. Notar que en esta definición no menciono al tipo/valor de retorno, y es porque no sirve para resolver la sobrecarga (¿qué haríamos por ej con cout<<foo()?). Pero a veces sería útil poder hacerlo. Me encontré con esta pseudo-necesidad en PSeInt, y vengo a comentar una solución que me funcionó muy bien.

 

martes, 10 de enero de 2023

Más avances en la reconstrucción de PSeInt

Durante las últimas dos semanas pude invertir una buena cantidad de horas en PSeInt, y seguir con la tan postergada reestructuración interna. De a poquito empieza a tomar forma y a verse una luz al final del túnel.