« Marzo 2007 | Bitácora principal | Mayo 2007 »

Ya tengo funcionando un repositorio alternativo de Postgresql para ser usado con Mercurial, el cual se actualiza cada hora.

El estado del repositorio es «funciona para mis necesidades», mejor de lo que había pensado originalmente.

El repositorio contiene todo el historial de Postgresql, aunque no contiene ninguna de las ramas. Actualmente ocupa 191 MB; mientras que el repositorio CVS ocupa 331 MB.

Me gustaría añadirle las ramas para ver el uso de espacio en disco entre ambos repositorios. Además, que podría ser de utilidad para otros desarrolladores en algún momento.

Para crear mantener sincronizado el repositorio he utilizado una mezcla de rsync con cvs20hg. Al ejecutarlo por primera vez tardó alrededor de 4 horas; y el tiempo de las posteriores actualizaciones se mide en segundos (incluyendo el rsync). Basta ejecutar los siguientes comandos:

    $ rsync -azCH --delete rsync.postgresql.org::pgsql-cvs ${MIRROR_DST}
    $ LC_ALL="en_US.ISO-8859-1" cvs20hg ${MIRROR_DST} pgsql ${HG_DST}

MIRROR_DST corresponde al directorio de destino de la copia del repositorio CVS de Postgresql; y HG_DST es donde se aloja el repositorio para Mercurial.

23:30

| Comentarios (0)

Con Tatiana tomamos el acuerdo de apagar la luz a las 23:30 y levantarnos a las 06:30. Para ordenar el horario y el sueño. Entre las 06:30 y las 07:40, levantarse y trabajar en lo que uno estime conveniente. Desayuno a las 07:40 y a las 08:00 partir al trabajo.

Ha resultado a medias en el horario de apagado de luz, pero de a poco se acostumbra el organismo.

Probablemente, para los que viven en Santiago es la rutina de todos los días o incluso con menos horas se sueño. Pero, parafraseando a Alvaro, mencionar en una misma frase Santiago y calidad de vida es un oxímoron (para la mayoría de sus ciudadanos).

Mañana se libera Ubuntu Feisty. Con fuerte énfasis en Software Libre, quizás por eso hay ciertos problemillas no resueltos con paquetes no libres.

Lo interesante de este cuento, es que Feisty trae Xorg 7.2; la cual tiene problemas con programas propietarios, como Java (aún no es libre aunque está la promesa). El problema se produce porque hay un cambio desde la antigua Xlib a su reemplazo XCB.

En el caso de Java, está enlazado estáticamente con una versión de Xlib de XFree86 del año 2000; la cual tiene conflictos con la versión actual de XCB.

David Nusinow explicó que esa es la razón por la cual «Xorg 7.2 aún no está en Debian inestable». Es decir, no está en Debian inestable, porque tiene produce algunas regresiones. Pero estará en la versión estable de Ubuntu. Al parecer, el problema no ha sido resuelto en Ubuntu. Y es difícil, porque el problema aún no está resuelto en Sun, quienes proveen Java.

Si dependes de algún programa en Java que no funcione con gcj, tal vez valga la pena esperar un poco.

Lo último en tecnología en 1984 al alcance de la mano de cualquier persona (con recursos).

¿Qué puede hacer su teléfono?
Equipos modernos de videoconferencia

La imagen corresponde a un artículo de «Mecánica popular» de abril de 1984, y se puede apreciar la portabilidad del equipamiento. La webcam y el computador personal de fondo, com pantalla de 80x24 y teclado numérico a la izquierda.

Como siempre, el mensaje destaca que «con sólo apretar un botón» es posible conectarse. Lo cual no ha variado mucho hasta hoy en día; excepto que en estos días para graficar lo mismo se muestra el puntero del roedor sobre una imagen o botón.

Para comenzar, seguiré la siguiente línea de trabajo:

Si el guía trabaja de una forma, intenta trabajar como tu guía hasta que te sientas suficientemente cómodo para seguir tu propio camino.

Lo primero es definir la estructura de directorios de acuerdo al flujo de trabajo. En este caso, seguiré la forma en que Alvaro lo hace.

    pgsql/
             source
             install
             build

Dentro de source, un directorio por cada versión de trabajo. Alvaro maneja múltiples versiones porque es su trabajo. Yo sólo necesito 2: la rama principal de desarrollo (CVS HEAD) y el árbol para mi proyecto: autovacumm. Similar caso sucede para los directorios install y build, para la instalación y contrucción de los programas, respectivamente.

Tengo algunas alternativas para trabajar. Mantener vía cvs la rama principal, y en dicha copia manejarla con Mercurial. Así, por cada actualización (cvs update), aplicaré los cambios en el repositorio con Mercurial (hg commit).

El repositorio de trabajo, entonces, es una rama de mi repositorio principal, la cual la puedo crear con hg clone. Cada cierto tiempo, puedo sincronizar ambos repositorios y si se presentan conflictos, resolverlos tan pronto como sea posible; en vez de esperar hasta el final, donde puede ser más difícil conciliar los cambios. Esto vía hg pull desde el repositorio de trabajo y hg merge.

Como alternativa de trabajo, puedo manejar una cola de parches, con la extensión mq. Esto es, antes de sincronizar ambos repositorios, extraer los cambios en el repositorio de trabajo (vía hg qpop -a), sincronizar y posteriormente volver a aplicar los cambios (vía hg qpush -a).

Con cualquiera de las dos alternativas, y en caso de conflicto, puedo mezclar visualmente los cambios con meld, que es ejecutado automáticamente cuando surge un conflicto.

Lo siguiente es obtener el código fuente. Las instrucciones para obtener el código vía cvs es distinta a las que usualmente he empleado en otros proyectos. Ellos exportan el árbol con toda la historia de cvs vía rsync. Sólo necesito una imagen de lo que hay en el repositorio en un momento determinado. Mi tiempo cero de desarrollo es cuando obtengo el repositorio por primera vez, y puedo abstraerme del historial antiguo.

Siguiendo la estructura de directorios y el flujo de trabajo de Alvaro (aunque con ligeras modificaciones para manejarlos con Mercurial), puedo usar los mismos scripts que él, de los cuales comentaré mas adelante.

Ha sido lenta mi partida. Intentaré describir mi experiencia por si resultase útil para algún futuro interesado.

Hace unos días, llegó un aviso de una suscripción automática a dos grupos de discusión (privados) para los postulantes que fueron aceptados en los «veranos de programación». Una es de discusión general, mientras que la otra es la lista de estudiantes.

El inicio es caótico. Y juzgar por algunos mensajes, años anteriores también ha sido así. Llegan muchos mensajes del tipo «¿Alguién más es de Timbuctú?». Y algunos buscan más detalles, preguntando por una determinada universidad. En una lista de 1536 suscritos, con que un 10% tome semejante actitud es suficiente para inundar de mensajes inútiles una lista que pretende ser útil.

Otro tipo de mensajes es: «Mi propuesta aceptada/rechazada está en ..., ¿Alguien las puede comentar?». Nadie las comenta; pero si un montón de gente sigue la corriente preguntando cada uno por sus propias propuestas.

Y para no ser menos, al parecer el año pasado hubo avalancha de presentaciones: «Yo soy Fulano, estudio en ... y mi proyecto es ...». Si parte uno, se produce un efecto dominó. Para prevenir este problema, alguno de los encargados creo una página en donde cada postulante ingresa su perfil. Todo bien, excepto que un grupo no menor, responde al mensaje donde se hizo dicho anuncio con un «Mi perfil ya está actualizado».

En unos tres días no sé cuantos mensaje habré recibido, pero fácilmente más de 300. De los cuales 3 ó 4 son útiles y el resto paja molida.

Hoy enviaron un correo indicando que de persistir ese comportamiento, se iba a comenzar a moderar. Un llamado a la cordura parecía suficiente. Pero siguieron llegando algunos de esos mensajes inútiles. La lista ahora es moderada. ¡Qué alivio!.

De los mensajes rescatados, debo enviar un certificado de alumno de la universidad y resolver el asunto de los impuestos para recibir el pago. Seguro que Eduardo Silva tiene recomendaciones. Es su segundo año participando.

Y otro dato útil fue, una bitácora del proyecto.

Tal como lo indiqué en en mi comentario anterior, este año presente dos propuestas para el programa «Summer of Code» de Google. Una de ellas fue aceptada, se trata de un proyecto para Postgres: Autovacuum Scheduling, cuyo guía será Alvaro Herrera.

Hoy nos dieron la bienvenida en la lista de desarrollo de Postgres. Cada proyecto tiene matices distintos respecto a este programa para estudiantes, algunos más orientados a atraer nuevos colabores, otros orientados a potenciar sus colaboradores, otros a lograr la implementación de características o una mezcla de cualquiera de ellas.

En el caso de Postgres, sugieren enviar a la lista de desarrollo la propuesta antes de postular en Google, para discutir y perfeccionar la idea. Y si se presentan otras propuestas similares, quiene haya enviado a la lista de correo la propuesta se le concede preferencia sobre el tema (siempre que sea buena y sea candidata a ser elegida).

En proyectos como Debian, no me imagino como una persona que no es colaborador del proyecto podría postular en forma exitosa. Llegar a ser mantenedor de un producto en Debian tarda mucho tiempo, y son más de mil desarrolladores. Pero esto es sólo una conjetura.

En proyectos como GNOME, tenía una fuerte convicción en atraer nuevos colaboradores más que lograr una características rebuscada dentro del proyecto; aunque se admitían excepciones. Y las hubo. Allí presente una idea, pero en las preguntas/respuestas en el período de selección no realice defensa alguna de mi propuesta; por el tenor de una pregunta, intuí que habían otras similares y preferí dar un paso al costado. Además, que por un par de preguntas intuí que debía saber más respecto del tema a abordar o bien, tener un cierto grado de avance con el cual desarrollar el problema. Honestamente, no tenía ninguno de los dos. Fue Mathias Hasselmann quien lo desarrollará. Es un tipo que ha contribuido antes con Pango, lo cual es bastante.

Para postular es requisito estar estudiando. Así es que estoy estudiando. Y combinar trabajo tiempo completo, maestría, ensayos de teatro y hogar; toma su tiempo de adaptación. Aunque debo resolverlo rápido.

Lo de la maestría es algo que había comentado a pocas personas. Y me incomoda un poco, porque hay una suerte de «alta expectativa» respecto a mis resultados, lo cual no es relajante precisamente. Además, que debo adelantar en mis estudios tanto como pueda entre abril y mayo, porque después es más complicado laboralmente.

Más adelante daré detalles sobre mis avances (o no) de este «invierno de programación» y de mis impresiones de los cursos de la maestría.

Yelcho

| Comentarios (0)

En la provincia de Palena hay un río Yelcho, un volcán Yelcho, un ventisquero Yelcho, un valle del Yelcho y un lago Yelcho, probablemente navegado por una embarcación llamada Yelcho. Además, un puente Yelcho, donde desagua el lago Yelcho y comienza el río Yelcho.

Esta semana ocurrió un tragedia en el ventisquero Yelcho. No es la primera y probablemente no será la última. Un par de profesores de Chaitén fueron a visitar el ventisquero. Uno de ellos murió atrapado por un trozo de hielo que se desprendió.

El ventisquero es de fácil acceso, y aunque algunos textos lo señalan como el ventisquero más cercano a la línea del Ecuador, lo cierto es que poco más al norte es posible encontrar otros. Lo cual es completamente irrelevante.

Para llegar al ventisquero es necesario realizar una caminata de 1 a 1,5 horas desde la carretera austral. En el camino, es posible ver Nalcas grandes, donde una persona puede cobijarse bajo una de sus hojas. Luego de atravesar el bosque, se llega a un espacio abierto en donde es posible ver el ventisquero. Para llegar a la base misma del ventisquero, es necesario caminar entre 45 y 60 minutos más.

Para ilustrar el lugar del suceso, busqué algunas fotos y la ubicación en los mapas de Google. Las fotos satelitales son del 2004 apróximadamente, mientras que las otras corresponden a fines de enero de 1998. En 6 años, los cambios en la fisonomía y tamaño de un ventisquero son grandes. Pero aún así, sirve para tener una referencia.

En la primera imagen, es posible ver el tamaño del ventisquero. El punto muestra la parte más cercana a la cual es posible acceder. Y desde donde tomé las fotografías años atrás.

Imagen satelital del Ventisquero Yelcho
Boca del ventisquero, desde donde fueron tomadas las fotografías

En la siguiente imagen, es para tener un punto de referencia respecto de la carretera austral. El ventisquero se ve pequeño. Y más, el punto desde donde uno toma fotografías.

Imagen satelital del ventisquero Yelcho
Posición de la boca del ventisquero respecto de la carretera austral (la línea recta vertical a la derecha

Vista general de la boca del ventisquero Yelcho En esa época, la mayor cantidad de fotografías las tomé en formato diapositiva. Dejando para papel, aquellas en blanco y negro. En la esquina inferior izquierda es posible ver una persona agachada. Es mi amigo Marcelo, ubicando el trípode. Luego, es posible tener noción del trozo de hielo respecto de una persona. El año anterior, había muerto un turista israelita bajo 1,5 toneladas (estimadas) de hielo. También es posible ver la forma en que el hielo se va separando en capas, que da un aspecto que recuerda el «Opera House» de Sydney (guardando las proporciones).

En la boca del ventisquero tomando fotografías Pero los colores que toma el hielo, en las distintas partes donde recibe luz, es impresionante. Y varía el ángulo en que uno se ubica y es distinto a como se ve desde arriba. Y a veces uno corre riesgos. Algunos lo harán para tomar un trozo de hielo para preparse un wisky con hielos milenarios. Otros lo hacen para tomar fotografías. Otros lo harán simplemente para observar.

Los colores que se ven, son parecidos a la siguiente imagen. Dicha imagen es de una diapositiva, pero con la luz del proyector, la percepción cambia completamente.

Azul del hielo

(Esta es una nota atrasada)

El 1° de abril para los anglosajones es el equivalente del 28 de diciembre para las iberoamericanos (día de los inocentes). Y siempre se acostumbran a hacer bromas. Otros como Google anuncian nuevos servicios (sembrando —en un inicio— la duda la veracidad del anuncio).

Wanda necesita cambio de agua Es el primer año que tengo a Wanda (el pez de la fortuna de GNOME) en el panel, o al menos que coincida con el 1° de abril. Estaba usando el computador cuando de pronto, a las 00:00 aparece un mensaje en la pantalla indicando que el agua de la pecera de Wanda necesitaba recambio. Y durante la mañana, Wanda no daba la fortuna. Estaba boca abajo con el agua turbia, tal como se ve en la imagen.

Durante la tarde, la imagen se conmutaba, entre agua turbia y agua limpia. Ya en la noche, volvió a dar la fortuna.

Algunos, encuentran inútil una aplicación como Wanda. De hecho, no tiene otro fin más que entretener. De los primeros «juegos» disponibles en Unix. Lo único que hacer es tomar una «galleta de la fortuna» y entregar un proverbio. Dicho de otro modo: es una interfaz gráfica para el clásico programa fortune.

Lo que no intenté ese día fue liberar a Wanda (Alt-F2 + free the fish).

Hace poco un compañero de trabajo (de los históricos :-) llevó algunas revistas antiguas para regalar. Entre ellas algunas «Mecánica popular». Yo me quedé con una de 1959, pero entre otras había una de 1984 que aproveché digitalizar algunos anuncios, como el siguiente de Atari:

Anuncio de Atari en Abril de 1984
Anuncio del nuevo Atari 600 XL en abril de 1984.

A la derecha de la imagen, un texto vertical, que indica «Diseño de mapa programado en el computador ATARI 600 XL» (el énfasis es mío). Y entre las características: «Nueva consola con teclado profesional, 4 sonidos, 256 colores, 11 modos gráficos y alta resolución» (nuevamente, el énfasis es mío).

La técnica de comercialización no ha variado mucho desde entonces. Un computador para hacer las tareas del colegio; aunque —en variados casos— la mayor parte del tiempo se use sólo para jugar. Y aunque han pasado 23 años, aún es posible escuchar anuncios en las radioemisoras: «Estudie la carrera del futuro: programación de computadores».

Lo cierto es que, de los pocos afortunados que conocí que tuvieron uno, sí programaron algunas rutinas. En ese entonces, los computadores se vendían con manuales de programación. Y no había Intenet ni televisión por cable, sólo 3 ó 4 canales de televisión abierta. Para el que tenía el recurso, programar era una alternativa cierta y entretenida.

Seguramente fue uno de estos anuncios lo que motivaron al papá de Franco a comprarle un computador en 1986. Franco fue de los lo usó para aprender a programar, partiendo por un «I am franco catrin» (lo que desmuestra que al computador no hay que tenerle miedo).

1984 fue el año del lanzamiento de Apple MacIntosh, pero si una película tardaba años en llegar a los cines chilenos; menos un anuncio de esa naturaleza podría llegar para consumo hogareño.

Por cierto, yo nunca tuve uno de esos Atari. El primer computador me lo compré luego de salir de la universidad. Y después de todo, hoy venden consolas «Atari Flashback» en $ 24.000 (US$ 45), pero sólo con juegos precargados. Quizás podría comprar uno.

Mármol

| Comentarios (0)

Ayer comentaba sobre las propuestas de los trabajos de verano de Google.

Hoy, leyendo Planet KDE me entero a través de Torsten Rahn que tienen 3 propuestas de trabajo para Marble.

Marble es un widget para mapas geográficos. La idea es poder mostrar mapas de la misma forma que hoy lo hacen programas como Google Earth o Nasa World Wind. Su objetivo es ser ligero y libre. Interesante.

Así es también que existe una iniciativa (quizás) similar a Tango, aunque con un ámbito más acotado, se trata Oxygen y su filosofía es similar: «más es íconos, cambiar la experiencia del usuario».

Los veranos de programación («Summer of Code») es una iniciativa de Google que permite a estudiantes de educación superior trabajar en proyectos de código abierto durante el período estival.

Esta iniciativa partió el 2005. Y es una forma de devolver la mano de Google, ya que es uno de los grandes usuarios de Software Libre. Y considera el período de vacaciones (verano)... de los estudiantes del hemisferio norte; el cual coindice con el período de mayor carga de los estudiantes del hemisferio sur.

Google elige 100 proyectos. Y a cada proyecto le asigna una cantidad determinada de cupos; donde cada cupo consta de US$ 5.000 ($ 2.666.750), donde el 10% se asigna al tutor del proyecto y el 90% al estudiante que trabajará en dicho proyecto. El pago se realiza en forma parcial, para garantizar que llegue a buen éxito. Es decir, son US$ 5.000 para proyectos exitosos, y en el peor de los casos US$ 500 para los que fracasan antes de llegar a la mitad del proyecto.

Este año, GNOME recibió 29 cupos, es decir, Google ha asignado US$ 145.000 ($ 77.248.750) al proyecto. A los amigos de KDE le asignaron 40 cupos. Anoche se comentaba que fueron 30, pero ninguno de los encargados se dio cuenta que estaban aprobando 2 propuestas de una misma persona, y Google permite que un estudiante trabaje sólo en proyecto en esta iniciativa.

El año pasado GNOME recibió 20 cupos. Desconozco el criterio de asignación de cupos, pero me imagino que hay una relación directa entre la cantidad de proyectos postulantes, el éxito alcanzado en los años anteriores y visibilidad del proyecto. El año pasado 181 estudiantes postularon con proyectos para GNOME, y este año lo hicieron 174. Sin embargo, el comentario general es que este año fue más competitivo en el sentido que habían muchas propuestas buenas.

A pesar que en GNOME uno puede contar 29 cupos, hay otros proyectos que también tienen relación con GNOME o con sus desarrolladores. Por ejemplo, el programa de dibujos vectoriales Inkscape recibió 7 cupos, Beagle recibió 3 cupos, Mono3 cupos directamente relacionados (2 para Tomboy, 1 para MonoTorrent), además de uno que incorpora C/C++ a Monodevelop, para el caso de Ubuntu, unos 3 directamente relacionados. ya sea para integrar Orca con Beryl/Compiz; sincronización de escritorios, etc. Incluso FreeBSD, tiene un cupo para interfaz GNOME para freebsd-update, en GNU hay un proyecto para integrar GNOME/GStreamer para Java. Seguramente hay más, lo mismo para nuestros amigos de KDE, donde también he visto propuestas relacionadas en otros proyectos.

Algunas propuestas que me parecieron interesantes y me gustaría que lleguen a buen puerto son:

Yo presenté 2 propuestas, pero luego comentaré de ello.

El club de emprendedores

Siguiendo enlaces, me encontré con este curioso anuncio:

Colegio Bill Gates
Colegio con formación empresarial

También es posible visitar el sitio del colegio, pero es como cualquier otro sitio. No tiene el mismo encanto de un letrero de antaño.

Al parecer en otros países latinoamericanos también están rayando la papa con la importancia de ser emprendedor.

Algunos emprendedores, crean sus propias salas de cine (estilo tercermundista). Y como a la hinchada criolla siempre hay que tenerla contenta, en la cartelera se añade un partido de fútbol en mitad del itinerario.

Cine tercermundista
Cartelera de cine

...y podría ser en cualquier pueblo de nuestra latinoamérica.

Las fotografías fueron tomadas por una persona cuyo nombre desconozco, pero cuyo seudónimo es «papeluchoasesino»

Actualización: Gracias a un comentario del mismo autor de las fotografías, se que «papeluchoasesino» lleva por nombre Carlos Salazar.