viernes, septiembre 25, 2009

El santo grial de la depuración es inminente

Hay algunas situaciones difíciles de depurar, por ejemplo cuando se pierde el control de un puntero que destruye la mitad de la memoria antes de causar una violación de segmento.
Si nunca han pasado por esto hay dos alternativas, o nunca han trabajado en C o son mucho más inteligentes que yo.
Lo cierto es que ese problema sería fácil de depurar con solo permitir que nuestro depurador nos deje ejecutar el programa en reverso, así solo ejecutamos el programa hacia atrás mientras vamos recuperando toda nuestra memoria, hasta el punto donde el puntero se desboca, y seguramente estaremos viendo porque se desbocó.
El problema siempre ha sido que eso es mucho más fácil de pensar que de implementar, porque lo que se requiere es prácticamente una máquina del tiempo para lograrlo.
Pues aunque Ud. no lo crea, se supone que la versión 7 de GDB permitirá la ejecución en reversa.  Lo mejor es que esta versión está prometida para este mes, por lo que asumo que es inminente su distribución, no tengo idea del precio a pagar por esta funcionalidad, pero de seguro no será barata, claro que podremos ejecutar los programas desde el final hasta el comienzo.
Filosofando un poco: un programa que se ejecuta hacia atrás se alimenta de soluciones y genera problemas, así que es mejor no dedicarle muchos recursos a esta tecnología.
Ahora en serio, si esta característica algún día fuera barata podríamos resolver algunos problemas clásicos de sistemas operativos con mucha facilidad, por ejemplo ya no nos preocuparíamos por los deadlocks, porque solamente hay que retroceder el programa adecuado un poquito hasta que se libere el recurso que causa la tranca.

martes, septiembre 22, 2009

Migrando de Subversion a Git

Este es tal vez la mejor receta que he encontrado para migrar repositorios de Subversion a Git:

  http://blog.woobling.org/2009/06/git-svn-abandon.html

Para que todo vaya bien hay que tener un archivo authors.txt que se usa en uno de los comando, mosca con eso.  Por lo demás esto parece dejar el repositorio casi como si fuera originalmente hecho en Git.

martes, septiembre 08, 2009

Popularidad de los navegadores

Viendo los reportes de Google Analytics sobre mis blogs noté algo interesante, y es que al menos la gente interesada en los tópicos que se tratan aquí usan mayormente Mozilla:
1.
Firefox
55.17%
2.
Internet Explorer
24.63%
3.
Mozilla
12.32%
4.
Chrome
3.94%
5.
Opera
2.46%
6.
Safari
0.99%
7.
Konqueror
0.49%
Una relación de 67% en Mozilla contra 25% de IE.
Las estadísticas de Perliscopio, son mucho más abrumadoras, aunque el blog es nuevo y no tiene tantas visitas, pero la relación allí es de 75% para Mozilla y 7% para IE. La conclusión evidente es que perlero no usa IE, ni que use Windows.

sábado, septiembre 05, 2009

El renacimiento de Perl

En el año 2006 estaba coordinando 2 proyectos, uno de ellos era una aplicación web (obviamente en Catalyst), y parte de mi trabajo es buscar mejores herramientas para facilitar la labor de los programadores, así fue como me topé por primera vez con Moose, que aunque incipiente, captó mi atención de inmediato, así seguí los enlaces hacia Class::MOP, donde me hablaban del Meta Object Protocol, y por terminé aprendiendo algo de Common Lisp y particularmente CLOS.
Más o menos al mismo tiempo estaba coordinando el desarrollo de un sistema distribuido para Linux (en C++ por requerimiento del cliente), y también estaba en la búsqueda de alguna herramienta que aliviara el dolor de que nos causaba ese desarrollo, conocí Erlang y redescubrí la programación funcional, que me llevaron finalmente a OCaml, Haskell y Scheme.
[artículo completo]