21 de junio de 2005

Ubuntu como server

Estoy ahora configurando un Ubuntu como server, a ver que tal va. Ya lo instalé con el conjunto de paquetes "server", que excluye la interface gráfica. Estoy usando aptitude para manejar los paquetes, es una bonita aplicación en curses. Estaré actualizando aquí para ver que tal va.

17 de junio de 2005

Social bookmarking

He estado viendo bastantes temas sobre el sitio del.icio.us, que es un experimento en social bookmarking. Esto consiste en publicar los bookmarks de cada usuario y crear anillos o nubes de links, de tal manera de agrupar intereseses comunes. Es decir, si yo bookmarkeo por ejemplo el sitio de la Pocket Loox, se asume que tengo una de esas y el sistema enlaza mis bookmarks con los de otras personas a quienes les interesa este mismo tema. Está recomendable, y la verdad ahora uno tiene tantas cosas en Internet, que buscarlas se vuelve aburrido...en cambio con este tipo de navegación guiada (me recuerda los viejos tiempos de Yahoo! y ver los New sites of the Day) uno va descubriendo cosas más interesantes...como por ejemplo este sitio...

Si quieren ver mis bookmarks, están aquí, pero acabo de comenzarlas y no están completas. Hay que registrarse e instalar unos botoncitos de Javascript en su navegador.

9 de junio de 2005

Odisea de instalación de Ubuntu Hoary en VMware 4.5 (Parte 1)

Hace un par de semanas recibí los CDs de Ubuntu Linux 5.04 (release Hoary Hedgehog), y me decidí a probarlos en el ambiente VMWare, en el que corro mi vieja versión de RH9.

La primera impresión fue de un Linux moderno, con una excelente interfaz gráfica, pero completamente orientado a usuario normal, muy amigable. En general no tengo nada contra esto, pero me siento un poco atado cuando no tengo la línea de comando como el primer punto de acceso al sistema...pero bueno, seré un poco old fashioned en esto.

La instalación fue lenta, el sistema sólamente trae un CD y todos los paquetes que vienen están comprimidos, por lo que luego de la primera copia que hace se reinicia e inicia la descompresión e instalación. Tampoco me preguntó por el particionamiento, ni nada por el estilo...supongo que habrá una opción más customizada, pero lo veré luego.

Además, la primera instalación no detectó ningún disco, así que no podía continuar. Esto lo verifiqué en los foros de soporte de Ubuntu, y resulta que en esa versión de VMWare, los discos SCSI emulados no son reconocidos directamente por el OS, así que hay dos opciones: crear la máquina virtual con discos IDE, o hacer un modprobe del módulo SCSI de BusLogic mientras instala.

Media vez ya estuvo instalado y operando normal, incluso con audio dentro de VMWare, luego venía el punto de instalar las VMWare Tools, que son herramientas para mejorar el performance y drivers para una mejor integración con la máquina virtual. Esto implicó compilar las herramientas ya que VMWare no reconoce nativamente al Ubuntu.

Para poder compilar, tuve que usar el bonito paquete Synaptic para agregar los kernel-headers, y el compilador gcc, ya que no se incluyen por default. Con esto, ya supuestamente podía darle, pero ahora me pedía que estuviera fuera del ambiente gráfico...me tardé un poco en encontrar cómo cambiar esto, porque normalmente sólo me salgo del X server y estoy en la línea de comandos, pero como el Ubuntu no le gusta instalar login de texto....

Bueno, encontré al fin que el cambio de consola gráfica a consola de texto se hace por Ctrl-Space-F2, y se retorna a consola gráfica con Ctrl-Space-F7. Probablemente la mara acostumbrada a trabajar con login gráfico se mueren de risa de ver esto, pero yo no sabía...en lo personal me gusta arrancar el X con startx cuando lo necesito.

Al final logré entrar a la consola de texto, logré compilar los VMWare tools perfectamente, y según yo todo funcionó bien...me pasé con el truco de Ctrl-Space-F7 al ambiente gráfico, y ejecuté vmware-tools, y me apareció bien, logré sincronizar el reloj, etc.

Más tarde, al reiniciar de nuevo la máquina virtual, el sistema gráfico ya no funcionaba! >:-( Alagrannnn! Bueno, me esperaba algo como esto, porque el VMWare como tal lo marcaba como un genérico kernel 2.6, y bueh...

Traté de reinstalar, pensando que tal vez había habido un error del puro VMWare...continuaré al rato...

14 de mayo de 2005

Actualizando mi viejo RedHat 9

Hace algunos días se comentaba en LinuxMaya sobre el tema de actualizar un servidor Red Hat 9, cuyo soporte fue descontinuado por Red Hat. Investigando un poco, encontré la forma de hacerlo por medio de yum, que es el paquete de actualización que manejan los releases de Fedora.

Con las instrucciones de aquí, modificándolas un poco ya que la versión del código fuente cambia constantemente, funcionó de lo lindo. El cambio que hice fue que en vez de hacer un wget, lo bajé directamente con lynx desde la dirección http://download.fedoralegacy.org/fedora/1/os/SRPMS (uso lynx porque normalmente los servers los instalo sin ambiente gráfico...menos security updates, menos clavos, mejores prácticas...).

Otro cambio fue que la versión compilada coloca un yum.conf apuntando a los repositorios de Duke, así que hay que cambiarlo por los repositorios de Fedora Legacy Project.

P.S. Lo instalé también en un RH8 que tengo por allí y funcionó también...nice.

11 de mayo de 2005

La donna e mobile...

Bueno...regresando a la onda del blogging, el titulo de este post viene de Rigoletto y tiene dos temas (guglear queda como ejercicio para el lector) : uno por el Día de la Madre, que en Guatemala es el 10 de mayo de todos los años, y otro porque estoy posting desde una PocketPC, usando WiFi...ha sido una experiencia interesante "aprender jugando" sobre esta plataforma...ah, también esta es la razón por la cual este post no tiene links.

En otros temas, terminé de leer la trilogía de Artemis Fowl, la recomiendo como una buena alternativa de Harry Potter...

9 de marzo de 2005

Lorem ipsum...

Estaba creando una página un poco larga en mi site, y para dejar el texto que iba a rellenar escribí LOREM IPSUM, recordándome de algunas pruebas de impresión y paquetes de publishing que traen esto como una especie de "demo". Me dió la curiosidad y lo fui a guglear, y me encontré con la interesante historia de esta frase, que viene desde 1500s...wow...

8 de marzo de 2005

¿No trae licencia? ¡Bájese del carro con las manos en alto!

Hace poco me comentaron sobre un nuevo sitio de Internet, que iniciaron unos chavos de Honduras sobre desarrollo de juegos. Se llama GamedevHN y está con una comunidad muy activa de gente, y que tiene muchas ganas de trabajar.

Parte de la comunidad de este sitio es un foro para compartir código fuente que uno ha desarrollado. Eso me llamó la atención porque tengo un par de programitas interesantes que hice en mis tiempos de universidad. Ahora que ya los desempolvé (los saqué de los diskettes de 5 1/4"...not!), viene la pregunta: ¿cómo hago para compartirlos con los integrantes del sitio? ¿Sólo los pego en el site? ¿Los pongo en mi site?

Normalmente no debería ni siquiera importarme dónde se publiquen, pero recientemente he estado leyendo sobre las licencias de software tipo GPL, y de texto para compartir como el Creative Commons, así que decidí investigar un poco más.

Existen algunas licencias que yan sido aprobadas para uso en código abierto, que están detalladas aquí. Para mi código fuente he decidido usar la licencia MIT, y para los textos que pongo en my site la licencia Creative Commons Attribution Licence.

Me gustan estas licencias porque permiten al usuario hacer lo que quieran con el contenido (si es que les sirve de algo), dando únicamente crédito del autor original.

¿Por qué licenciar? Pues más que todo es por experimentar e investigar de qué se trata esto, y porque me parece que a medida que los temas de protección de derechos de autor y de gestión de derechos digitales (DRM) cada vez tendrán mayor impacto en lo que hagamos. Además, no debemos quedarnos rezagados y ser de los últimos que pensamos en esto, luego que todo el mundo está trabajando bajo estos parámetros.

28 de febrero de 2005

Fin de semana sin luz...

No hubo energía eléctrica este fin de semana en la casa, por un buen rato durante el sábado y el domingo. Así que aproveché para ponerme al día con la lectura, terminé The Battle for Betazed, una novela de Star Trek: The Next Generation que está muy buena, me gustó el concepto de los Betazed tratando de matar telepáticamente y la forma "benévola" en que se resolvió el conflicto moral de usar estas habilidades de forma negativa. Luego comenzé con Altered Carbon, una novela al estilo de The Caves of Steel de Asimov, toda una novela de detectives en un escenario de ciencia ficción. Este libro me está gustando bastante, con una historia que realmente llama la atención. Una parte especial es el Hotel Hendrix, cuyos dueños son AI (Inteligencias Artificiales)...

22 de febrero de 2005

Técnicas avanzadas de análisis para compiladores

Estuve recientemente investigando sobre la tecnología usada en editores inteligentes de entornos de desarrollo (IDEs), con capacidades de syntax highlighting, code completion, y otras facilidades de revisión incremental del código.

Los entornos modernos como Eclipse, Netbeans y otros ayudan al desarrollo rápido de software en Java u otros lenguajes (en el caso de Eclipse, por medio de una arquitectura excelente de plug-ins). Para facilitar el manejo de código fuente, se hace uso de técnicas en línea o incrementales de análisis de código. Por ejemplo, puede el editor crear automáticamente los bloques de { y } del cuerpo de una función, si detectan que se ha tecleado lo que pareciera ser una función en el lenguaje para el que se está editando. Si el programador cambiara la definición de la función, tal vez el editor tendría que modificar la estructura editada.

Para esto, se requiere analizar el texto editable, considerándolo como un stream de tokens, pero que tiene la posibilidad de cambiar dinámicamente, en un entorno muy localizado (muy cerca entre sí) de tokens adyacentes. Encontré un par de papers buenísimos del proyecto Harmonia de la Universidad de Berkeley: uno sobre análisis léxico dinámico (PDF) y otro sobre análisis sintáctico dinámico (PDF). Este último método es una adaptación del General LR (GLR) parsing algorithm, conocido también como Algoritmo de Tomita, o la versión rápida del GLR de Aycock y Horspool (PDF).

Lo interesante de estos algoritmos de parsing es que se realizan en paralelo, como si múltiples threads del parser se partieran en un punto del tiempo de análisis, para generar múltiples caminos dentro del proceso de búsqueda de soluciones.

Habrá que hacer más investigación de esto, y seguramente lo incorporaré en una clase futura.

10 de febrero de 2005

On the boulevard of broken dreams...

Wow...acabo de recibir el último CD de Green Day: American Idiot....está buenísimo! Había oído la canción que tocan en el radio "American Idiot", pero no me imagine que todas las canciones eran buenas. Llevo ratos de no tener un CD así en el que me gustan casi todas las canciones de primera oída (cual fue el último?!?!....creo que fue Elephant de White Stripes o All that you can't leave behind de U2).

Las canciones que más me han gustado de momento son Boulevard of Broken Dreams, Jesus of Suburbia y Whatsername.

9 de febrero de 2005

Nueva versión del libro del "Dragón"

El famosísimo libro de compiladores de Alfred Aho, et.al "Compilers, Principles, Techniques and Tools" (el Dragon Book, o libro del Dragon) tendrá una nueva versión este año, llamada "21st century compilers". Logré encontrar un site con una pequeña descripción y tabla de contenidos aquí. Ya lo agregué a mi wishlist, para comprarlo cuando salga. Se mira buenísimo, aunque el libro del dragón de 1986 todavía es usable, necesita actualización para las nuevas arquitecturas de CPUs con multicores, pipelining, etc.

3 de febrero de 2005

Hablando de vi

La página de vi que puse en el post anterior incluye aquí una entrevista con Bill Joy, el creador de vi, y que luego fuera a ser uno de los fundadores de Sun Microsystems. Vale la pena verla.

2 de febrero de 2005

El proyecto ya está posteado, y algunos cambios en la página

Acabo de poner en mi página el proyecto de Compiladores para este semestre (1er semestre del 2005). Hice también unos cambios, agregándole los anuncios de Google y un tracker de visitas (experimentos...experimentos).

Como estoy usando una herramienta para hacer la página (real men use vi, ya sé...), es un poco difícil controlar el HTML que se genera. Creo que no quedó tan bien, con el texto un poco abajo del margen superior de la página, para que quepan estos bloques de código, pero luego cuando tenga un poco más de tiempo lo trato de arreglar.

1 de febrero de 2005

Me gusta el Mambo...?!?

Bueno, ya me dejaron un comentario sobre Mambo, justo cuando estaba instalando este otro CMS...

Estuve probando el PHP-Nuke, pero le faltaba una característica que necesitaba: restringir noticias y posting a ciertos grupos, y niveles de acceso. Vamos a probar ahora con este otro paquete ...siempre sigo con el RH9, a ver si los RPMs que instalé le funcionan también, o si habrá que bajar más librerías.

25 de enero de 2005

Instalando PHP-Nuke en un "stock" RedHat 9

He estado tratando de instalar el sistema de gestión de contenidos, mejor conocido como Content Management System (CMS) PHP Nuke en RedHat 9 (hay unas comparaciones excelentes aquí de los diversos sistemas de este tipo...el Nuke me parece como el más popular).

Estoy usando Red Hat 9 para tener una plataforma estable, aunque sé que es un poco "vieja", y que RH no le está dando soporte.

El Nuke requería que Apache interpretara directamente PHP, pero esta versión no venía preparada directamente para esto, y además pasaron dos cosas:

i) Olvidé instalar el MySQL desde el inicio
ii) El programa de Add Packages de Red Hat 9 no agrega ciertos componentes básicos para el desarrollo en PHP.

Al final logré hacer que corriera el PHP Nuke...aquí están unos tips para hacer esta instalación de una manera más fácil, asumiendo una instalación limpia de RH9, a la cual no se le han corrido las actualizaciones sugeridas por el up2date:

i) Se requieren los siguientes packages, los cuales deben ser instalados de los CDs:
  • mysql-server
  • mysql
  • mysql-devel
  • php-mysql
  • php
  • php-devel
ii) Luego de verificar que estos paquetes están instalados, ya se puede proceder a hacer las actualizaciones y parches por medio de up2date, para facilidad.

ii) Estos packages no vienen en los CDs de instalación, y hay que bajarlos del sitio de Updates de Red Hat:
  • php-mysql
iii) Luego de instalar todo esto, ahora hay que configurar el servidor Apache para que interprete el lenguaje PHP. Usé las instrucciones que están en esta página, a partir de la sección 11 hasta la 15. Lo que dicen las secciones 1-10 son para instalar desde fuentes, y no aplican por estar usando paquetes binarios de instalación (RPMs). El script con el phpinfo() es bastante bueno para verificar la funcionalidad.

iv) Al tener esto ya instalado, entonces ya funcionaron las instrucciones del Install.txt del Nuke. Ahora viene lo bueno...me ayudó mucho usar los scripts de prueba de la sección 3.9.1 del PHP-Nuke HOW-TO.

Al terminar todos estos pasos, que requieron de una buena investigación, entonces ya estoy listo para la parte interesante....configurar el CMS.

20 de enero de 2005

¿Me sirve de algo esta clase?

¿Para qué sirve la clase de Compiladores? En este artículo hay una discusión sobre la relevancia de los conocimientos que se adquieren sobre el funcionamiento interno y la generación de código para su aplicación posterior en otro tipo de proyectos. De todas maneras sabemos que hay poca probabilidad que nuestro trabajo requiera de escribir un compilador, pero lo aprendido sí que sirve para muchas cosas, como analizar registros, mejorar nuestro propio código, usar programación en módulos, etc.

Java tutorial? We don't need no stinkin' Java tutorial!

Acabo de encontrar una forma interesante de aprender Java...programando pequeños robots de batalla! La página de esto está aquí.

Me parece casi como que fuera la evolución del famoso Redcode que me emocionó en los viejos tiempos...

19 de enero de 2005

Las posibilidades de trabajo de un grupo de amateurs armado de herramientas de software libre

Me ha parecido increíble el trabajo que han hecho un grupo de "aficionados" (lo pongo en comillas porque creo que son super profesionales) con las imágenes que la sonda Huygens ha enviado desde Titán (la luna de Saturno).

Han usado herramientas gratuitas, y armados de paciencia han pegado como un rompecabezas las imágenes "crudas" (raw images), para formar imágenes completas de panoramas, mapas de elevación, y hasta vistas tridimensionales.

Una página web que trata de reunir el trabajo de estos chavos es http://anthony.liekens.net/huygens_static.html

Muy recomendable visitarla, y conocer acerca de cómo hicieron este trabajo en un tiempo récord, incluso antes que las agencias espaciales NASA y ESA!

18 de enero de 2005

First post?

Como dirían en Slashdot...first post! En la clase de Compiladores que estoy impartiendo en Unitec, les voy a pedir a los alumnos como parte del proyecto que escriban semanalmente al menos una entrada sobre cómo van con el proyecto, que cuenten los problemas que van teniendo y lo que están aprendiendo, para que mejoren los temas de documentación y expresión.

Además, pues ya que está de moda tener un blog, podría estar escribiendo sobre otros temas, pero principalmente sobre ciencias de la computación, o tal vez sobre los libros que estoy leyendo, música que escucho, etc.

A ver que les parece...