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.

viernes, 25 de noviembre de 2022

Primeros cambios en el interior PSeInt (2da parte)

Repito el comienzo del último post: "hay tres grandes objetivos: unificar algoritmos repetidos, eliminar todo el estado global, y separar/independizar los más posible las etapas del proceso de análisis e interpretación". En aquel me centraba en el primero, en este cuento cómo van los otros dos.

jueves, 29 de septiembre de 2022

Primeros cambios en el interior PSeInt

Ya comenté que iba a ir refactorizando muy de a poco el horrible código de pseint. Se podría decir que hay tres grandes objetivos: unificar algoritmos repetidos, eliminar todo el estado global, y separar/independizar los más posible las etapas del proceso de análisis e interpretación. Veamos cómo y para qué.

viernes, 2 de septiembre de 2022

La metamorfosis interna de PSeInt

Siempre dije que internamente el intérprete está muy mal diseñado, y muchas veces amagué con rehacerlo completamente. Sin embargo ninguno de esos amagues se completó por falta de tiempo. Así que ahora voy a tomar el camino más largo porque... Claro, como me falta tiempo, mejor ir por el camino más largo, ¿no? ¿WTF?

martes, 2 de agosto de 2022

¿Y por qué más silencio?

En mi post anterior daba un par de excusas para justificar por qué el blog parecía algo abandonado, y prometía tratar de retomar el ritmo. Sin embargo, desde entonces pasó todo lo contrario, y tanto el blog como los proyectos quedaron todavía más abandonados. Hubo una muy buena justificación para esto:

lunes, 17 de enero de 2022

¿Y por qué tanto silencio?

He llegado a la conclusión de que esto de "la nueva normalidad" tiene todo que ver con que últimamente escriba tan poco en el blog. Es obvio que trabajar desde casa le cambia a uno completamente la rutina. Y entre los efectos de este cambio, hay muchas cosas buenas y muchas malas. Para el blog, tocaron malas.

jueves, 10 de junio de 2021

El problema de los foros de PSeInt

No se qué hacer con los foros de PSeInt, pero tarde o temprano voy a tomar alguna decisión drástica.

Al principio de los tiempos, cuando recién empezaba con el proyecto, recibía con alegría cada mensaje individual que alguno de los pocos usuarios se tomaba el trabajo de enviar. Sin importar lo útil, o inútil que fuera el contenido, leía y respondía a cada uno, en cada foro.

Con el tiempo pasaron dos o tres cosas bastante malas que me llevaron al estado actual: casi no miro los foros, ignoro el 95% de los mensajes. ¿Qué pasó?

lunes, 25 de enero de 2021

¿Qué estuve haciendo el 2020?

Como para sacudir un poco el polvo que se acumuló en este blog arranco tarde el año con un post más relacionado a la docencia que a los proyectos de software que le dieron origen. Pero esta vez escribo mirando hacia atrás. Digamos que este 2020 que al fin terminó fue cuanto menos "complicado", y todo lo que pasó derivó en un silencio de radio para este blog, y en casi nulas actualizaciones para esos proyectos.

lunes, 28 de septiembre de 2020

Probando otros sabores de GNU/Linux

Hace algo más de un mes cambié el disco de mi notebook y tuve que reinstalar todo. Y por primera vez desde que uso GNU/Linux, instalé en mi PC principal algo que no es Slackware. Pasé más de 20 años usando exclusivamente Slackware en mis PCs de trabajo. Probé otras distros en otras PCs o en máquinas virtuales, pero con ninguna había trabajado demasiado en serio. Ahora intenté con Fedora 32. Esperaba encontrar problemas durante la transición, y lo hice. Pero no fueron del tipo de problemas que esperaba.