Dash y Shebang

<frikimode>

Desde luego, qué poco sabe uno de nada. Estudiando para la LPI-1, se me ocurrió mirar en Ubuntu si la shell sh era realmente un fichero o bien un enlace simbólico. Mi ego a duras penas me dejó escribir en la consola:

$ ls `which sh` -al
lrwxrwxrwx 1 root root 4 2009-03-30 22:58 /bin/sh -> dash

que es la forma super friki de decir: Hola, Linux, ¿me listas, por favor, con detalle (las opciones -al del ls), el fichero sh donde quiera que se encuentre en el disco duro (eso lo hace el which)?

Yo pensaba que el resultado sería bash, por la Bourne Again Shell, pero resulta que no, que tras leer en la Wikipedia me entero que en Ubuntu lo que viene por defecto como substituto de la sh es la Debian Alquimist Shell.

Bueno, la cosa no sería para tanto si no hubiera leído una referencia al Shebang. ¡Dios, qué es ésto! ¡Houston, tenemos un problema! El problema es que hay que leer más… El famoso Shebang no es más que la típica primera línea que se pone en los scripts de shell para asegurarnos de que se ejecutan con tal o cual shell. Un ejemplo de este uso lo tenéis en este viejo script.

</frikimode>

j j j

Contra-natura informática

Creo que voy a ser castigado por algún Ente Superior del mundo de los informáticos. Al menos, lo merezco. Debo confesar hoy mis pecados, que son muchos, y más aberrantes cuanto que no me he dado cuenta de ellos de tanto insistir en el vicio.

Hoy estoy trabajando. Pero no en la oficina. Estoy teletrabajando mediante una conexión vnc a mi ordenador de Isotrol. Es la forma de teletrabajo que más me gusta, ya que me permite sentirme «como en la oficina» pero con el pijama puesto. Accedo a todos mis ficheros de trabajo, el correo, etc., etc. Podría usar el web-mail, o el mail desde fuera con un cliente en mi portátil, pero al final, siempre necesitas algún fichero que espera pacientemente en tu disco duro. Claro, que hacer vnc a un equipo que está tras un firewall y cuya IP puede cambiar, ya que se asigna mediante DHCP no es algo tan sencillo como compartir el escritorio desde GNome, o instalar algún servidor de vnc. Podría haberme peleado con un http-tunnel, pero he preferido usar LogMeIn.

LogMeIn en funcionamiento

LogMeIn es un servicio en el que, tras registrarte, puedes empezar a añadir los equipos que controlarás remotamente. Añadir los equipos es tan sencillo como entrar en LogMeIn en el equipo que quieres controlar e instalar su propio programa de vnc. Este programa crea el http-tunnel e informa al servicio central de LogMeIn de si está encendido o no el equipo, la dirección IP que tiene, etc. Así, para conectarnos, bastará un navegador que soporte Java para poder acceder a nuestros equipos a distancia. Lo bueno de éste servicio es que:

  • no tengo que recordar direcciones IP ni otras historias tristes
  • es gratis (hay versiones avanzadas, pero la básicano tiene coste)
  • usa SSL (conexiones seguras encriptadas)
  • me permite gestionar varias máquinas de un vistazo
  • no hay que instalar nada en el ordenador desde el que accedo al «controlado», luego podría entrar en mi equipo desde cualquier ordenador (de un amigo, en un ciber-café, etc.)

Evidentemente es un riesgo de seguridad enorme, ya que se accede a la parte «interna» de la red. ¿Cómo evitar este riesgo? Impidiendo que la gente se lo instale (tarde, en mi caso :-)) o bien utilizando un firewall de aplicación, capaz de distinguir no sólo conexiones entrantes y salientes desde/hacia determinados puertos y ordenadores, sino de qué se habla en esas comunicaciones. El FW de aplicación utiliza la misma censura que existe en una carcel: abre las cartas, las lee y si ve algo sospechoso, las retiene. Si no lo tuviéramos, en la cárcel sólo se comprobaría que Scarface no le escribiera a sus compinches, pero no se haría nada con esas cartas familiares y entrañables a su «padrino».

Bueno, pero volvamos al principio, que me pierdo. Todo tiene una forma natural de usarse. En Informática, ésto también se cumple. Y, como con el resto de las cosas, siempre existimos pecadores tratando de funcionar de manera «extraña». Estoy teletrabajando. Con LogMeIn, contra una máquina XP de la oficina. Desde Safari, el navegador de mi MacBook Pro. Sólo ésto ya es rarito. Pero, claro, me estoy descargando mi correo personal. Y tengo el calendario iCal abierto, porque quiero sincronizar mi PDA HP iPaq hw6915, que hace un par de días que no lo hago. Y este calendario iCal, por supuesto, se está sincronizando, a su vez, con los calendarios de Google que uso para las citas de trabajo. Tengo otro ordenador encendido en la habitación, en el cual estoy duplicando un DVD mientras unos ficheros se van copiando a mi Time Capsule…

Y ahora, que suenen redobles. ¿Qué estoy haciendo con el ordenador del trabajo, al cual accedo desde LogMeIn? Estoy importando correo. He cambiado de cliente de correo y quiero, como es natural, mantener mis correos antiguos. Estoy migrando de Evolution a Thunderbird. Ésto en sí no es demasiado complicado: ambos programas usan el venerable formato mbox para almacenar los correos y además en varios sitios describen cómo migrar de uno a otro. Lo curioso consiste en que estoy migrando desde un Evolution cuyos datos están en una partición con formato Linux (ext3fs) a otra con formato Windows (ntfs).

Esto de usar 50 programas para tener la sensación de «trabajar» se podría asociar a un síndrome de déficit de atención para Frikis (NADD). Pero el usar un programa para acceder a un equipo, que a su vez no usa su sistema de ficheros nativos, que hace una emulación de nosequé mientras al final se está grabando otra cosa me parece de lo más aberrante.

Antes, uno usaba su MS-DOS con programas de MS-DOS. Nada de emulaciones, escritorios remotos o simulaciones de sistemas de ficheros extraños. Se usaban las cosas de manera natural. Hoy, con tantas posibilidades a nuestro alcance, es normal que pequemos. Aunque algunos ya aberrábamos desde pequeñitos y ejecutabamos MINIX en un 286 🙂

j j j

Be water…

De anuncios inteligentes y frikismo informático (geekismo) va la cosa

Hace un tiempo una marca de automóviles (no recuerdo la marca ni el modelo, la verdad) estuvo emitiendo un anuncio en el que aparece Bruce Lee hablando de La Creación de la Forma sin Forma, del Jeet-Kune-Do, el estilo de lucha que inventó Bruce Lee y que mostraba en sus películas. Digo estilo de lucha y no Arte Marcial porque el objetivo último del Jeet-Kune-Do es obtener una forma efectiva de lucha mientras que el objetivo último de un Arte Marcial es construir mejores personas. Este objetivo, que aparece en muchas otras facetas de la vida (las religiones, el deporte, las teletiendas, los préstamos de los bancos que nos hacen tan felices, los anuncios de compresas,…) se consigue en la Artes Marciales mediante una práctica que inculca valores como: respeto, humildad, paciencia, esfuerzo, piedad, etc. Bueno, que me pierdo. Algún día hablaré más sobre las Artes Marciales, o mejor sobre una en particular, el Shorinji Kenpo.

Pero volviendo a lo que comentaba al principio, el texto del anuncio es algo como:

Empty your mind, be formless, shapeless…

like water

If you put water into a bottle it becomes the bottle,

If you put water into a teapot it becomes the teapot…

Water can flow, or can clash

Be water my friend…

Esto de poner a Bruce Lee hablando de filosofía cuasi-Zen para vender un coche es lo que ahora se llama publicidad inteligente. Es decir, se larga un anuncio con un chino hablando en inglés en España (probablemente el país de Europa donde menos Inglés se hable), sin explicar ni subtitular nada y se espera que se entienda que comprándote un coche determinado ya no te adaptas a la carretera, sino que eres la carretera. Esperemos que nadie aplique el mismo razonamiento a los anuncios de papel higiénico.

El caso es que ha llegado a la lista de I+D un envío con el siguiente texto, que los iniciados en C entenderán a la primera:

Empty your memory, with a free()…

like a pointer!

If you cast a pointer to a integer, it becomes the integer,

if you cast a pointer to a struct, it becomes the struct…

The pointer can crash…, and can Overflow…

Be a pointer my friend…

Para el resto, símplemente comentar que los informáticos cada vez somos más geeks (por cierto, un geek es un friki en versión informática).

j j j

Un mapa del kernel de Linux

Una imagen del kernel de Linux

Sí, aunque no se crea nadie, la imagen que aparece aquí es una representación gráfica del kernel de Linux. Con casi 200 MB de código fuente, parece que Linux está dejando de ser un sistema experimental, usado únicamente por geeks y frikis en las universidades.

Este mapa es interactivo, de forma que se puede ir pulsando sobre una zona y se va haciendo zoom en ella, entrando más y más hasta llegar al corazón del sistema, donde nos espera Tux. A mi me recuerda a la representación gráfica del Conjunto de Maldrelbrot. En cualquier caso, es espectacular.

j j j