martes, 21 de octubre de 2008

Comentarios al blog

Los pocos que hayan visitado este blog en el escaso tiempo de vida que tiene se habrán dado cuenta de que la opción de comentario estaba desactivada por defecto salvo para usuarios registrados ( yo únicamente ;-) ).

La razón era simple: falta de tiempo. Este blog es un proyecto personal al que dedico sólo una parte muy pequeña de mi tiempo libre, y no me veo con las ganas de andar todo el día dándole vueltas, para limpiar spam, leer lo que otros escriben, etc.

No obstante, y volviendo a pensar sobre el asunto, me parece razonable cambiar de política o, al menos, probar a ver qué pasa. Quizá el spam sea reducido y quizá sean pocos los potenciales comentaristas, no más de los que pueda asumir sin alterar mi referido grado de implicación.

Por ello, de ahora en adelante y a modo de prueba, dejaré abierta la opción de comentar a cualquiera.

Me reservo la facultad de limitar esta opción (si me veo desbordado) a usuarios con credenciales OpenID, o sólo con cuenta en google, o incluso volver a la situación inicial. Que así no sea.

lunes, 20 de octubre de 2008

Mis programas de consola

En mi último envío propuse argumentos en defensa del uso de las aplicaciones de consola, con independencia de que se ejecuten desde la consola propiamente dicha o en un entorno de escritorio típico a través de un emulador de terminal. Cité además algunas, a modo de ejemplo.

He pensado que puede ser interesante para mis posibles lectores dejar constancia de las que utilizo con frecuencia. Casi todas tienen una o varias alternativas dentro también del mundo de la consola, de ahí que la selección sea estrictamente personal y obedezca tanto a razones de gusto, como a aspectos específicos de mi forma de usar el ordenador. Por ejemplo, puesto que edito todo con vim, tiendo a escoger aplicaciones cuyos atajos de teclado sean semejantes a los de vim o se puedan configurar fácilmente para hacerlos semejantes. Por otra parte, suelo preferir aplicaciones sencillas, que hacen bien una cosa y sólo una y cuyo consumo de recursos es reducido (o sea, que mis elecciones suelen estar en consonancia con la forma de pensar característica de Unix).

No pretendo comentar por separado estos programas (cada uno de ellos merecería un artículo aparte como mínimo), simplemente referirlos, describir su propósito someramente y de modo informal, e indicar, donde lo vea conveniente, algunas de las peculiaridades suyas que más me interesan.

Por otra parte, y aunque nadie me lea, siempre es agradable hablar, aun para uno mismo, de las cosas que gustan.

Vamos allá.


  • screen: Gestor de ventanas en pantalla completa que permite multiplexar distintos procesos. Las nuevas versiones disponen también de una mayor versatilidad en la definición de la forma de presentación de cada ventana (layout), así como de la posibilidad de organizarlas en grupos diferentes. Quizá su característica más destacada sea la de que, desde cualquier máquina remota, se puede abrir una sesión completa (o varias) de screen, con todos sus procesos en la situación en que estaban cuando cerramos dicha sesión en otra máquina. Un ejemplo: si estoy en mi casa trabajando con mis programas habituales de consola en una sesión de screen, puedo cerrar esa sesión (no apagar la máquina, claro, porque los procesos implicados deben seguir ejecutándose) y acceder luego a ella desde el ordenador del trabajo o desde la casa de un amigo, aunque su sistema operativo sea distinto. Basta con disponer de un emulador de terminal en este sistema y tener abierto el puerto correspondiente de mi máquina de casa.


  • vim: Editor rapidísimo, al que se pueden añadir todas las extensiones imaginables que convengan (mediante plugins o scripts). Su rápidez se basa en usar combinaciones sencillas de teclado (fáciles para la mano) gracias a su diferenciación de modos de operación distintos.


  • mutt: Un cliente de correo muy potente y versátil. Puede usarse como sistema autónomo y completo de correo (las nuevas versiones disponen de opciones incorporadas para recepción y envío de email), o se puede utilizar en combinación con programas específicos de transporte, de recogida, de distribución de correo y de control de spam.


  • newsbeuter: Un lector/agregador de fuentes RSS y similares. Permite importar fuentes ya existentes. Es muy sencillo y fácil de usar y configurar.


  • w3m: Navegador web y paginador. Me gusta especialmente, aparte de las teclas de movimiento al estilo vi, su función para poder seleccionar distintos navegadores gráficos, lo que permite ver cualquier página rápidamente en modo texto y revisarla con más detalle en su forma gráfica a golpe de una tecla.


  • ikiwiki: Un constructor de wikis escrito en Perl y con soporte CGI (es decir, a la antigua usanza), pero con una filosofía peculiar y novedosa si se la compara con otros sistemas de wiki. Su extensibilidad (mediante plugins) y flexibilidad son muy notables. Aunque su uso común implica la necesidad de un servidor web, es posible configurarlo para que funcione sin tener uno instalado, siempre que se use w3m para editarlo, ya que este último posee un soporte CGI incorporado. Igualmente destacable es el uso de un sistema real de control de versiones independiente (svn, git, etc). Cuando madure el plugin para latex (se está en ello) tendrá todo lo que necesito y exactamente como lo necesito. Merece la pena echarle un vistazo, incluso aunque no se use.


  • vifm: Un gestor de ficheros sencillo y con atajos de teclado a la vi, de ahí su nombre.


  • cplay: Un reproductor de ficheros de audio. Consume muy pocos recursos y es muy sencillo de usar.


  • shell-fm: Una aplicación de línea de comandos para reproducir flujos de la radio last.fm. Sencillísimo y eficaz.


  • htop: Un monitor en tiempo real de los procesos del sistema en la línea del top original, pero con una interfaz más amigable.


  • trafshow: Un monitor en tiempo real del tráfico de las interfaces de red. Es de los pocos que conozco para consola. Me permite tener a la vista, siempre que quiera, cómo se desarrolla el trafico, sin necesidad de ejecutar netstat o similares aplicaciones de línea de comandos, que reservo para cuando necesito conocer más detalles. En mi distribución (debian) forma parte del paquete netdiag.


  • aptitude: El frontend moderno de debian para administración de los paquetes de sus ingentes almacenes de software. Conviene echar un vistazo a la página de manual en cada nueva versión que sale, porque casi siempre incorpora novedades interesantes.


  • devtodo: Una aplicación de línea de comandos bastante sencilla de usar y que va exclusivamente de lo que va: de organizar y llevar la pista de las tareas pendientes. Puede almacenar distintas series de tareas según el directorio en que se esté y mostrarlas al cambiar a ese directorio.


  • wodim: Forma parte del proyecto cdrkit. Todo lo que necesito para escribir CDs/DVDs desde la línea de comandos. Aunque k3b sigue siendo una maravilla que nunca sobra.


  • pdftex: Mi herramienta habitual para construir un documento pdf a partir de una fuente TeX/LaTeX. Porque vivir en el mundo de los procesadores de textos es casi como vivir en la edad de hierro en lugar de en la edad de oro ;-)



Omito el recuento de aplicaciones de línea de comandos de uso común y genérico en sistemas Unix o GNU: herramientas típicas de acceso y procesamiento de ficheros, de administración, etc., porque son muchas, porque ya hay cientos de miles de páginas escritas al respecto y porque están a la mano de todos los que quieran.

Espero que este repaso general por "mi" caja de herramientas siga siendo un acicate para los amantes o curiosos de la consola. Los primeros conocerán casi todas, pero quizá alguna no les resulte familiar o ni siquiera hayan oído hablar de ella; los segundos, tienen materia de sobra para investigar y hurgar. Por lo menos, antes de que me entren ganas de redactar artículos específicos y extensos sobre alguna y acabe poniendo todo el plato precocinado en la mesa electrónica. Quien sabe :-)

domingo, 12 de octubre de 2008

Y al final, la línea de comandos

La puerta de entrada de la informática fue durante unos cuantos años la línea de órdenes (CLI en inglés), es decir, commnad line interface o línea de comandos, si se prefiere una traducción menos correcta, aunque más difundida.

Pero desde hace tiempo la interfaz gráfica de usuario (GUI) parece haber desplazado casi por completo a la interfaz original de puro texto.

Y sólo digo casi, porque sigue siendo ampliamente usada por los administradores de sistemas, por algunos "gurús" informáticos y por unos cuantos "freakies" de los computadores, generalmente asociados todos ellos a plataformas de software semejantes a Unix u a otras rarezas equivalentes.

¿Pero es realmente tan extravagante y trasnochado preferir la CLI a la GUI en un buen número, no desdeñable, de situaciones de trabajo con el ordenador?

En absoluto lo es. Y como prueba se pueden esgrimir muchas razones. Véanse, por ejemplo, las estupendas argumentaciones de Neal Stephenson en su clásico In the beginning was the command line, del que, por cierto, hay traducción a la lengua de Cervantes.

Hay ciertos campos en concreto, por ejemplo, en la edición de textos, donde, a mi entender, el abandono de la CLI ha provocado y provoca graves perjuicios, como traté de argumentar en El qué y el porqué de LaTeX [ el primer artículo que aparece en el documento enlazado ].

Pero, incluso, en las tareas básicas (programas de correo electrónico, agregadores de noticias, editores, navegadores de ficheros, navegadores web, ...), las aplicaciones de línea de ordenes, son inmejorables en muchos sentidos. Citaré sólo unos cuantos:

  • Son mucho más rápidas, tanto porque tales programas consumen muy pocos recursos, como porque todas las operaciones se realizan comúnmente sin levantar los dedos del teclado.

  • Están disponibles para infinidad de sistemas operativos y arquitecturas de hardware.

  • Pueden ejecutarse en ordenadores realmente antiguos o con recursos muy limitados si se los compara con los actuales ordenadores de escritorio. Son por ello "ecológicas".

  • Son, en su inmensa mayoría ---como lo suele ser el software creado por los padres de la informática---, libres, en el doble sentido que la palabra inglesa free tiene de gratuito y abierto (el código permanece abierto a la inspección y, en su caso, a la oportuna modificación y mejora de cualquiera que lo desee). Aunque esto no es característica únicamente suya. Pues, como se sabe, el movimiento de software libre u open source ha creado también y sigue creando magníficas herramientas para la GUI.


Es difícil pedir más por menos. Y hay más, si se busca un poco. Por ejemplo, bajo una aplicación como screen se pueden ejecutar los típicos programas citados en un determinado ordenador, cerrarlos todos, y volver a abrirlos desde otro ordenador remoto regresando exactamente al mismo punto en el que estaban todas las aplicaciones que corrían sobre screen cuando abandonamos la sesión en la primera de las máquinas, y todo ello con indiferencia del sistema operativo bajo el que funcionen los susodichos ordenadores y con una fiabilidad que es difícil, si no imposible, encontrar en aplicaciones gráficas de similar propósito.

Se me dirá, con razón, que renunciar a las aplicaciones gráficas es locura allí donde son insustituibles, es decir, donde el dato manejado es justamente la imagen (programas de visualización o edición fotográfica, lectores de pdf, reproductores de vídeo, etc.).

Nada más lejos de mi intención. Sin embargo, es perfectamente posible y razonable permitir que convivan limpiamente unas y otras aplicaciones (CLI y GUI). Los entornos modernos de escritorio permiten hacerlo con facilidad a través de sus emuladores de terminal o consola. De forma que es perfectamente natural y absolutamente transparente al usuario la ejecución de aplicaciones gráficas desde nuestras aplicaciones de puro texto.

Para terminar, dejo aquí unos pantallazos de algunos de los programas CLI, ejecutados desde una sesión de screen, que yo mismo uso desde un único terminal en mi escritorio de KDE4 (se verá que es KDE4 por el icono de plasma que aparece en la parte superior izquierda). O sea, el escritorio de última generación conviviendo con algunos conspicuos miembros del CLI-clan. Por eso, de lo de predicar con el ejemplo ;-)

mutt, el cartero legendario:



w3m, el postrero de los clásicos:



htop, el joven domador de procesos:



nethack, el origen del submundo: