convert-mailq-to-tabbed.gawk

Escribí este código para convertir la salida del mailq de Postfix a un formato tabular. Al tener el mailq en un formato tabular, se puede leer más fácilmente con scripts de Bash, filtrar con grep, etc.

El script ignora los mensajes de error de entrega que mailq pudiera indicar.

Está hecho en GNU Awk.

Se usa así: mailq | convert-mailq-to-tabbed.gawk.

#!/usr/bin/gawk -f

# Autor: Octavio Alvarez Piza
# Licencia: GPLv3.

BEGIN {
	OFS="t";
	mode = "from";
}

/(/ || /^--/ || /^-Queue/ {
	next;
}

$1 !~ /^$/ && mode == "to" {
	TO = TO $1 ";"	
}

$1 ~ /[0-9]/ && mode == "from" {
	ID=$1
	SIZE=$2
	DOW=$3
	MONTH=$4
	DAY=$5
	TIME=$6
	FROM=$7;
	TO=""
	mode="to";
}

/^$/ && mode == "to" {
	print ID, SIZE, DOW, MONTH, DAY, TIME, FROM, TO
	mode="from";
}

Anécdota de la puerta que azota

Aquí en la oficina el equipo trabaja en una oficina común de 7 personas. La puerta tiene de esas bisagras para que se cierre sola. Por causa de esa bisagra, cuando uno sale de la oficina, la puerta suele azotar. Entonces, cuando yo salgo, tengo la costumbre de detener la puerta con el pie para que choque con mi pie y la puerta no azote tanto. Como ya me aprendí de memoria la puerta no necesito voltear, así que esto de poner el pie lo hago de espaldas.

Pero hoy…

Voy saliendo, pongo el pie y no siento la puerta. Yo de espaldas a la puerta. Y entonces hago el pie más para atrás, para sentir qué pasó. Y no siento la puerta… Entonces volteo, y había un compañero que también estaba tratando de salir… Detuvo la puerta y me pregunta «¿qué pedo contigo?»

… y yo como caballo pateando para atrás.

Opinión sobre la apreciación de la baja calidad del Software Libre

Introducción

No les va a gustar lo que van a leer. Esta es una respuesta a un post de Enrique Monge llamado «El reto del Software Libre» en La Bitácora Woodiesca y que se publica en Planeta Debian en Español. Es una respuesta cuyo objetivo no es atacar al autor original, sino simplemente alinear un argumento que me parece desbalanceado e injusto y siento que puedo hacer algo al respecto. He opinado con anterioridad como él, y aún hay ciertos puntos donde concuerdo, pero no en todos.

Antes de opinar, quiero aclarar también que soy un total partidario del software libre. Uso software libre en mi casa y trabajo tanto como puedo y defiendo el movimiento del software libre. Pero antes de eso soy partidario de la libertad humana, lo que significa que también estoy a favor de que una empresa tenga la liberdad de escoger las herramientas de software que le parezcan mejores –así sea software privativo– siempre y cuando esté dispuesta a pagar las correspondientes licencias. Sí, esas empresas SÍ existen y yo trabajo para una de ellas.

Dicho lo anterior, la apreciación del usuario promedio sobre el software libre se basa primordialmente en la calidad de su paquete ofimático (OpenOffice.org). Para el usuario promedio, un Windows sin Office es como un teclado sin Enter. Y hoy por hoy, LA CALIDAD DE OPENOFFICE.ORG ES BAJA. Tal vez al final de la carrera el software libre venza (y eso es lo que yo espero) pero en este momento, OpenOffice.org tiene demasiados errores y muchos están expuestos.

El caso específico de OpenOffice.org Writer

A lo largo de mi comentario me voy a referir a Writer, pero esto puede extenderse hacia casi cualquier aplicación de OpenOffice.org.

Como aclaración: si tú no usas las herramientas de ajuste automático de documentos de Writer, no me vas a entender y diferirás de todo lo que yo diga. En documentos grandes, colocar manualmente una imagen flotante usando tablas (en lugar de aplicar el formato de flotación), hacer una tabla de contenidos manualmente para un documento extenso (en lugar de usar estilos o referencias y generarla automáticamente), es tan idiota como centrar un título con espacios y tabuladores en lugar de aplicar el formato de centrado.

La realidad del interés de los usuarios finales

A los usuarios finales les interesa que el software simplemente funcione. No les interesa poder modificarlo, porque no saben cómo hacerlo. No les interesa aprender a modificarlo porque la curva de aprendizaje es tan alta, que cuando logren aprenderlo, ya habrán fallado en su interés original varias veces. Yo mismo he bajado el código, lo he intentado entender, sin éxito. Por «usuarios finales» no me refiero a la persona que quiere redactar una cartita en su casa. Me refiero al editor que prepara un libro y necesita un buen soporte para encabezados y pies de página. Me refiero al director de una empresa que necesita que el flujo de información no se interrumpa por errores estúpidos en un programa mal hecho, porque simplemente lo va a cambiar. Me refiero al ingeniero que escribe una memoria técnica con imágenes y adjuntos y necesita uniformidad en la presentación. Me refiero al estudiante reconocido por sus compañeros que prepara un periódico local en hojas tamaño oficio porque de eso dispone. Esos son los usuarios que, además de tener la apertura de probar un nuevo software, van a tener la autoridad de hablar bien o mal del mismo, ya que esa es su herramienta diaria y necesita que satisfaga sus necesidades. La gente les preguntará en un futuro cuál es la herramienta que usaron, porque tarde o temprano tendrían que hacerlo. Insisto, también hay «usuarios de potencia» en hojas de cálculo.

Con OpenOffice.org ya puedes hacer cartitas, pero no puedes hacer libros. Que no se tome tan literal. ¿A qué me refiero con esto? A la gente le interesa que el software funcione y ofrezca al menos lo mismo que su competencia o haga algo impresionantemente útil que su competencia no haga.

Ejemplos de fallas y reporte de errores

Yo redacto memorias técnicas y exploto parte algunas capacidades no avanzadas de Writer. A veces le pido a Writer que haga un estilo de gráficos donde se mantenga la «razón de aspecto» de una imagen (la razón alto por ancho) con una altura automática mínima de 0.1 cm pero con un ancho fijo de 5 cm. Esta configuración es importante porque puedo preparar una serie de pasos con pantallazos: almaceno en un «estilo» de imagen y simplemente aplicar el mismo estilo a todos los pantallazos y quedan con altura variable. Lo que OpenOffice.org Writer hizo fue ignorar lo de la razón de aspecto y me puso todas las imagenes del mismo estilo de 5 cm de largo y 0.1 cm fijo de alto. Tuve que aplicar los cambios a cada imagen manualmente, y aunque lo haya logrado, el software no hizo lo que yo necesitaba. Esto último se traduce a que no satisfizo mis necesidades, no cumplió mis expectativas.

Ya sé, me dirás: «puedes reportar el bug». Lo he intentado, pero en el caso de OpenOffice.org, la mayoría de mis reportes han quedado en el olvido. Existe otro bug —que sí reporté—, donde al borrar los formatos duros (entiéndanse «formatos aplicados manualmente»), los estilos de caracter aplicados se pierden. No puedo marcar una palabra como «extranjerismo» y aplicarle una letra oblícua mediante un estilo, porque si marco todo el documento y le pido que elimine los formatos aplicados manuales, elimina la aplicación del estilo «extranjerismo» a esa palabra. Eso Word lo sabe hace perfectamente desde hace mucho tiempo; Writer simplemente no lo hace. Al reportar el bug, lo marcaron como un bug que en realidad no es bug. Mostraron una serie de documentos para «avalarse». Al analizar el documento, los conceptos básicos del documento estaban ambiguos y contradictorios. Todo esto se les hizo notar, con referencias y ejemplos, y simplemente dejaron de responder. Yo hice mi parte.

Tan fácil como esto: a veces Writer coloca las imágenes flotantes fuera de los márgenes de la hoja, y debo hacer ajustes de párrafos, en lugar de mandarme todo el párrafo a la hoja siguiente. ¿Por qué es mejor que lo mande a la hoja siguiente? Porque si yo no me doy cuenta de este error (digamos que cambié los márgenes en un documento de 35 hojas) y lo mando a impresora, voy a ver imágenes cortadas, y me voy a ver «descuidado» por usar una herramienta que toma decisiones estúpidas.

Para ese caso, mejor me quedo con Word.

Conclusión sobre el reto del Software Libre

El verdadero reto no es convencer a la gente ni pugnar porque la gente se abra a opciones alternas. Sería hacer que la gente se convenza por sí misma mediante los buenos comentarios que reciba de la gente de su confianza. La gente prestará más atención a lo que dice su jefe o su subordinado, su familia, sus amigos o sus maestros que lo que diga una bola de geeks en un estrado donde se siente la vibra de que están tratando de ser convencidos como si fuera mítin político.

Postdata: comentarios irrealistas

Además de todo lo anterior, los comentarios que queremos que escuchen deben ser REALISTAS. Cuando los comentarios no son realistas, se generan expectativas que no se satisfacen. El grado de frustración sube ante la decepción en su primera impresión. Por ejemplo: no hagas comentarios del tipo «Linux es ecológico porque lo puedes instalar en hardware viejo» porque no es cierto y se vuelve contraproducente. Se puede desde un punto de vista muy técnico —yo instalé el kernel 2.4 en una 386, pero tardó 10 minutos en hacer un «echo *«—. Cierto, existe Damn Small Linux, pero es una distribución que usa versiones anteriores (gtk-1.2 en lugar de gtk-2.0, por ejemplo). Esto da una distribución reducida de propósito específico sin soporte para gran parte de las funciones que los usuarios hoy dan por hecho. Equivale a decir que «Windows lo puedes instalar en hardware viejo» y para lograrlo te ofrecen un disco de Windows 98 ó 2000. El resultado final es que estos «rumores» llegan a oidos de ilusos que en los festivales de instalación piden que se le ponga Linux a su Pentium I con 32 MB de RAM y se decepcionan porque no se pudo.

Otro más: decir que «en Linux no hay virus» es una verdad a medias. Aunque es muy complicado que un virus se redistribuya fácilmente en Linux, uno debería decir «en Linux prácticamente no hay virus» o «en Linux no hay virus… todavía«.

Gracias por el tiempo que le han dedicado a leer este extenso artículo.