sábado, 24 de diciembre de 2011

Cruel Summer

Sencillamente me desvelé...

Anoche mientras veía (por enésima vez) una película de mediados de los 80s reparaba en lo mucho que me gustaba vivir en esa época (hasta mediados de los 90s). Me fijaba en cómo el tema de las relaciones no pasaba tanto por lo material o sexual como ahora. Las chicas usaban pantalones holgados y muy poco maquillaje, los hombres nos arreglábamos el pelo con la mano momentos antes de ver a esa chica especial.

No existían excesos como las promociones para el aumento de busto exprés o el falso incremento de la virilidad adquirida a través de un celular con una manzana.

La aceptación personal estaba casi única y estrechamente ligada a la opinión de aquella persona especial que uno quería. Un intangible que hoy increíblemente creemos que casi se puede comprar.

Si usted, estimad@ lector(a), en este momento piensa que soy de aquellos que cree que "todo tiempo pasado fue mejor"; pues no se equivoca. Y eso es puramente porque esta época del año me hace sentir culturalmente un poco fuera de contexto y porque básicamente me considero un romántico.

Y hoy, más que nunca, me siento muy afortunado de tener una maravillosa razón para serlo...

image

image

image

miércoles, 23 de noviembre de 2011

... and then she feels







A dream so real it takes her back
She's falling into her own past
The present has gone forever
Now she rests upon her bed
and then she cries...
and then she feels...
she feels so sad

viernes, 18 de noviembre de 2011

Las Tierras Baldías

*"Váyase, pues. Existen otros mundos aparte de estos."*


Jake - antes de caer al abismo.

miércoles, 17 de agosto de 2011

Daisies for cleanness

[youtube http://www.youtube.com/watch?v=kqSrZEx6lpU&w=420&h=345]

NowPlaying con Clementine+Kopete parte II: Condiciones

Una desventaja de nuestro script actual es que si Clementine no se está ejecutando entonces tendremos el mensaje "Now Playing" en blanco durante toda la sesión de Kopete. Si lo cambiamos manualmente desde Kopete, el crontab se encargará de ponerlo de nuevo en el estado sin canción.

Para esto introduciremos el uso de condiciones en nuestro script; por lo que si Clementine se está ejecutando entonces haremos lo que ya sabemos para capturar el nombre de artista y canción. En caso contrario, haremos nada. Así quedará disponible nuevamente para cambiar nuestro estado de Kopete a lo que necesitemos. Manos a la obra:

Primero utilizaremos el comando qdbus para saber si Clementine se está ejecutando o no:



isClementineRunning=$(/usr/bin/qdbus | grep clementine)



La variable isClementineRunning puede contener dos posibles valores: una cadena en blanco si Clementine no se está ejecutando y una cadena no-vacía si lo está. Ahora condicionamos nuestro script según esos valores:



if [ "$isClementineRunning" != "" ]

then

#capturamos el nombre de artista...

currentTrackIndex=$(....

fi



Esta condición evalúa SI la cadena isClementineRunning NO está vacía ENTONCES capturamos el nombre de artista, etc...

Si la cadena está vacía (Clementine no está ejecutándose) entonces no pasará nada.

Pero ¿qué sucede si Clementine se está ejecutando pero ninguna canción se está reproduciendo? Para resolver esto podemos volver a condicionar. Ahora consultamos por el índice de la canción actual el cual puede tomar varios valores: -1 si no se está reproduciendo ninguna canción o bien un valor positivo en caso contrario. Por lo que agregamos ahora una nueva variable y una nueva condición:


isClementinePlaying=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack)
if [ $isClementinePlaying != -1 ]
then
#obtenemos el nombre de artista...
currentTrackIndex=$...
fi


Y eso es todo! Puedes descargar el script final desde aquí.

sábado, 6 de agosto de 2011

martes, 12 de julio de 2011

Cómo poner "Now playing" con Clementine+Kopete

Hasta hace un par de meses mi reproductor de música favorito en KDE era Amarok. Eso, hasta que me encontré con Clementine, el cuál posee una interfaz mucho más simple para la navegación de archivos que para mí fué lo fundamental. Por otra parte, mi aplicación de mensajería favorita es Kopete. Amarok y Kopete se llevan muy bien puesto que el último incluye la función "Now playing" para varios reproductores salvo mi Clementine :-(

Pero no todo está perdido! Si ponemos en un recipiente un poquito de BASH+QDBUS+Cron podemos hacer nuestro propio script "Now Playing" para establecer el mensaje de estado de Kopete con la canción y el artista que actualmente está sonando en Clementine.

Manos a la obra:

Primero creamos nuestro script en el directorio bin de nuestro home (por inercia, elección y formación utilizo nombres de archivos y variables en inglés):


pico ~/bin/ClementineNowPlaying.sh



Siendo pico el editor de texto que más utilizo. Puedes utilizar tu preferido (Kate/KWrite/Vi...).

Básicamente (y muy básicamente puesto que estoy lejos de ser un experto en BASH scripting) nuestro script obtendrá la canción y el artista que actualmente está reproduciendo Clementine, luego los pondrá en el mensaje de estado de Kopete adornado con la frase "Now playing...".

A continuación pegan el siguiente código dentro del archivo, he agregado comentarios sobre qué hace cada línea:


#!/bin/bash

#Primero  obtenemos el índice de la pista que actualmente esta sonando en Clementine

currentTrackIndex=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack)

#Luego utilizamos ese índice para obtener toda la información de la pista actual

#Con el comando grep nos quedamos sólo la línea que contiene el nombre del artista, esta línea es por ejemplo artist: Bon Jovi
artist=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata $currentTrackIndex | grep artist)

#Se aplica el mismo procedimiento para el título, esta variable quedará de la forma title: Always
title=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata $currentTrackIndex | grep title)

#Luego de la cadena original (ej: "artist: Bon Jovi") queremos borrar la subcadena "artist: " y eso lo hacemos así:
artist=${artist/artist: /}

#Lo mismo para el título:
title=${title/title: /}

#Finalmente enviamos la frase con las variables al mensaje de estado de Kopete:
/usr/bin/qdbus org.kde.kopete /Kopete org.kde.Kopete.setStatusMessage "Now playing $title by $artist"



Guardamos los cambios y cerramos nuestro editor de texto.
Le otorgamos permisos de ejecución a nuestro script:


chmod +x ~/bin/ClementineNowPlaying.sh


Es tiempo de probar nuestro script: ejecutamos Clementine con alguna canción y abrimos Kopete.
En el terminal ejecutamos nuestro script:


./bin/ClementineNowPlaying.sh


Chequeamos que Kopete ha realizado correctamente el cambio de estado:



Finalmente necesitamos que nuestro script se ejecute cada cierto intervalo de tiempo para asegurarnos que mostrará la información lo más actualizada posible sobre lo que escuchamos. Para eso utilizaremos el gestor de tareas de Linux: Cron.
Con el siguiente comando abriremos el editor del Cron:


crontab -e


Una vez ahí, presionamos la tecla i para iniciar la inserción de texto y pondremos la siguiente línea:


* * * * * DISPLAY=:0.0 /home/francisco/bin/ClementineNowPlaying.sh &>/dev/null


Esta línea quiere decir que ejecutaremos nuestro script cada minuto, de cada hora, de cada día, etc...
Para salir del editor presionamos la tecla ESC y luego ponemos : x y presionamos enter.
Para comprobar que hemos guardado los cambios ponemos:


crontab -l


Si no es así, volver sobre el paso anterior hasta que resulte! (Lo sé, ese editor no es de los más intuitivos).
Cuando resulte habremos terminado!

Suerte!

Cualquier pregunta con respecto a esto no duden en enviarla como comentario.

Note: I can answer in english as well, so if you know what it is about everything here but although of that you may need some help, so please don't hesitate and leave a comment ;-)

domingo, 10 de julio de 2011

The change will save me

[youtube http://www.youtube.com/watch?v=ZITh-XIikgI&w=560&h=349]

Hey now, take your pills and
Hey now, make your breakfast
Hey now, comb your hair and off to work
Crash land, no illusions, no collision, no intrusion
My imagination runs away

I know, I know, I know what I am chasing
I know, I know, I know that this is changing me

I am flying on a star into a meteor tonight
I am flying on a star, star, star
I will make it through the day
And then the day becomes the night
I will make it through the night

Hey now, take the U-Bahn, five stops, change the station
Hey now, don’t forget that change will save you
Hey now, count a thousand-million people, that’s astounding
Chasing through the city with their stars on bright

I know, I know, I know what I am chasing
I know, I know, I know that this is changing me

I am flying on a star into a meteor tonight

I am flying on a star, star, star
I will make it through the day
And then the day becomes the night
I will make it through the night

I don’t mind repeating, I am not complete
I have never been the gifted type
Hey, man, tell me something, are you off to somewhere?
Do you want to go with me tonight?

I know, I know, I know that this is changing
We walk the streets to feel the ground I’m chasing: ÜBerlin

I am flying on a star into a meteor tonight
I am flying on a star, star, star
I will make it through the day
And then the day and then the day becomes the night
I will make it through the night

martes, 28 de junio de 2011

Compartir el escritorio en un aula de clases

Introducción: Una metodología de enseñanza que utilizo para enseñar programación consiste en no presentar la solución completa de un problema sino de ir completándolo incrementalmente con la ayuda de los estudiantes presentes en la clase. Mi rol se limita a sólo ser un guía que los ayuda a descubrir una posible solución al ejercicio planteado.

Problemática: Este esquema funciona bien en los horarios de cátedras (salas/aulas) pero los laboratorios (salas de computación) no cuentan con proyector (datashow) entonces es necesario contar con alguna herramienta que permita compartir la pantalla de mi computador vía red para que los estudiantes puedan ver en sus computadores lo que voy haciendo en el mío.

Solución: Utilizar lo que describí en mi post anterior para el control de sesiones en openSUSE. Esta vez queremos que los clientes (estudiantes) puedan ser sólo espectadores de mi sesión. Para esto utilizamos el siguiente comando en un terminal (como usuario normal):


x11vnc -forever -bg -viewonly -nopw -shared


La explicación "humana" de cada uno de los parámetros es la siguiente:

  • forever: Indica que la sesión compartida seguirá iniciada incluso después de que algún cliente se desconecte.

  • bg: Sirve para que la sesión de nuestro servidor corra como un servicio de fondo (background).

  • viewonly: Este parámetro nos sirve para establecer que los clientes sólo podrán ver nuestro escritorio y no manipular el mouse ni el teclado.

  • nopw: Establece que los clientes puedan conectarse al servidor sin clave.

  • shared: Nos permite tener más de un cliente.


Una vez que el comando es introducido aparecerán en la consola un montón de instrucciones. Nos interesa un par de  líneas como las siguientes:


The VNC desktop is: localhost.site:2
PORT=5902



La primera línea puede variar según la configuración del equipo. La segunda línea nos indica en qué puerto está corriendo nuestro servidor. En el ejemplo es el 5902, así que es necesario ir al administrador del cortafuegos y abrir dicho puerto:

YaST->Seguridad y Usuarios->Cortafuegos->Servicios Autorizados->Opciones Avanzadas

En la sección "Puertos TCP" agregamos el puerto que anotamos en el paso anterior:



Damos aceptar a esa ventana y a la ventana de configuración del cortafuegos.

Y ahora estamos listos para compartir nuestro escritorio con los estudiantes. Sólo debemos decirles que bajen un cliente VNC (como TightVNC) y les damos nuestra IP y el puerto asignado al servicio, por ejemplo:


192.168.0.100:5902


Y eso es. Happy teaching!

lunes, 30 de mayo de 2011

Web of Lies

[youtube http://www.youtube.com/watch?v=3LkN4C9SJjk&w=425&h=349]

[Simone Simons:]
Dear PX, I feel you are the one
What's your name? Where are you from?
I'm in love, though we never met
Looking for clues, I search the net

Dear PX, I'm waiting for your mail
Check every hour, to no avail
Been up all night, couldn't get to sleep
No way out, I'm in too deep

Dear PX, It's been eleven days
I'm kind of lost within this maze
Are you there? Give me but a sign
Are you at home? Are you on-line?

[Phideaux Xavier:]
Dear Simone, I'm sorry for the wait
I've seen your pics, you're looking great
I'm all alone, dying for a date
I think we match, it must be fate

[Simone Simons:]
Dear OL, I feel you are the one
What's your name? Where are you from?
I'm in love, though we never met
Looking for clues, I search the net

jueves, 26 de mayo de 2011

I'm a dog

"But it seems the thinkers you call greatest are
The sort who often fall ill young, or pine away
How can they help but drag the species down?"


By Crash Test Dummies

Mal paso

Corro sin la noción exacta de si huyo o persigo.


Mi corazón no para de suplicar por un descanso en cada bombeo de sangre. Ya siento que se acercan sus últimos latidos pero aún así no me detengo.


En la medida que avanzo, los arbustos y árboles se tornan más espesos y lúgubres. A ratos no distingo si aún es de día debido a que las copas de los altos árboles se entrecruzan con una funesta intencionalidad.


El suelo, aunque cubierto de hojas muertas, no amortigua mi caída en lo más mínimo. Siento cómo varios hilos de tibia sangre recorren mis rodillas.


Miro por última vez hacia atrás en búsqueda de mi depredador. Su presencia me es aterradoramente conocida.


Creo divisar cómo su silueta se abre paso entre la espesura del bosque. Es como si la naturaleza misma no se atreviera a estorbar su inminente y casi levitante andar.


En un inútil intento por levantarme, compruebo que mis extremidades superiores ya no responden. De inmediato, a mi mente viene la imagen de ella sirviéndome el último trago antes de partir.


Ahora, lo que antes me pareció un gesto contenido, se vuelve una clara mueca de desprecio.


Me consuela el hecho de que siempre supe que ese veneno volvería a mí.


La visión se me nubla y con mi último aliento maldigo tu nombre...

jueves, 19 de mayo de 2011

miércoles, 18 de mayo de 2011

martes, 17 de mayo de 2011

1993

Hoy por la tarde conversaba con algunos estudiantes en el casino de la facultad.


Capuchino en mano, les contaba que mi paso por la universidad no se posicionó para mí como los tan típicos "mejores años" de la vida de cualquier ex compañero. No es que lo pasara mal, sino que los asumí como un proceso para alcanzar una etapa mejor.


Ahora, luego de jugar con el hashtag de moda en twitter, recordé lo bien que lo pasé #cuandoibaalcolegio: las tardes enteras en los videos de la esquina, mis amigos que entraban y salían de nuestra casa como si estuvieran en la de ellos, escuchar música en mi habitación, los yuntas del colegio que apoyaban en todo,las lindas compañeras de la básica (era un enamorado, lo admito...) y las buena tela de la media... Y un largo etcétera...


A mis ojos mi familia era (y es!) perfecta. En casa nunca faltaron los ingredientes necesarios para hacer de aquella época una de las mejores.


Ya estando en la U, el carrete y el exceso eran para mí formas muy banales de pasarlo bien. Aún así, hubo unas cuantas personas que fueron muy importantes para mí en ese tiempo. A pesar de que con muy pocos mantengo contacto frecuente, siempre los recuerdo y me las ingenio para saber que están bien.


Hoy por hoy los tiempos han cambiado, y mucho. El ritmo de la vida te exige como única satisfacción el consumismo: eres lo que compras. Juntamos plata para viajar y conocer otras culturas y ni sabemos el nombre de nuestro vecino.


Por suerte, en estos frenéticos tiempos, mi refugio sigue siendo la música. Aún cuando la distancia que me separa de aquel chico de mirada enamorada es abismal, trato de mantenerme concentrado en lo más fundamental...

jueves, 12 de mayo de 2011

Descansar...

No me mire así... de inmediato me vuelvo a tender junto a usted.

Aún nos queda algo de tarde.

martes, 10 de mayo de 2011

El avance en la oscuridad

A veces siento destellos muy finos de luz emanar de entre mis poros. Sucede a menudo cuando el lobo reniega del viaje.


Las partículas, suspendidas a escasos centímetros de mí, brillan como desafiándome a que las alcance.


Confieso que no podría avanzar entre ellas sin sentir sus ínfimos roces sobre mi piel.


Suspiro de alivio desde el otro lado: es sólo sangre...

miércoles, 4 de mayo de 2011

On This Perfect Day

just Lori...

El camino

"La liberación parte desde la mente...". Ha venido diciendo una voz en mi interior por muchos años.


Hoy, cuando es la incertidumbre la que me mantiene en el camino y a la vez la misma que me hace querer claudicar, siento que no importa qué tan lejos o cerca esté del final del mismo.


El "darse cuenta" requiere de un descanso junto al fuego...


Cuando he recolectado la mitad de la leña; me pregunto si alguna vez tuve algo de lumbre conmigo...

martes, 3 de mayo de 2011

We can restart...

[youtube http://www.youtube.com/watch?v=K3D_ENwGXrI&w=425&h=349]

domingo, 1 de mayo de 2011

Buscando el invierno...

[youtube http://www.youtube.com/watch?v=ahtFJvEcDk8&w=425&h=349]


Creo que Ellen se ve maravillosa en este video...

viernes, 29 de abril de 2011

Mi escritorio

Cada cierto tiempo a los usuarios de Linux nos gusta mostrar el escritorio que tenemos... Siempre he preferido los escritorios ordenados en vez de los caóticos llenos de íconos por todas partes, por ahí pasa mi gusto por KDE sobre Gnome. Me inspira más tranquilidad y relajo a la hora de usar el computador.

Fantasmas...

Y hoy al despertar, contemplé un leve destello entre la oscuridad que por años me consumía...


La búsqueda había terminado. Una serenidad invadió mi mente al descubrir que lo que buscaba no estaba aquí ni en ningún otro lugar...

jueves, 28 de abril de 2011

Let England Shake

[youtube http://www.youtube.com/watch?v=I2Qlb0qFLFE&w=560&h=349]


The West's asleep. Let England shake,
weighted down with silent dead.
I fear our blood won't rise again.

England's dancing days are done.
Another day, Bobby, for you to come home
& tell me indifference won.

Smile, smile Bobby, with your lovely mouth.
Pack up your troubles, let's head out
to the fountain of death
& splash about, swim back and forth
& laugh out loud,

until the day is ending,
& the birds are silent in the branches,
& the insects are courting in the bushes,
& by the shores of lovely lakes
heavy stones are falling.

Autumn morning...

image

martes, 18 de enero de 2011

Controlar remotamente tu sesión de openSUSE

En el principio de los tiempos, las sesiones de administración remota por vnc creaban una sesión gráfica nueva y no era posible controlar, por ejemplo, la sesión de usuario que actualmente estaba abierta. Hoy los tiempos han cambiado y ya es posible realizarlo en unos muy sencillos pasos:

1. Instalar el servidor de administración remota. Vamos a la administración de paquetes de YaST y en el campo de búsqueda ponemos: x11vnc. Seleccionamos ese paquete y le damos a instalar (aceptamos sus dependencias si es que las hay).

2. Habilitar el servidor para la administración remota. En openSUSE es muy fácil, basta con ir a YaST->Servicios de Red->Administración Remota. Marcamos la opción "Permitir administración remota" y chequeamos en "Puerto abierto en el cortafuegos". Al aceptar se instalarán los paquetes necesarios.

3. Opcionalmente y si fuera necesario abriremos el puerto 5900 de nuestro computador: YaST->Seguridad y Usuarios->Cortafuegos.  Seleccionamos "Servicios autorizados" y luego "Opciones Avanzadas". En la ventana agregamos el puerto TCP 5900.

4. Ya casi estamos listos. Ejecutamos el servidor de vnc en un terminal y como usuario normal de la siguiente forma:


x11vnc -usepw


Eso nos pedirá el ingreso de una clave para el control de acceso; ponemos la clave que queramos y la volvemos a ingresar.

5. Ahora podemos probar desde otro computador en la red local. Por ejemplo si la máquina que queremos controlar tiene la IP 192.168.0.40 presionamos Alt+F2 y ponemos el siguiente comando (o en una terminal):


vncviewer 192.168.0.40


Al dar enter nos pedirá la clave que ingresamos en el otro equipo y ya deberíamos estar controlando nuestro computador.

6. Al cerrar la sesión de VNC no podremos volver a conectarnos a nuestro equipo a menos que nuevamente ejecutemos el comando x11vnc... para evitar esto y habilitar la administración remota permanentemente haremos lo siguiente en KDE: Preferencias del Sistema->Autoarranque->Añadir programa.  En el campo de texto ingresaremos:


x11vnc -usepw -forever -bg


Aceptamos y ya hemos terminado. Ahora podemos controlar nuestra sesión activa de KDE desde cualquier otro computador.

Probando WP desde Android

Esta es una prueba sobre la app de WordPress en mi androide.

Real Time Web Analytics