Acerca de las pequeñas cosas. Volver a ver.

Cuando viajé a Florencia el 22 de Marzo desde Perugia, decidí hacer un experimento, ya que cogía el tren en la mañana. Decidí dejar de un lado el teléfono o cualquier dispositivo electrónico y tratar de ver por la ventana todos los detalles que pudiera, y lo más desafiante, recordarlo.

Cuando tomé el tren, y este se puso en marcha recuerdo haber visto:

Una ventana abierta en un edificio, una rama tirada en la carretera, una bolsa, el número 18, un árbol al cual le comenzaban a salir las hojas, la grama verde, las zonas que aún no tenían grama, unos niños jugando en un parque, un carro esperando el momento justo para tomar la autopista, tierra marchita, tierra fértil, un lago y unas pequeñas montañas y como la luz parecía llover de las nubes y volcarse en el agua. En ese momento recuerdo haber visto una mujer haciendo ejercicio, un señor caminando, un carro abandonado y oxidado, un tobogán de juegos en el fondo de una casa en el que alguna vez algún niño jugó y recordé mi niñez, una puerta oxidada tirada al lado de una plantación, una persona tratando de reparar el tractor, una señora sentada en la parte de atrás de su casa sola con un velo pensando y matando el tiempo, un pájaro posado en una rama, un perro con su dueño, una casa improvisada de gente que vive en la calle, un puente sobre un río muy tranquilo, una persona en una estación que me miró a los ojos y sin motivo alguno sonrió, una colilla de un cigarrillo sobre una de las miles piedras que habían saliendo de esa estación de tren. Recuerdo las chicas que se sentaron en frente de mi y perdían de ver todas estas cosas por estar revisando las redes sociales en su teléfono. Vi también una casa abandonada que me hizo pensar en cuántas historias habrá visto pasar, un grafitti que decía « Abajo el gobierno », recuerdo que recordé su imagen entre tantas imágenes y pensé « estoy perdido ». Vi un gran centro comercial que tenía un reloj afuera marcando la hora y pensé que el tiempo no existe pero se me acaba. La señal de dirección equivocada. Los lugares que por alguna razón parecían familiares, y pensé en su familiaridad. Vi un hombre preocupado por llegar a tiempo a algún lugar porque caminaba a mucha prisa mirando su reloj, y entonces pensé en que me sentía perdido.

Vi unas protecciones de plástico transparentes al salir de otra estación que contenían cientos de figuras de aves volando, y pensé « Ojalá pudiera volar »…

Las maravillas del mundo

Haciendo una búsqueda relámpago de las maravillas del mundo, al menos de las “aceptadas” globalmente tenemos que se pueden clasificar en:

Hay 21 de estas maravillas. Quitando las creadas por el hombre, hay obviamente 7. Siempre he pensado que lo complicamos todo, y reflexionando llego a la conclusión que las maravillas del mundo son:

  1. Ver.
  2. Oír.
  3. Sentir.
  4. Amar a alguien (tanto en el sentido de compartir con la familia, como encontrar a alguien que no sea de tu familia e inclinar tu voluntad hacia él/ella).
  5. Comunicarse.
  6. Pensar.
  7. Última pero no menos importante. Vivir.

Pegar contenido de dos archivos con paste. Utilizar VIM para sustituir selección de una columna

Este es otro de esos posts. Sí, esos posts cortos de pequeñas utilidades que he encontrado, que son sencillas de implementar y que muchos deben conocer como muchos otros no deben conocer.  Igual, espero que sean de utilidad. Ahora que estoy incursionando en la dinámica cuántica, la cual es una rama muy singular de la mecánica cuántica ya que no solo toma en cuenta la estructura electrónica de moléculas, si no también cómo estas evolucionan con el tiempo… bueno, esto no es una clases de mecánica cuántica :) . Es necesario generar superficies de energía potencial, lo que implica (Ahora si viene la parte computacional del asunto) hacer unos cuántos cálculos y generar valores para entonces hacer tablas. Bueno, digamos que utilizando grep (awk también y compañía) se pueden sacar los valores necesarios de distancias internucleares (vamos a llamarlos valores de la variable a) y por otro lado, usando de nuevo grep puedo obtener valores de energía (variable b). Entonces, tengo dos archivos con el mismo número de líneas, ¿cómo los pego en un mismo archivo como dos columnas para luego graficar?. Es ahí donde paste viene al rescate. Si suponemos que los archivos se llaman a.txt y b.txt y que a.txt contiene:

2.56168000
2.75065260
2.93962520
3.12859780
3.31757040
3.50654299
3.69551559
3.88448819
4.07346079

y b.txt:

-75.52133959
-75.46050950
-75.40088665
-75.34642198
-75.29927353
-75.25976834
-75.22698494
-75.19963813
-75.17657482

Solo basta con ejecutar:

$ paste a.txt b.txt > data.tab

El contenido de data.tab luce así:

Bien, ahora puedo utilizar Gnuplot o lo que quiera para graficar. Por los momentos no he nombrado a VIM, pero ya vamos a eso.

Ahora, lo anteriormente expresado funciona bastante bien. Pero: ¿Qué tal si quiero ingresar una columna entre los valores de a y b porque quiero hacer una superficie en 3D de una colisión? En castellano, solo agregar una columna de valores fijos en la mitad de a y b. Esto se hace de la siguiente manera. Ejecutamos Ctrl+v en VIM para entrar en modo VISUAL BLOCK. Luego, seleccionamos el espacio donde queremos hacer la sustición utilizando las flechas en el teclado:

Una vez contento con la selección, se pulsa Shift + i para entrar en modo de inserción. A continuación, escribe la cantidad que quieras sustituir en toda esa columna seleccionada, en mi caso, quiero 1.000000. Como quería que el valor 1.00000 estuviera separado de la primera columna, en el modo de inserción solo luego de pulsar Shift + i agregué 6 espacios en blanco, luego escribí el valor (esto lo escribo para recalcar que en esa línea puedes editar lo que quieras) y por último pulsé la tecla ESC.

El resultado es el siguiente:

En este ejemplo es trivial. Pero para que los lectores tengan una idea, una superficie de potenciales para ser aceptable necesita al menos más de 1500 valores, hacer esto a mano (uno por uno) sería simplemente estúpido. Espero que les sea de ayuda.

Acerca del tiempo

Luego de que me he mudado por enésima vez, y esta vez para hacer la tesis de maestría, nunca tengo tiempo. Espero que luego de divagar escribiendo esto, al final el texto se relacione con el título de este post.

Todo comenzó hoy 29 de Febrero en la mañana cuando me dirigía al laboratorio a encerrarme por unas cuantas horas. Cuando iba caminando, vi desde lejos una mujer de aproximadamente 37 años parada con cara de preocupación viendo hacia el lado contrario de la calle donde ella se encontraba. Noto esto desde la distancia, y no puedo evitar hacer contacto visual con ella (no se, parte de mi preocupación por verla así). Al acercarme, inevitable porque era la vía para llegar a mi destino, ella me dice en Italiano: « Buenos días, disculpe, ¿puede ayudarme? ». Le respondo que no se hablar el idioma (hablo otros idiomas pero no el del lugar donde habito actualmente). Para mi sorpresa, comenzó a hablarme en español, pero no en ese español bizarro de España (sorry pipol).

Una vez que la barrera del idioma fue sobrepasada, me explica por qué está así. Era que una paloma había sido golpeada por un carro y estaba aún viva, sin poder volar, y malherida. Ella me dice que era cubana, residenciada en USA, y que estaba  aquí en Perugia por cuestiones de estudio. También me preguntó que si no era posible que yo cuidara de la malherida ave. Le he dicho que no era posible, puesto que yo estaba residenciado en una residencia de estudiantes. Sin embargo, esto no la detuvo para decirme que le hiciera el favor de recoger el ave por ella. Para lo cual, pasamos juntos la calle, ella se ha quitado su saco, y debajo tenía otra chaqueta, la cual me ha proporcionado para tomar a la paloma (que sangraba, y que se veía bien adolorida pero creo que puede salvarse). Yo pues, tomé su chaqueta, y gentilmente agarré al pobre animal, lo envolví y se lo di a ella. Ella me preguntó cómo podría ayudar a sanarla, y como en mi casa en Venezuela, nosotros solíamos ayudar a perros malheridos, gatos, o aves, pues le di indicaciones.

Luego, ella me da las gracias por tomar el ave, y sigo mi camino. Pero entonces pienso: si ella está aquí en mi condición, eso de que yo vivía en una residencia no fue más que una puta excusa para no hacer nada. Me sentí muy mal. Y esto se relaciona con el tiempo. No deberíamos permitir que nada nos quite el tiempo que necesitamos para apreciar las cosas que no son tan “importantes” en la vida, de este hijo de puta sistema en que vivimos. No deberíamos  dejar morir a un pequeño animal si podemos ayudarle (esta mujer para mi fue la heroína del día, porque a pesar de su condición de vivir sabe Dios en que lugar con ciertas reglas, ella ayudó a ese ser viviente sin importarle nada). No deberíamos permitirnos dejar de compartir tiempo con nuestra familia. El tiempo así no sepamos qué carajos es, hay que aprovecharlo y repartirlo de una manera que no se vuelva solo el consumo de nuestras vidas. En algo el tiempo debería de alimentar nuestras vidas también.

Seguramente como estoy tan sumergido en el sistema, estaré de nuevo diciendo algún día muy próximo que no tengo tiempo, y debo aceptar que odio mucho saber eso. Al no haber tenido los cojones que tuvo esta mujer de ayudar al animal herido, me cuestiono si soy una buena persona o no. Fuckk off.

¿Cómo verificar contenido entre dos directorios?

En estos últimos dos años, he estado en contacto con varios clusters dentro de la universidad donde hago mis estudios de posgrado. La solución que he escogido para mantener sincronizados mis directorios de trabajo ha sido rsync. Esto, básicamente porque está instalado en todas las estaciones generalmente (cosa que no ocurre con git, que no está siempre instalado).

Sin embargo, a veces he tenido que dejar andando ciertos cálculos por semanas y seguir haciendo trabajos en otros clusters que tienen más hardware por nodo que me son de utilidad. Pero, ¿qué pasa si tengo un directorio centralizado y he borrado ciertos sub directorios en otros clusters y quiero saber cuáles han sido borrados? Aunque parezca básico, es aquí donde diff entró al rescate. (Si alguien conoce otra forma más apropiada, por favor no dude en hacerla saber :) ). La utilidad está si cuando sincronizas sueles usar la opción –delete en rsync.

Si queremos comparar dos directorios ejecutamos lo siguiente:

diff $DIRECTORIO1 $DIRECTORIO2

Por ejemplo:

muammar@circa:~$ diff hyperion hyperion.21012012/
Subdirectorios comunes: hyperion/elkhatib y hyperion.21012012//elkhatib
Sólo en hyperion.21012012/: homework
Sólo en hyperion.21012012/: old

La salida no necesita explicación. Queda demás decir, que se pueden utilizar las opciones habituales relacionadas al comando diff. Para más información, lee el manual (man diff).

Envolver texto a 80 caracteres en VIM (wrap)

Este post es también una nota personal (a veces solo lo olvido), parecida al post que hice previamente de apagar el LCD de una laptop desde la consola.  En esta oportunidad, esta información es útil cuando tienes un archivo de texto, o tal vez algunos de esos correos en format=flowed (que aparecen en tu cliente como una línea que no tiene final) y quieres crear un párrafo que esté envuelto a 80 caracteres.

Como una imagen vale más que mil palabras, me refiero a este “chorizo” que muestro a continuación:

chorizo

Lo que tenemos que hacer para envolver ese texto es lo siguiente. Primero, configuramos el wrapping:

:set textwidth=80

Pulsamos la combinación Shift + V (modo Visual Line en VIM para seleccionar texto), y procedemos a “sombrear” las líneas de interés (en mi caso, como pueden ver solo es una, pero vaya línea, ¿no?), y debería lucir como muestro en la próxima figura:

Y por último pulsamos la siguiente combinación de teclas: gq. Esto, trae como consecuencia, que el “chorizo que se mostraba previamente” luzca descentemente:

Et voilà!

PD. ¡Muerte a los que no siguen la netiquette!

Apagar Display LCD de una laptop desde el terminal en Linux

Este post es más una nota personal, porque por alguna razón siempre olvido este comando. Es útil apagar el display LCD cuando por ejemplo se está utilizando un laptop como servidor y se desea ahorrar energía (obviamente, como servidor que es, no hay instalación de servidor de X, si no, solamente acceso a las TTY).

Con este pequeño preámbulo, introduzco a vbetool. Y como se desprende de su descripción: vbetool utiliza lrmi en orden de correr código desde el video del BIOS. Actualmente, es capaz de alterar estados DPMS, tales como guardar y recuperar estados de la tarjeta de vídeo y atentar iniciar la tarjeta de vídeo “from scratch”.

Ahora, si quisiéramos apagar el display LCD ejecutamos como super usuario:

# vbetool dpms off

Y obviamente, si se quisiere hacer lo contrario se ejecuta:

# vbetool dpms on

En lo personal, desconozco si habrán otros métodos para llevar a cabo esto, pero por los momentos, este me funciona a la perfección. Puede ejecutarse accediendo remotamente al servidor y así poder encender y apagar el LCD.

Espero que sea de ayuda para algunos.

Gracias Francia

Francia. Nunca pensé que algún día este país fuera mi casa, mi hogar, el lugar en donde se encuentra la universidad en que sigo mis estudios de posgrado y en el cual hago una vida con mi esposa. Hace más de un año que dejé Venezuela en busca de nuevos rumbos, y vaya que extraño muchas cosas de mi madre patria.

Francia. Un país lleno de mucha historia, de muchos cuentos urbanos que se inventa la gente. De historias urbanas que pueden ser desmentidas fácilmente.

Francia. Te estoy muy agradecido por todo lo que me has dado desde que he llegado. A pesar de muchas cosas que dicen, los franceses son personas que tienden a ayudar a los otros. Y puedo decir a cabalidad que yo no soy un caso exitoso de tener relaciones inter-personales con los franceses, pero nunca ha faltado quien nos tienda la mano, y eso vale mucho. El gobierno francés a pesar de los errores que haya cometido o que cometa, creo que logra cumplir en un alto porcentaje (en tierras Francesas) su lema:

Liberté, Égalité et Fraternité.

De este hecho puedo hablar mucho, pero no es la razón de este post. Le agradezco a este país, porque mi familia me ha visitado y en ningún momento les han tratado mal ni en los bordes, ni en la calle. Nunca faltó alguien en Paris que le cediera en el metro un asiento a mi madre o a mi abuela. Aquí en Toulouse, no hubo quien les hiciera una mala cara o que no intentara comunicarse con ellos en cualquier idioma distinto al Francés. Francia, un país de contrastes como todos, pero que me ha dado la gran satisfacción de poder hacer sentir a los míos (a mi familia), que esta es mi casa, que estoy bien,  y que cuando vienen es su casa también.

Gracias…

La comunidad del software libre y nuestra nocividad

Creo que este post es justo y necesario. Vamos a comenzar a delimitar un poco las cosas. En primer lugar, creo que nadie es perfecto y que por ende, nadie en teoría puede seguir una línea en un 100% . En mi caso, soy usuario de Software Libre, pero también de una de las plataformas más cerradas que existen. En mi día a día utilizo Debian (y contribuyo con el Proyecto en mi tiempo libre), pero también me doy una pasada por Mac OS X. Tengo una Macbook pro y un iPhone, y si en este momento has llegado a pensar que este hecho me vuelve un Macfan, más que alguien que conoce las limitaciones de cada mundo, entonces lastimosamente eres un ente nocivo para la comunidad del software libre y en mi humilde opinión deberías comenzar a replantearte que cada quien es libre de usar lo que quiera, y mucho más, queda muy justificado si cada persona sabe lo que está utilizando y por qué.

Si la memoria no me falla, utilizo Linux desde el año 2003. Ya han pasado 8 años, todavía sigo siendo reciente en mi opinión, pero no tanto como una persona que haya comenzado a utilizar Linux en 2009, lógicamente. Cuando aterricé en este mundo donde se lucha por una causa (que todavía sigue viva, pero que se está peleando malamente para alcanzar) todo me parecía muy excitante y revolucionario. Sin embargo, existía ese pequeño grupo de personas que no te daban una muy buena acogida. La mayoría de personas de ese pequeño grupo eran veteranos, y otros simplemente unos fanáticos. En mis adentros, siempre pensé que ellos eran nocivos y que más que puritanos, eran meramente fanáticos estúpidos. Así que siempre los evité.

A lo largo de estos 8 años he visto muchas cosas. Dunk-tank en debian, a Mark Shuttleworth tratando de llevarse debian developers para canonical en los debconf, distribuciones que como vienen se van, bugs que me han dejado sin acceso a la máquina, etc. Pero también vi cómo el pequeño grupo de fanáticos, empezaba a contagiar a los demás (incluso a mi). En el 2009, decidí leer más entre líneas, y dije: hasta aquí dejo de ser un fanático y me convertiré (en la medida de lo posible) en un usuario más analítico que emotivo. No se si para algunos sea aún novedad, pero cuando las personas se dejan llevar por las emociones, o cuando luchan por algo solo porque otro lo hace, las cosas no se hacen como debieran. ¿Qué me motiva a escribir este pedazo de texto? Pues esto:

http://www.geekets.com/2011/10/samsung-galaxy-s-mejor-que-iphone-4/

 

Yo no me considero un experto de nada, pero vamos a analizar este post un poco en detalle. El primer error fundamental, o digamos, la primera frase inapropiada es utilizar el comparador “mejor que”. ¿Por qué? Simplemente porque todos tienen distintas necesidades y porque “mejor que” puede ser demasiado difuso ya que lo que es mejor para mi tal vez sea una mierda para ti.

En la sección de pantallas de dicho post, se asume que todos buscan una pantalla amplia, cosa que es falso. El autor asume que las pantallas amplias son lo mejor (que en mi opinión estoy de acuerdo en que son muy útiles) pero no a todo el mundo les gusta las pantallas grandes.

Esta aseveración es un tanto imprecisa también:

El Samsung Galaxy S sigue siendo mejor al iPhone 4?

A lo que yo me hago las siguientes preguntas:

1) ¿Dónde hay números que soporten esto?

2) Si hubo una encuesta, ¿Quién la llevó a cabo?

3) ¿Qué tan heterogénea fue la población que llevó a cabo la encuesta?

Antes de retomar el punto principal, estoy de acuerdo en que utilizar por ejemplo un iPhone es algo muy cerrado (aunque ahora lo dudo un poco), y que incluso la gente de Apple llevaba un tracking de tu posición, pero vamos que Google también hará/hace lo mismo. Es ingénuo pensar que no nos registran. Eso es como creer que hay privacidad en la internet. Y queda muy claro que el autor de este post abre la puerta a la controversia con las preguntas abiertas y afirmaciones que parecen salir axiomáticamente.

Ahora sí, retomando el tema principal, en mi humilde opinión pienso que debemos cambiar un poco la forma en que estamos defendiendo nuestra causa de promover el uso de software libre. Hay que comprender que la libertad de la gente está en la elección. Conozco muchas personas que todavía siguen trabajando en enseñar Linux en conferencias, y eventos y tienen una perspectiva distinta y lo hacen correctamente aunque también he visto otros que simplemente han caído en el mismo nivel de los que defienden plataformas cerradas, el fanatismo. El fanatismo daña porque nubla la mente, y no deja ver más allá de las narices. Para dar una opinión de algo, no solo hay que leer acerca de ello, hace falta utilizarlo también (a nivel de software hablo aquí, porque si habláramos de drogas estuviera yo incitando a probarlas y no quiero ni por nada que esto se interprete así, ¿no creen?). En mi experiencia he podido convertir más personas al uso del software libre al dejarlas que ell@s mismos me pregunten qué software utilizo, qué ofimática (LibreOffice), qué reproductor de audio (MPD + gmpc o mpc), que cuando intento forzarlos a ver que lo que utilizo yo es mejor que lo de ellos. Esa no es la manera. Este tipo de actitudes y otras que se observan en listas de correos, foros, tonos en blogs, desearle la muerte a personas,  creo que llevan nuestra causa al caño. Una de las razones por las que Ubuntu se ha popularizado tanto ha sido el hecho de que su comunidad es muy amigable. En mi opinión, no me gustaría que todas las comunidades fueran así porque Ubuntu así como tiene eso que es muy bueno (pero en exceso, y de allí el error), las consecuencias de ello también son notables (reportes de fallos kilométricos sin información relevante lo que hace más difícil a los desarrolladores conseguir cómo solucionar el error, duplicación de posts que preguntan lo mismo, preguntas muy muy muy básicas que son posibles de conseguir leyendo un poco en internet, etc).  Pero sin embargo, es lo que les caracteriza y lo que ha hecho que sean una de las plataformas más populares para el Desktop en Linux.

Yo solo espero que logremos conseguir la actitud y aptitud adecuada para seguir haciendo crecer el número de gente que usa software libre (¿evolucionar un poco más?), pero a medida que el grado de fanatismo y número de fanáticos aumente, el fin de nuestra causa no será más que una utopía…