sábado, 24 de enero de 2009

HAL y los diccionarios

El lector atento y educado ---lo demuestra el que no haya rechistado todavía--- habrá caído en la cuenta de una laguna en la adaptación de HAL a nuestra lengua. Incluso con las configuraciones realizadas, de vez en cuando siguen apareciendo mensajes breves o hasta páginas enteras de manual en inglés. Y seguirían apareciendo aun instalando paquetes ---se verá enseguida qué es eso de un paquete y cómo se instala--- como manpages-es-extra, que contiene páginas de manual traducidas a nuestro idioma y no instaladas por defecto.

A pesar de las triquiñuelas del autor para evitar entrar en el asunto durante las sesiones precedentes, llega el momento de decir la verdad. Los mensajes de HAL no están traducidos en su totalidad. La razón es sencilla. Las traducciones son obra de un grupo no muy numeroso de voluntarios que todavía no han culminado su trabajo, a pesar de haber dedicado infinitas horas al tema.

¿Qué hacer entonces? La primera recomendación para aquellos diestros en nuestra lengua y el inglés es colaborar en la traducción. Al fin y el cabo, HAL no es sino una work in progress, fruto de una colaboración, en la mayoría de los casos desinteresada, de hombres y mujeres de todas las regiones del mundo, edades y profesiones.

Los principiantes no podrán, sin embargo, asumir una tarea de esta envergadura y tendrán que acostumbrarse a luchar en ocasiones con el inglés. Alguna ayuda como un diccionario bilingüe podría ser eficaz en tales casos.

HAL no es capaz todavía de traducir adecuadamente textos enteros por sí mismo y sin intervención humana. Pero, ¿podemos pedirle que nos traduzca palabras?

Para resolver esta duda, vamos a dar ---cómo no--- un breve rodeo.

La lengua de HAL no es algo que forma parte de su ser como la pata de una mesa respecto de su mesa. HAL es una máquina programable. Lo cual significa, sin duda, muchas cosas. Significa, entre otras, que HAL, tal cual sale de la fábrica, es una mente prácticamente vacía, que sólo sabe hacer cuentas elementales y unas pocas cosas nimias más. Que pueda hablar su lengua, tal como la habla, y que responda con la sabiduría que lo hace se lo debemos a un grupo numeroso de individuos que se dedican a programarlo, a introducirle secuencias de texto, más o menos incomprensibles para la mayoría, llamadas programas. Los programas que constituyen a HAL se organizan en un entramado muy complejo de capas superpuestas que dependen unas de otras y que hacen posible que nosotros, sus contertulios, nos encontremos con la maravilla y el misterio de su inteligencia.

Pues bien, cuando instalamos una determinada distribución, la mente de HAL se ve nutrida por un buen número de tales programas, aquellos que los arquitectos de toda distribución en general y de la nuestra en particular consideran que son los básicos para que HAL se comporte con inteligencia y versatilidad suficientes. Tanto estos programas básicos como el resto de programas disponibles se agrupan en conjuntos de programas, relacionados por sus propósitos comunes o sus interdependencias, denominados paquetes. Empaquetar programas es una estrategia que las distribuciones siguen con el fin de facilitar la gestión de la ingente cantidad de programas existente.

En definitiva, las preguntas y consultas que HAL entiende a priori y la forma que tiene de responder a ellas son consecuencia de los paquetes que nuestra distribución ha considerado básicos.

Ahora bien, en algún momento de nuestras charlas con HAL puede suceder que los paquetes básicos no sean suficientes para cumplir nuestros propósitos. Dicho de otro modo, pueden darse situaciones en las que HAL no tenga conocimiento (no esté programado) para recibir cierto tipo de órdenes. Es entonces cuando nosotros mismos tendremos que tomar la iniciativa y alimentar a HAL con nuevos paquetes, instalar en su mente nuevos campos semánticos (nuevas órdenes) y formas de comportamiento relacionados con tales campos.

¿Pero cómo descubrimos que ha llegado el momento de instalar un paquete nuevo? Normalmente, y si no nos lo ha soplado ningún amigo, el proceso típico que conduce a tal conclusión es el siguiente:

  1. Deseamos hacer algo en concreto, pero desconocemos la orden u órdenes adecuadas que habría que dar a HAL para conseguirlo.

  2. Pedimos ayuda a HAL con la orden apropos [o cualquier otra semejante, aquí no explicada].

  3. Echamos un vistazo a las páginas de manual correspondientes sobre los posibles candidatos, si los hay.

  4. Ni apropos ni man nos informan de nada que sirva para cumplir nuestro objetivo.

  5. Ergo: es probable que tengamos que instalar un paquete nuevo.


Con todo este bagaje previo podemos retomar el hilo principal de la sesión de hoy.

Dejamos pendiente una pregunta: ¿es posible contar con HAL para que haga las veces de un diccionario, y, en especial, de un diccionario bilingüe?

Como no conocemos ninguna orden en este sentido, lo lógico es pedir a HAL que nos diga las órdenes que hay disponibles sobre el tema, si es que hay alguna. Podríamos probar, por ejemplo, con algo como:

apropos dictionary

o, quizá,

apropos dict

El lector seguramente se encontrará con varios candidatos. Si consulta someramente las páginas de manual de cada uno de ellos llegará tal vez a la conclusión de que hay herramientas de corrección ortográfica como ispell, pero no diccionarios propiamente dichos. Puede suceder, incluso, que encuentre tales diccionarios, pero que se trate de aplicaciones que se ejecutan dentro de un entorno de escritorio gráfico y no programas de consola, que es lo que estamos buscando. Con toda probabilidad parece que ha llegado el momento de instalar un nuevo paquete.

Seguro que HAL dispone de algún ayudante para este tipo de tarea, uno que se dedique a la gestión de nuestros paquetes. No sabemos cuál es el nombre de ese ayudante, así es que, como de costumbre, se lo preguntaremos a HAL. En concreto, le preguntaremos a ver qué sabe en relación con los gestores de paquetes [Asumo, a partir de ahora, que nuestra distribución es Debian o está basada en Debian, como Ubuntu. Los gestores de paquetes pueden ser diferentes según la distribución]:

apropos 'package manager'

Nótese que el argumento de apropos está formado por más de una palabra. En este caso ---y, en general, cuando el argumento de una orden contiene espacios---, habrá que evitar que HAL los interprete como caracteres con un significado sintáctico especial, cosa que hará, si no se le indica lo contrario. La forma convencional de indicárselo es entrecomillar el grupo de palabras de los que consta el argumento. De este modo, y en el caso que nos ocupa, HAL entenderá que el único argumento de apropos es un grupo de dos palabras. De no haberlas entrecomillado, HAL interpretaría la primera palabra como el primer argumento de apropos y la segunda como el segundo argumento.

La respuesta de HAL es la siguiente:

aptitude (8) - high-level interface to the package manager
dpkg (1) - package manager for Debian


Ya en la simple descripción que devuelve apropos, salta a la vista una curiosa diferencia: dpkg se define como un gestor de paquetes sin más matización, mientras que aptitude se define como una interfaz de alto nivel para un gestor de paquetes. Merece la pena detenerse un momento en esta diferencia.

Es frecuente el uso de la palabra interfaz en los textos sobre computadoras. Podemos ceñirnos a una de sus posibles acepciones, muy frecuente en tales textos, de acuerdo con la cual la interfaz de una cosa sería algo así como esa su cara amigable, la que la cosa nos proporciona para comunicarnos con ella. Es decir, que la cosa en cuestión tiene, en realidad, una cara hosca, dura, desagradable, etc. que debe ocultarnos, si no quiere que salgamos aterrorizados ante su visión. Si la interfaz es de alto nivel, la cara es la más agradable posible; si es de bajo nivel, probablemente veamos todavía en ella huellas de lo terrible subyacente. Un hacker es alguien que no se asusta ante la cosa misma, todo lo contrario, disfruta con ella; un usuario no puede, ni debe, mirar cara a cara la realidad en sí y requiere de una interfaz para soportarla.

Dicho esto, y como usuarios que somos, no podemos albergar dudas sobre la pertinencia de aptitude para nuestra tarea.

Si leyésemos la página de manual correspondiente a aptitude, podríamos entender qué hace este ayudante de HAL y cómo hablar con él. Puesto que es realmente larga y compleja me tomaré la libertad de evitar al lector el esfuerzo. Prometa, sin embargo, que lo hará cuando se considere todo un hacker, entonces podrá asimilarla en su totalidad en menos de una hora. El autor ---dicho sea como acicate al lector--- no se considera un hacker, pues ha tardado semanas en asimilar páginas de esta envergadura y, además, sólo ha llegado a conseguirlo parcialmente. Debe de ser que es un poco duro de mollera.

Y como es flojo de testa, conviene un respiro antes de meterse a aprender la lengua de aptitude. Estamos deseosos de ver los resultados, pero con lo de hoy basta, que los atracones son causa de muchas indigestiones.


Resumen:

  • HAL es una work in progress fruto de la colaboración de un gran número de entusiastas de todo el mundo.

  • HAL es una máquina programable.

  • Los programas que hacen de HAL lo que es se distribuyen agrupados en paquetes.

  • Los paquetes se reúnen en almacenes disponibles vía Internet.

  • Cuando se instala una distribución, lo que se instala es un conjunto amplio de paquetes básicos.

  • Para que HAL pueda hablar de más cosas, aparte de las básicas, es necesario instalar nuevos paquetes.

  • Cuando los argumentos que añadimos a una orden constan de varias palabras separadas por espacios, ese grupo de palabras debe estar entre comillas.

  • Un hacker es alguien que goza con lo que para el resto de los mortales es dureza, dificultad, fealdad y peligro.

  • Un usuario requiere de interfaces que le oculten y suavicen las cosas duras, difíciles, feas y peligrosas.

  • aptitude es un amistoso ayudante de HAL especializado en la gestión de los paquetes de las distribuciones basadas en Debian.

No hay comentarios:

Publicar un comentario