El dragón en la luna

Mis ideas y sueños mezclados con un poco de locura

Nueva semana

Hoy empiezo una nueva semana, y hay que aprovecharla para hacer nuevas cosas. Ésta en particular estará algo ocupada, la versión beta 3 de MoonDragon se publicará el viernes y todavía hay algunas cosas que falta por acabar.

También más tarde espero actualizar WordPress a la versión 2.5.1, por aquello de la seguridad. He oído comentarios bastante malos sobre el proceso de actualización de WordPress, espero que a mí no me vaya tan mal. Luego les cuento.

Update: Mi proveedor de hosting tiene una bonita opción de actualización automática de WordPress. Los comentarios sobre la actualización eran tan desastrosos que creí que ni siquiera así sería sencillo, pero me equivoque. Todo sin problemas.

Bazaar, un sistema de control de versiones

Hace relativamente poco tiempo que he empezado a utilizar Bazaar como sistema de control de versiones en lugar de CVS, tal y como lo mencione en este otro post , y con la reciente noticia de que bazaar se ha convertido en un proyecto GNU creo que vale la pena aprovechar para escribir algo en el blog hablar un poco sobre mis impresiones con el sistema.

Llevo ya casi un año de haber empezado a trabajar con los sistemas de control de versiones, desde que empecé a travesear en Sourceforge . Al principio no tenía idea de como funcionaban y tuve que pasar un par de días leyendo al respecto, y para bien o para mal, empecé con CVS. Me costo bastante adaptarme, habían muchas cosas que no eran intuitivas y cometí muchos errores, incluso varios meses después de haber empezado a usarlo.

Consideré la posibilidad de cambiarme a Subversion , pero las diferencias no me parecieron significativas como para eso. La primera vez que escuche sobre Bazaar me pareció que era solamente un sistema de control más que andaba por ahí, pero ya viéndolo con detenimiento me di cuenta que éste si aporta muchas cosas interesantes.

Creo que una de las cosas que más me gusto de Bazaar en un comienzo es que cada revisión guarda una copia de todos los archivos, estén modificados o no. CVS solía tratar cada archivo individualmente, y si no marcabas explícitamente que todos estaban relacionados, era imposible saber que revisión de X archivo era compatible con otro archivo Y. Sien embargo, esta no es la característica más importante de Bazaar y, si no me equivoco, Subversion también funciona de esta manera.

En donde se encuentra realmente el potencial de Bazaar es en su manejo de ramas o branchs. CVS y Subversion tienen sus maneras de utilizar ramas, pero siempre me pareció que crear una rama era una decisión muy importante que no se debía tomar a la ligera. Con Bazaar, las ramas son la forma ordinaria de trabajar, permitiendo e incluso fomentando a que cada desarrollador trabaje en su propia rama, e incluso tenga varias ramas a su disposición.

El orden dentro de un proyecto es probablemente el factor más importante para que este siga creciendo. La experimentación también es importante, un proyecto que deja de probar cosas nuevas esta condenado a desaparecer. Bazaar permite combinar las dos cosas, un desarrollador puede tener su propia rama experimental, en la que puede hacer y deshacer a su antojo con todas las ventajas de un VCS ordinario, como tener distintas revisiones, sin contaminar la rama principal de desarrollo que debe de mantenerse impecable.

La mezcla entre las ramas es un proceso muy delicado, no queremos que el trabajo de otros se pierda por un error de compatibilidad, y tampoco queremos perder la línea de los cambios que se han realizado. Bazaar trata de hacer este proceso lo más sencillo posible y lleva un control bastante estricto de las ramas que se han mezclado y los aportes que se han incluído. Hay muchos conflictos que siempre necesitarán asistencia humana para resolverse, pero hay que recordar que el software es una herramienta y no debe servir para hacer el trabajo en nuestro lugar.

Por el momento estoy bastante contento con este sistema de control de versiones, junto con el sistema de blueprints de Launchpad , me ha ayudado mucho con la organización y el avance de MoonDragon . Espero que Bazaar siempre siga mejorando, personalmente espero el día en el que su plugin para Eclipse sea estable y completamente funcional.

Ritmo de Trabajo

Una de las cosas que más odio de mi mismo es que no soy capaz de mantener un ritmo de trabajo estable durante un tiempo prolongado. He tratado de corregir ese defecto, pero todavía no he tenido éxito en erradicarlo completamente, siempre estoy atrapado en ciclos de euforia y depresión, algo así como con el alcohol U_U.

Usualmente, cuanto más grande es la euforia y la dedicación que le pongo a lo que hago, más grande es después el cansancio y la depresión. Reducir el impacto es posible tratando de no excederme con el trabajo, pero el verdadero problema esta del otro lado de la moneda, como restaurarme a un estado consiente luego de haber caído en el abismo de la inutilidad.

Muchas veces, a pesar del agotamiento, he logrado continuar fingiendo tener todas mis facultades mentales en pleno funcionamiento, pero es imposible disimular por completo el desgaste. Para ponerlo fácilmente, la calidad de mi trabajo empieza a apestar, mis breaks son cada vez más frecuentes y menos saludables.

El verdadero daño se hace al romper la continuidad de los proyectos en los que estoy trabajando. Una semana, o incluso un par de días, puede causar muchos retrasos, o problemas mayores con los integrantes de un grupo de trabajo.

Aunque al final todo se resume a la actitud que se tiene frente al trabajo, es también importante la preparación y el orden de lo que se hace. Trabajando en un ambiente desordenado es más fácil agotarse, y si no se establecen pausas adecuadas para descansar, el resultado es claro.

Con esta reflexión cierro este ciclo, es momento de recuperar los ánimos y volver a poner en marcha las cosas que se quedaron a medias.

Activar sonido 5.1 en Ubuntu Hardy

Activar el sonido 5.1 en linux siempre ha sido un poco complicado y en la mayoría de los casos no era posible que más de un programa tuviera acceso al sonido al mismo tiempo. Con la integración de pulseaudio en la nueva versión de Ubuntu este proceso se ha simplificado y los resultados han mejorado bastante.

Para poder activar la salida en los 6 canales es necesario ingresar el siguiente comando en la consola

sudo gedit /etc/pulse/daemon.conf

con el cual abriremos un editor de texto con la preferencias de pulseaudio. Luego casi al final del archivo cambiamos

;default-sample-channels = 2

por

default-sample-channels = 6

Hay que poner especial atención en quitar el punto y coma al inicio de la línea, también puedes cambiar la cantidad de canales por el número adecuado dependiendo de tu configuración de sonido.

Luego de eso, solamente es necesario reiniciar el daemon de pulseaudio, pero como esto puede ser complicado para algunos usuarios puedes reiniciar tu máquina para ver aplicados los cambios.

Nota: Este proceso fue comprobado en una instalación fresca de Ubuntu 8.04 y con una tarjeta de sonido soportada por Alsa.

Resumen de la semana

He fallado con mi intento de mantener actualizado este blog, he pasado bastante ocupado y a pesar de que si han habido cosas de las que he querido escribir, no he logrado despegarme de lo que estoy haciendo para redactar algo decente.

Esta semana ha sido dedicada casi en su totalidad a MoonDragon. El proyecto todavía es muy joven, y muchas veces hay cosas que no se han organizado bien aún, hasta hace poco todas las decisiones en el proyecto salían de mi humilde opinión personal, lo cual no era muy productivo. He traspasado mi planeación personal al sistema de blueprints de Launchpad, y tengo que decir que ha sido más agotador que sentarme a programar.

A veces siento que me complico demasiado con los detalles. La documentación, la legibilidad del código, la organización en Launchpad, todas son cosas que han requerido de mucho tiempo y algunas todavía no están terminadas, sin embargo me parece que es mejor trabajar en eso para darle unas buenas bases al proyecto desde el inicio.

Uno de los cambios más radicales de esta semana ha sido empezar a utilizar el sistema de control de versiones Bazaar (antes utilizaba CVS). Puedo decir que me ha gustado mucho la transición, y como uno de mis malos hábitos es intentar aprovechar todas las características posibles de las herramientas que tengo disponbiles perdí mucho tiempo leyendo toda la documentación posible, pero al final valió la pena.

Espero que semanas como esta en las que es necesario dedicarle tanto tiempo a la estructuración del proyecto no se den muy a menudo, si cada semana tuviera que reestructurar las cosas entonces demostraría que nunca lo hago bien. Escribir en el blog no ha sido la única cosa que he dejado de lado, a veces simplemente me olvido de que hay todo un mundo alla afuera.

Pd. Creí que este post iba a ser una especie de excusa de porque no he actualizado esta semana, pero termino un poco diferente a como me lo imagine.

Archivo