Inicio

Novedades de pgsql en la 7.0

Entrevista con Bruce Momjian

Proyecto eros

Ligas interesantes

Bruce, la documentación y el libro de PostgreSQL

Introducción

Decidí entrevistar a Bruce Momjian después de observar su gran deseo de ayudar y enseñar a los miembros de pgsql-general, la lista de discusión
oficial de www.postgreSQL.org. También fue importante, pero no lo principal, que está cerca la publicación de su libro:PostgreSQL: Introduction and Concepts.

¿Quién es Bruce?

Bruce radica en Pennsylvania, USA, con su esposa Chistine y sus hijos Matthew, Luke y Peter. Una de sus frases preferidas es: 'Las buenas maneras están hechas de pequeños sacrificios' ('Good manners are made up of small sacrifices') de Ralph Waldo Emerson, la cual es congruente con el trato amable que muestra en la lista.

Bruce es muy religioso. Desde 1997 es el Presidente/Secretario de la hermandad de Andrés y Felipe (Brotherhood of Andrew and Phillip), y ministro de varones de la Bethany Church. En su firma electrónica se puede leer: 'If your life is a hard drive, Christ can be your back up'. Fue profesor de Ciencias de la Computación en la mejor high school de Fidadelfia. Estudió Matemáticas, tiene una Maestría en Educación (Master of Education) en Matemáticas y un Bachelor of Arts en Historia, con especialidad en Matemáticas.

En su tiempo no-libre se dedica, en sus propias palabras, a "diseñar y desarrollar aplicaciones de base de datos relacionales, a la medida, para algunas de las firmas legales en la nación. Administración de sistemas, capacitación y soporte'

Es miembro fundador del grupo PostgreSQL.org, en el cual se encarga de mantener actualizados varios documentos importantes para los usuarios y los desarrolladores.

Lo que sigue es una entrevista que sostuvimos, en inglés, por medio de correo electrónico entre el 16 y el 23 de abril de 2000.

Roberto (R): Hola Bruce, estoy seguro que a los lectores les gustaría saber en donde vives y que haces en un día típico.

Bruce (B): En Drexel Hill, Pennsilvania, está a algunas millas de Filadelfia. Trabajo desde mi casa, y me conecto por teléfono con mis clientes de la firma de abogados. Escribo programas a la medida para ellos. Todas mis aplicaciones hacen uso de bases de datos.

R: Me decías en un mensaje previo que sabes 'a little' español ¿cómo es que lo aprendiste?

B: Lo aprendí en la high scholl hace 20 años. Fuí un terrible estudiante de lenguas. Sin embargo, fuí a Madrid el año pasado y recordé casi todo mi español. Parece que fui un mal estudiante, pero de los que recuerdan lo que aprenden.

R. ¿Tienes un interés especial en escribir? ¿Has soñado en ser un escritor de ficción famoso?

B: No realmente. Alguna vez fuí maestro, así que supongo que me gusta enseñar, pero en forma escrita.

El proyecto PostgreSQL

R: ¿Cuando te empezaste a involucrar con el proyecto de PostgreSQL?

B: La primavera de 1996 con Marc (Fournier). Empezamos oficialmente en julio de 1996.

R: En el sitio de Postgres se habla del grupo Conductor (Steering) y del Mayor (Major) ¿En que radica la diferencia?

B: El grupo Conductor es el que toma las decisiones serias, por ejemplo las fechas de liberación, y hace los anuncios oficiales de PostgreSQL.
Los miembros del Mayor son los que han estado involucrados con Postgres por un largo periodo de tiempo y han hecho contribuciones importantes al proyecto.

R: ¿Se han reunido presencialmente alguna vez?

B: Bueno, les he telefoneado a la mayoría de ellos.

R: Estoy seguro que algunos de ustedes conocen y discuten las características de los DBMS comerciales, ¿Alguno de ellos les sirve como modelo, ya sea en funcionalidad o desempeño?

B: No realmente. Nuestra meta son las normas de SQL92. Agregamos características específicas de bases de datos en respuesta a las solicitudes de la gente.

R: ¿Se ha establecido como visión del grupo el competir cara a cara -en desempeño, características, herramientas de administración, documentación, apego a SQL92- con Oracle e Informix?

B: Ya hemos atrapado a algunos conversos de Oracle y de otras bases de datos. La única característica que nos falta en la 7.0 son los 'outer joins', bitácoras de escritura prevista (write-ahead-log) y tuplas grandes. Tenemos la intención de hacerlo para la 7.1.

R: ¿Alguna vez han recibido colaboraciones de código o de documentación de latinos? ¿Requieren más apoyo de la gente de España, Brasil, Argentina, México, etc.?

B: Tenemos una lista de discusión en español [R: se refiere a [email protected]]. No tenemos ninguno de nuestros FAQ o documentación traducidos al español. Eso es lo que necesitamos.

R: Parece que las características más demandadas por los usuarios eran los subselects y las references (llaves foráneas). ¿Porqué tomó tanto tiempo incorporarlos a Postgres?

B: Buena pregunta. Son muy complicados de implementar y debido a que todos somos voluntarios, solo podíamos implementarlos hasta que alguien se ofreciera para agregar esa funcionalidad. Vadim colaboró con los subselects y Jan agregó las llaves foráneas. Tomó algo de tiempo el contar con gente lo suficientemente experimentada para realizar esas tareas.

Actualmente estamos bastante bien, así que las características principales se están integrando de manera regular. Pensamos que la 7.1 tendrá incorporadas la mayoría de las características más importantes.

R: ¿No crees que la herencia no ha sido lo suficientemente explicada a los usuarios? ¿Porqué hay tan pocos ejemplos de ella en la documentación?

B: En el libro aparecerá una sección completa sobre ese tema. No hemos hecho mucho énfasis en ella debido a que existen algunos problemas con su implementación. Trabaja bien de manera aislada, pero cuando inicias capas de views/subqueries/alter y otros comandos complejos encima de ella, algunas veces no lo hace. Necesitamos alguien que se encargue de la herencia y la haga más robusta. Algunos se han ofrecido, así que es posible que tengamos algo nuevo para la 7.1. Los mismo para los arreglos.

R: En el archivo de HYSTORY se puede leer 'Nuevo lenguaje de programación interno plperl (Mark Hollomon)'. ¿A que se refiere? ¿Realmente quiere decir que podremos usar Perl para generar funciones en la 7.0? ¿Existe alguna documentación al respecto?

B: Sí, eso significa. De cualquier manera. parece que no lo hemos podido echar a andar, así que ni siquiera se compila por omisión. Alguien está trabajando en esto, esperamos tenerlo trabajando para la 7.0 o para la 7.0.X.

R: En el archivo HISTORY de la versión 7 beta 5 hay ¡62 cambios hechos por Bruce! Se puede observar que trabajas en muchas áreas del desarrollo de PostgreSQL (tablas temporales, índices, includes, pg_dump, el optimizador, etc.), pero ¿cuál es tu principal área de interés?

B: Me centro en los tópicos que la gente desea y que nadie más quiere tocar. La mayoría de los cambios son pequeños arreglos que realmente no asustan a nadie, así que yo los hago. Algunas veces realizo cambios importantes, que suelen requerir el apoyo de otros desarrolladores para trabajar al 100%.

R: Sabemos que estás trabajando con Thomas en los outer joins, por favor platícame algo de los detalles y de los avances.

B: Ya contamos con la implementación de la sintaxis de ANSI para los outer joins, hecha por Thomas. Ahora necesitamos cambios en el optimizador y el ejecutor. Desafortunadamente, para hacerlo de la manera adecuada, necesitamos reestructurar el árbol de consultas (query tree), y eso es un trabajo arduo. No se sí lo tengamos para la 7.1 o no. Yo espero que así sea.

La documentación y el libro

R: ¿Qué parte de la documentación de PostgresSQL mantienes? ¿Cómo la mantienes en sincronía con la lista de pgsql y el grupo de desarrollo? Debe ser muy difícil.

B: Mantengo el FAQ, el FAQ de desarrolladores, el material de capacitación del desarrollador, la lista de TODO (POR HACER), y el archivo de HISTORY de las diversas liberaciones. Les doy mantenimiento leyendo los mensajes y actualizando el TODO y el FAQ según se vaya requiriendo. Hago el HISTORY coleccionando todos los mensajes que acompañan a los 'commit' del CVS, y después los reviso y hago una lista de todos lo cambios hechos al CVS desde la última liberación.

R: En el prefacio de tu libro, Chen y Yung dicen que tienes una gran experiencia ayudando a los novatos en PostgreSQL, lo cual se observa en los mensajes que envías a la lista. ¿Tienes un interés especial en la lista? ¿Quien es el dueño de la lista?

B: La lista se aloja en la máquina de Marc. Yo me involucré con PostgreSQL debido a que quería ampliar mi experiencia en cómputo más allá de lo que estaba haciendo en mi trabajo. Realmente nunca planeé involucrarme tanto como lo he hecho, pero estoy muy contento de que así haya sucedido. Es muy satisfactorio y educativo.

R: ¿Cómo fue que decidiste hacer el libro? ¿Fue una decisión personal o fue influida por alguien del grupo?

B: Bien, recuerdo que alguien en el IRC me lo sugirió, y pensé que podría escribir un esbozo de lo que me gustaría cubrir en el libro. Algunos editores se comunicaron conmigo después de eso, pero yo estaba muy ocupado en mi trabajo, y no tenía tiempo para terminar ese esbozo. Eso fue en julio. En octubre, el trabajo disminuyó un poco, así que completé el esbozo. En ese momento me contactó Addison-Wesley. Fue la quinta editorial que lo hizo. Sus libros me gustan mucho, así que firmé con ellos. El arreglo lo hicimos en un solo día. Me ha gustado mucho trabajar con ellos.

R: ¿Porqué usaste LyX y LaTeX como tus herramientas para escribir, y no SGML y DocBook, como cualquier usuario de PostgreSQL esperaría?

B: Mira, no soy un gran fan de SGML. Eso es más bien para marcar (markup) y traducir entre diferentes formatos de salida. No existe el tipo de herramientas de SGML que puedan hacer lo que hice con LyX/LaTeX. No hay manera en que pudiera haber escrito el libro en SGML. Puedo generar una versión SGML si lo deseara porqué LyX está basado en etiquetas (tags), justo como SGML, en lugar de la manera tradicional en que lo hace un procesador de textos.

R: ¿No temen tú y Addison-Wesley que las versiones en formato PDF y HTML de tu libro que están en la red, minimicen las ventas de la versión en papel?

B: Bueno, puede pasar eso o puede incrementar la visibilidad del libro. Ya está sucediendo claramente esto último. Ya veremos si afecta negativamente la venta del libro. Yo creo que la publicidad adicional será más importante que cualquier pérdida de las ventas, y Addison-Wesley también lo considera así. Por otro lado, PostgreSQL es una base de datos de código abierto, así que sería penoso no tener el libro disponible en la red. De la misma manera, los lectores me han proporcionado un invaluable apoyo con sus sugerencias y correcciones, así que el libro será mucho mejor por encontrarse en la red. Nos va a llevar varios meses el escribirlo y tenerlo en las librerías. De esta manera, la gente ya puede usarlo y eso beneficia a PostgreSQL.

R: ¿Qué piensas acerca de 'abrir' las fuentes de tu libro? ¿No es solo una moda o una manera de promover los libros?

B: Bien, esa es una buena pregunta. Yo compré un libro de TCL debido a que leí el primer capítulo en la Internet, me gustó, así que lo compré. Yo supongo que otras personas comprarán mi libro porque han leído parte de él en la red y les gusta.

R: En la nota a los revisores pides comentarios y sugerencias a tu trabajo. ¿Realmente estás obteniendo retroalimentación de los lectores? ¿Qué dice tu editor al respecto?

B: Me han llegado toneladas de mensajes. Frecuentemente me llegan comentarios, generalmente dándome el número de línea de la versión en PDF, seguidos de alguna sugerencia o comentario. Le respondo a la persona, y le digo que sus cambios aparecerán en la versión del día siguiente. Eso le gusta a la gente, y es común que reciba más comentarios de ellos. Eso me posibilita el hacer cambios al libro más rápidamente, en lugar de tener que esperar la impresión, y después recibir los comentarios y no poder hacer cambios. La editorial piensa tambien que esto es fabuloso. Fue un problema tener las versiones PDF y HTML actualizadas de manera automática, y nunca esperé tener tanta retroalimentación. La retroalimentación ha hecho que valga la pena el esfuerzo de ponerlo en la web.

R: ¿Qué capítulo o parte de tu libro ha sido la más difícil de escribir?

B: El capítulo acerca de los joins. La mayoría de los libros llegan a este tema y se limitan a mostrar ejemplos, y esperan que tú te imagines cuándo y cómo usarlos. Yo no hago eso, sino voy paso por paso mostrando por qué, cuándo y cómo usar esta característica. Algunos otros capítulos fueron difíciles, como el Capítulo 8, pero el 6 fue el más duro. Otros resultaron sencillos ya que solo presentan conceptos fáciles de entender.

R: Afirmas en el prefacio que el lector no requiere ninguna teoria o experiencia en bases de datos ¿Es el tuyo un libro general de bases de datos o un libro de PostgreSQL?

B: Bien, es un libro de bases de datos, con una implementación en PostgreSQL. También será de valor para aquellos que no usen PostgreSQL porque los conceptos son los mismos.

R: ¿Cuando estará en las librerías?

B: Pensamos que al inicio del otoño de 2000.

R: Finalmente, quiero agradecerte por tu tiempo y tu paciencia con mi inglés, y pedirte algunas palabras para los lectores latinos, si es posible en español.

B: 'Quiero tu guesta mi libro'. That should be 'I hope you like my book', but I think it may be wrong.

R: Hasta luego Bruce.

Posdata

De un mensaje de Bruce el 19 de abril de 2000:

'I was walking downtown last month with my PostgreSQL hat and my Addison-Wesley
shirt, and I thought, ``Gee, I am an advertisement for myself'''

Roberto Andrade Fonseca

[email protected]