domingo, 26 de febrero de 2012

Actualizaciones automáticas, instalación de complementos, y Windows haciendo cosas raras

En el sitio de ZinjaI agregé hace un tiempo una sección de complementos y versiones de prueba entre las descargas. Lo que uno encuentra allí son ejecutables de versiones no estables (¿alguna lo es realmente?... no, pero estos no están ni testeados a veces) y archivos para facilitar el trabajo con bibliotecas (templates de proyectos, archivos para el autocompletado, binarios, documentación, etc.). Estos archivos se presentan como comprimidos (zip o tgz) y la "instalación" consiste en que el usuario lo descargue y lo descomprima encima de la instalación original de ZinjaI.

Por el momento sólo hay un complemento (para trabajar con la biblioteca SFML) y encima no muy actualizado, pero me gustaría mejorar esa situación actualizándolo y agregando algunos otros. Dándole vueltas al asunto empecé a analizar la idea de incorporar una opción de menú para instalar los complementos directamente desde ZinjaI. Es decir, que ZinjaI los descomprima donde el sabe de modo que no haya forma de equivocarse, y podría ser que en el futuro, además de descomprimir, también ejecute algunas acciones como alterar configuraciones para colocar botones accesos a las referencias en la barra de herramientas.

De la instalación de complementos desde el mismo programa surgen dos tópicos interesantes para comentar: 1) ¿que tal si hago que ZinjaI acceda al sitio y descargue él los complementos para que el proceso sea todavía más fácil y rápido?, y 2) algunas cuestiones de implementación relacionadas a los privilegios y permisos de usuario que requiere esta instalación.

miércoles, 15 de febrero de 2012

Como abandonar los frames de html en 3 simples pasos

En estos días tuve que hacer pequeñas modificaciones en los sitios web de ZinjaI y PSeInt, y esto me llevó a recordar lo poco recomendable que era utilizar frames html para armarlas. Tengo que aclarar que no se casi nada sobre lenguajes de programación y marcado para web. Es decir, entiendo como funcionan, pero no estoy realmente familiarizado con ninguno de ellos. Simplemente aprendí lo escensial de html y javascript durante un curso en mi carrera de grado y completé esta formación con un curso de php muy muy básico que tomé por separado (no tengo ni idea de la sintaxis para hacer una clase en php por ejemplo). Con este poco conocimiento y google a mano me las rebusco para armar los sitios webs de mis proyectos, ya que son sitios bastante simples, razón por la cual tampoco me tomé el tiempo de profundizar mucho sobre estos temas. Y entonces, como era de esperar, la implementación es horrible.

Basicamente me gustan los diseños claros: una pequeña cabecera que no moleste, un menú bien a mano, y el contenido al centro ocupando la mayor parte de la ventana. Una forma muy fácil de implementar esta organización en html es usando frames. Los frames básicamente particionan el espacio en varias sub-areas y dentro de cada una se carga una página web individualmente. Entonces, cuando empecé hace años a armar el sitio del pseint, dividí la ventana en tres: cabecera, menú y contenido, escribí un html para cada una y listo. Lo bueno de los frames es que cada área puede ser independiente y cargar una página completa hasta de otro sitio si se quiere. Además, al acceder a un enlace en el contenido por ejemplo se actualiza esa área, manteniendo el menú y la cabecera intactos.

lunes, 13 de febrero de 2012

Bienvenido Al Mundo Del Mañana

Probando, probando... Sí, ssssí, hola... hola... 1,2,3, probando. Bien, parece que está encendido...

Tengo el agrado de dirigirme a ustedes con el vital objetivo de informarles de que va este nuevo blog. Para empezar hay que saber que tengo, hasta ahora, tres proyectos de sofware que empecé hace tiempo y mantengo en mis ratos libres: PSeInt, ZinjaI y MotoGT. El primero es una herramienta para aprender a programar, el segundo un IDE para programar en C++, y el tercero un juego de carreras.

Resulta que estos programas no son perfectos en muchísimos aspectos, no se ajustan a lo que algunos usuarios esperan o imaginan en otros, o simplemente tienen cosas medio raras que, para bien o para mal, llaman la atención del programador más avesado. Entonces, suelo recibir preguntas cuyas respuestas no son cortas o directas, sino que tienen historia, que hay que considerar casos, hay que analizar alternativas, o simplemente hay que aceptar errores y limitaciones. Pues bien, este será el lugar donde trate esos temas, explayandome lo necesario y sin estructura alguna.

Por ejemplo: mil veces me han pedido que agregue la posibilidad de definir funciones en PSeInt; o me han preguntado por qué el autocompletado de ZinjaI actúa extraño; etc. Publicaré mis respuestas esperando que se entienda lo que me llevó a hacer las cosas de ese modo, y tal vez alguien se enriquezca de mi experiencia para no cometer en sus proyectos los mismos errores, aprenda de mis pocos aciertos, o simplemente sacie su infinita curiosidad. Además, va a ser un buen lugar para publicar las cosas que pasan actualmente en mi cabeza y las discusiones que tengo conmigo mismo o con otros usuarios en relación a nuevas funcionalidades que planeo implementar y que presentan algún desafío interesante.

Leerán artículos de todo tipo, desde aquellos que simplemente expliquen cuestiones funcionales sin entrar en detalles, hasta otros que discutan cuestiones de implementación, con contenido algo más técnico. Algunos estarán muy relacionados con lo que hacen mis programas, otros tocarán temas más generales, como la programación multiplataforma, el desarrollo de software libre, etc. En lo personal, me servirá para documentar muchas decisiones, pero espero que a alguien más le resulte útil o al menos interesante.