la web de clave 53

ayer llamó una amiga de carmen
preguntando por ella
pero no estaba

contesté al teléfono
casi iracundo
porque estaba concentrado
y el fuerte pitido me había desconcentrado

le pedí perdón y me justifiqué
diciendo que estaba trabajando
y ella me dijo que si estaba con las musas
a lo que contesté que no
que estaba haciendo la web de clave 53

pues estarás
entonces
con los musos
dijo ella

y yo le contesté que sí
pero luego
pensándolo
me hizo gracia darme cuenta
de que trabajar con la poesía se considera algo digno
de musas
de que trabajar con la informática se considera algo digno
de musos

siempre he preferido mi lado femenino
aunque sea para enamorarme de él.

Dime cuando termino

Título de la acción y acción en sí.

Este año, como otros anteriores, he sido invitado a participar en los encuentros que realiza Luis Elorriaga en el pueblo más oriental de La Mancha, llamado Caudete. Como otros años, voy presto a disfrutar de lo que, en su día (Hilario Álvarez), me describieron como un botellón de artistas.

La generosidad de Luis lo mantiene en pie y, supongo que la de los que ofrecemos las piezas que se muestran durante una jornada gastronómico-festivo-artística en la que suele haber unas instalaciones de obra interviniendo la finca en la que tiene lugar el evento, una comida grupal de arroz con verduras que hace Luis al fuego, unas maravillosas charlas de sobremesa regadas de vinos varios mientras pelamos las almendras de la temporada, durante las que suelen gestarse bonitas amistades y/o colaboraciones.

Tras un rato de asueto, se llevan a cabo las acciones, bajo la escasa luz existente, con más voluntad que logística, pero sin faltar nada que haga imposible realizar una performance (¿acaso eso es posible?). Cuando se termina el trabajo performático, se proyectan unos vídeos de colaboradores que no han podido acercarse o que han preferido estar en otro lugar, pues no faltan sugerencias en el mundo para hacer cosas. De hecho, este sábado yo en parte desearía estar en otro lugar, en la manifestación que este 15 S que puede que pase a la historia de este país como la caída de algo… o al menos el comienzo, otro comienzo, de alguna caída o recaída…

Tras las proyecciones, continúa la fiesta hasta que los más jóvenes (entre los que ya no me cuento) se van a dormir a las tiendas de campaña o a aposentos más o menos confortables. El día siguiente, un despertar delicado, libre, va haciendo que nos incorporemos a un desayuno colectivo, asambleario casi, con variedad de opciones nutritivas y apetitosas al aire libre, bajo las telas que protegen débilmente del sol, que irradia débilmente las cabezas de finales de septiembre.

Este año me cuesta más irme que ninguno anteriormente: Carmen se está examinando para conseguir el título de Profesora de Pilates y me gustaría estar a su lado. Sé que es muy nerviosa y que eso la calmaría, le ayudaría a relajarse entre exámenes, le podría servir para que lograse su sueño, uno de sus sueños, una más de sus ambiciones que la convierten en una persona imparable, incansable, que se reinventa a sí misma cada semana, cada mes, cada año… y cada vez que me vuelvo a encontrar tiene algo nuevo con lo que sorprenderme y no deja nunca de deslumbrarme con su ilusión, sus ganas de vivir, su ímpetu, su pasión… e intento apropiarme algo de ese alma, ánima irreductible, invicta, poderosa y valiente.

Pero voy a ir. Debo ir. Ella no me necesita. Ni yo necesito ser su papá. Y voy a ir porque creo que es una buena contribución a este país, porque creo que es un proyecto generoso, intenso, delicado, que hay que cuidar para que siga existiendo. Voy a ir porque hace tiempo que no realizo una performance y me apetece hacer, al menos, una al año; medirme con este lenguaje, ver sus posibilidades, sentirme como me hace sentir.

Todos los años suele ser pensada la acción mientras estoy de vacaciones en Vera, durante el verano, junto al mar. Este año dediqué una hora de mis mañanas a caminar unos 7 kilómetros por un largo paseo paralelo al mar, hasta el pueblo vecino de Garrucha. Un bonito recorrido que aprovechaba para pensar. Y una de las ideas que me vino a la cabeza fue la de no saber cuándo terminar algo. Algo que se repita sin parar, algo que pueda ser hecho hasta la extenuación, como podría ser caminar, entrando en un bucle infinito de repeticiones que pueden, o no, ir aumentando de intensidad. ¿Cuándo termino? Dímelo tú. Voy a pedírtelo. Voy a pedirte que me digas cuando termino.

Y aquí hay un juego tontorrón de palabras, una respuesta implícita, a modo de adivinanza, que hará que si repito esta frase mientras realizo la pequeña acción (caminar, pelar almendras, beber agua, respirar, escupir, tirar piedras, encender cerillas, romper folios de un libro…. o todas ellas a la vez) estoy diciendo que termino cuando me digas cuando termino.

Realizo un pequeño esbozo de lo que será esta acción casi programable, un diagrama de flujo que relacione la programación con la performance, incluso, quizá escriba un programa que pueda hacer la performance. La acción a realizar es lo de menos. Supongamos que son varias.

Después del diagrama de flujo, aquí va el programa que realizaré mañana. Entregaré copias del mismo para que puedan seguir el flujo del mismo, quien así lo desee.


/********************************************************
Performance "Dime Cuando Termino" (escrito en C)
Pensada en Vera, Almería, en Julio de 2012.
Programada por Giusseppe Domínguez
el día 14 de septiembre de 2012 en Madrid.
Se realizará por primera vez (única) en Caudete
9º Encuentro Internacional de Arte de Acción y Performance.
********************************************************/

#define AUTOR "Giusseppe Domínguez"
#include
#include
#include

int realizar_accion(char *accion);
int saludo(char *titulo_performance);
int firma();

main()
{
char titulo_performance[]= {"Dime Cuando Termino"};
char *acciones[]= {"caminar", "pelar almendras", "beber agua", "escupir", "tirar una piedra", "encender una cerilla", "arrancar una hoja de un libro"};
int numero_de_acciones=strlen(*acciones);
int indice_accion;
int dime_cuando_termino=0;
int cuando_termino=1;

saludo(titulo_performance);

while (dime_cuando_termino == 0) {
for (indice_accion=0; indice_accion < numero_de_acciones; indice_accion++) {
realizar_accion(acciones[indice_accion]);
}
printf("\n\n%s\n", titulo_performance);

if (scanf("%d", &dime_cuando_termino) != 1){
/* manejo de error */
printf("\nEn la versión de programa informático, solo se aceptan números. Son las reglas.");
printf("\n%s: Requiere un 0 o un 1", titulo_performance);
printf("\nEn la versión de arte=vida, comienza la incertidumbre.");
dime_cuando_termino=1; /* Se termina la acción, de alguna manera brusca. */
}
if (dime_cuando_termino!=cuando_termino) {
printf("\nMuchas gracias.\n");
saludo(titulo_performance);
printf("\nContinúa la acción.\n");
dime_cuando_termino=0;
}
}

firma();
}

int realizar_accion(char *accion)
{
printf("\n%s", accion);
return 0;
}

int saludo(char *titulo_performance)
{
printf("\nHola. Me llamo %s, y la Acción se titula %s\n\n", AUTOR, titulo_performance);
return 0;
}

int firma()
{
time_t tiempo = time(0);
struct tm *tiempolocal = localtime(&tiempo);
char txt_firma[128];
strftime(txt_firma,128,"\na las %H:%M. M-%Y%m%d\n", tiempolocal);
printf("\n\n%s, %s\n", AUTOR, txt_firma);
return 0;
}

Dos salidas posibles de este programa compilado en C, y editado, obviamente, en VI.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Giusseppe Domínguez,
a las 13:28. M-20120914

Otra:

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

Muchas gracias.

Hola. Me llamo Giusseppe Domínguez, y la Acción se titula Dime Cuando Termino

Continúa la acción.

caminar
pelar almendras
beber agua
escupir
tirar una piedra
encender una cerilla
arrancar una hoja de un libro

Dime Cuando Termino

En la versión de programa informático, solo se aceptan números. Son las reglas.
Dime Cuando Termino: Requiere un 0 o un 1
En la versión de arte=vida, comienza la incertidumbre.

Giusseppe Domínguez,
a las 13:28. M-20120914

www.ivanaraujo.com

Acabo de terminar la web de Iván Araújo, mi amigo, mi gran amigo, pintor y grabador que de esto de Internet no entiende nada ni quiere entender.

Y cada día lo entiendo (a él) más. No perder el tiempo en cuestiones como Facebook, emails, etc, hace que pueda centrarse en lo que sí que entiende y sí que hace bien, que es su obra plástica, sus pinturas, grabados, monotipos, sus talleres de grabado, su desarrollo como artista que se hace a sí mismo a cada paso de sus obras, con tesón, con sudor, transpiración al 99%…

Mientras, me ha decidido pagar la web (que un refrito de otras hechas y arreglada para la ocasión) con obra suya, y me hace rememorar a Picasso y Duchamp, sus relaciones, sus pagos en obra, la riqueza que acumuló el segundo que apenas hacía otras propias y, desde luego, poco comercializables, pero que se entregaba, parece ser, en ayudar con diversas gestiones extra-artísticas a sus amigos pintores, como el primero.

Compararme con Duchamp siempre ha sido uno de mis más anhelados deseos, no con Picasso, pero cada cual elige cómo quiere ser… y yo querría ser Duchampiano… Marcel-Duchampiano, claro. Quizá no esté tan cerca como quiero pensar, pero acercándome, y se lo debo, en parte, a mi querido Iván.

Para hacer esta web, como comentaba entre paréntesis, ha sido fácil, reutilizando algunos recursos que ya había usado en la mía, como la estructura en frames, o parte de las hojas de estilo, o la presentación de fotografías usando la librería highslide.js; pero también he tenido que hacer algunas cosas más «periféricas» como cambiar el tamaño de los archivos masivamente, cambiar nombres, crear index.html automáticamente…. para lo que he desarrollado algunos scripts como el siguiente:

#!/bin/bash

# DEFINICION de VARIABLES
let contador=0

while read line
do

    resto=`expr $contador % 4`
    if [ $resto -eq 0 ]
    then
    echo -e "\n \n"
    fi
    # echo -e $(printf "%02d" "$contador")
    numfile=`echo -e $(printf "%02d" "$contador")`
    echo -e "

    \n< a id=\"thumb1\" href=\"img$numfile.jpg\" class=\"highslide\" onclick=\"return hs.expand(this, { slideshowGroup: 1 }) \">"
    echo -e "\"Imagen\""
    titulo=$line
    echo -e "

    $titulo

    "
    echo -e "

    \n"

    # echo "Título: $titulo";

let contador=$contador+1;
done < listado.txt

Y es que me encanta programar para que programe para mí un programa… hacer algo que haga me gusta más que hacer directamente… quizá por eso me interesan tanto los talleres de escritura o performance… saber que ayudo a crear, más que crear en sí mismo es una forma interesante y diferida de creación, y no puedo evitar disfrutarla sobremanera.

También usé otros recursos como integrar un blog de wordpress, para que pueda mantenerlo él mismo y actualizar parcialmente el contenido de la web, o vincular las novedades a álbumes web de google/picassa, que podrá modificar el mismo Iván sin mi ayuda. Esto ya lo había usado también en algunas webs como la de Carmendelarosa.com o la de Espacio El Manantial (cuando la hice yo).

Como condiciones de trabajo, las habituales: usar herramientas extremadamente simples, como el VI, así como software de código abierto (GIMP, gThumb, pyRenamer) todo sobre Linux, con ftp client: Filezilla. Hosting: www.justhost.com.

Ahora, a disfrutar de la web y espero que Iván le guste tanto como me gusta a mí y le resulte fácil de mantener.

Me gusta el amor de todos los colores

Hoy no voy a escribir un código terminado, quizá otro día lo haga, aunque no sé muy bien si tendré que seguir la senda de colores por la longitud de onda, es decir, colores puros, o por una variación de hexadecimales que, en triada, formen un código RGB, por ejemplo.

El color es algo que todos vemos y pocos entendemos… y no sé si me cuento entre los segundos.

Una aproximación al programa que realizaría es la siguiente:

for color=BLANCO to NEGRO {

    me gusta el amor color

}

// y, para terminar… (o no)
while (color) {

    me gusta amar

}

Pánico tras el 12.04

El otro día entré en pánico:

Mi pie se descompuso.

Fue el viernes
día
27
de abril.

Y eso que el 27 es 3^3
o tres al cubo
y el número de letras del alfabeto.
(Uno de mis números preferidos)

Pero mi pie no podía apoyarse en el suelo
mi pie derecho
así que tenía que levantarme pisando con el pie izquierdo
y la mala suerte hizo sucumbir mi portátil
en una actualización inacabada
que dejó el ubuntu 12.04
a medio camino entre un sistema usable
y un sistema desagradable.

¿Quién me manda actualizar tan rápido
sabiendo que hay que ser
en esto
conservador?

Cansado de Unity
decidí que era un buen momento
para
(ya que tenía que estar en reposo
durante todo el puente del primero de mayo)
instalar Linux Mint.

¿Qué tenía que hacer para ello?
1.- Convertir una partición de primaria a extendida
aunque luego vi que no era necesario, que ya estaba hecho.
2.- Instalar Mint en el espacio disponible que siempre tengo
en mis discos duros, en mi casa, en mis armarios, en mi corazón…
3.- Copiar /home/giusseppe de la partición con ubuntu (12.04)
al nuevo sistema instalado.
4.- Verificar que los discos de NTFS eran, de nuevo, accesibles
y de paso instalar GParted para dominar el mundo
de mi disco duro
5.- Instalar y configurar los programas que utilizo que vienen a ser
Thunderbird, Firefox, Midori
OpenJDK, FreeMind (para mis lenguas…)
VirtualBox, Skype, Spotify, Shotwell, VLC
DropBox, UbuntuOne (para Mint, que también hay)
GrubConfigurator
Filezilla, JDownloader (quizá Tucan)
y las fonts y los codecs que puedan no venir con el sistema.
K3B, Audacity, Wammu, z7, Samba, UnetBoot, Multisystem, PDF-Reader…
6.- Verificar el correcto funcionamiento de las conexiones
HDMI, Audio interno, y otras pantallas.
7.- Ejecutar el script para llevar a cabo las sincronizaciones programadas
que programé.
8.- Cuando todo estuviera acabado
en el ubuntu 12.04, librarme del maldito Unity
instalando un entorno más simpático
como KDE o Enlightment.

Pero todo quedó en nada
porque conseguí arreglar la decadente actualización al 12.04
y no me apetecía perder mi tiempo
siguiendo un número considerable de pasos
que me dejarían
más o menos
igual que ahora
pero más verde, más mint…

No lo lamento
y lo único que queda
de ese momento de pánico
es algo de temor a hacerme
más daño en el pie
o más daño en otras partes de mi cuerpo
y acabar sintiendo
lástima de mí mismo
sabiendo
que no tengo en mi cuerpo
espacio reservado
para poder instalar otro sistema operativo
instalar unos cuantos programas
rearrancar
y comenzar a vivir otra vez.

Por eso, por eso…
la vida es tan valiosa
tan insustituible
tan preciosa
como no lo será nunca ningún diamante
que son duros y para siempre
y fríos
y transparentes
cristalinas estructuras de carbono presurizado.

Por eso, por eso
hay que vivirla intensamente,
porque las actualizaciones
no nos llegan de fuera
de un repositorio estable
sino de nuestras propias entrañas
a las que quiero adjetivar y no sé cómo.

Por eso, por eso
las conexiones que establece este sistema
efímero y frágil
deben ser tan cuidadas
como bonsais en el desierto
y las interfaces de usuario están abiertas
o muertas.

Por eso, por eso…

por eso…

por eso.

El pánico es mortal.

(=vital)

4estaciones.c

Otro poema escrito en C, compilado y una de cuyas salidas se muestra a posteriori. En primer lugar, el código:

/********************************************************
Poema 4 Estaciones (escrito en C)
realizado por Giusseppe Domínguez
el día 4 de mayo de 2012 en Madrid
bajo la lluvia de la primavera
********************************************************/

#include
#include
#include
#include

int estacion(char *laestacion, char *clima);
int firma();

main()
{
char *estaciones[]= {"Primavera", "Verano", "Otoño", "Invierno"};
char *clima[]= {"lluvia", "sol", "viento", "frío"};
int indice_estacion;

for (indice_estacion=0; indice_estacion<4; indice_estacion++) { estacion(estaciones[indice_estacion], clima[indice_estacion]); } firma(); } int estacion(char *laestacion, char *clima) { int dias_anno=365, dias_estacion=dias_anno/4+1, dia; int longitud_clima=strlen(clima); char *estrofa_estacional = malloc(dias_estacion*longitud_clima*sizeof(char)); printf("%s\n",laestacion); for (dia=0; dia

Y una de las salidas posibles...

Primavera
lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia lluvia
Verano
sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol sol
Otoño
viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento viento
Invierno
frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío frío

Giusseppe Domínguez, a las 13:40. M-20120504

Me interesa la mezcla extraña de escribir sin escribir...

Cables

Alrededor de mis manos hay varios cables
negros
y uno azul
y uno plateado
que conectan la corriente de mi portátil
y los discos duros externos
que utilizo para almacenar
datos y datos
de cosas sin las que por supuesto
que podría vivir
pero que quiero tener cerca
accesibles
a la distancia de un cable negro
que rodea mi entorno
hasta hacerme sentir
parte integrante de ese panorama
cableado
cabreado
que necesita estar
permanentemente
conectado
a la corriente eléctrica
para alimentarse
nutrirse
de electrones locos
que llegan en manadas
al borde de mi tacto
donde se unen en un extraño y silencioso
orgasmo de conexión
con una piara de electrones
que mi piel transmite a la parte más interna de mis cinco capas
tocándome
el corazón
el cerebro
y haciéndome escribir este texto
que habla de ellos
en un lugar en el que ellos habitan
como si fuese su reino
negro
y plateado.

Mi cerebro es un reino vasallo
que paga los impuestos
impuestos
por ejércitos de partículas elementales
que nunca
debieron ser consideradas
despreciables.

Infravaloramos
al enemigo.

bip
beep
bip
bip
0
1
1
0
1
0
0
0

De la privacidad y otras paranoias

El sábado estuve hablando con una amiga de Carmen sobre lo expuestos que estamos a la vulneración de privacidad en Internet. Especialmente, ella estaba preocupada por Facebook y la facilidad que supone que existe de que la información puesta allí acabe por ser expuesta.

Está claro que no puedo por menos que darle totalmente la razón. Hace tiempo que he hablado de esto de FaceBook y la Intimidad y soy más que consciente de la falta de privacidad que supone tener una cuenta abierta de Facebook… pero…

Si llevamos al extremo la paranoia de la privacidad, podemos llegar a la conclusión de que en la era de la información, es imposible sostener la intimidad más allá de lo que creamos. Necesitamos, de algún modo, ser capaces de meter la cabeza en la tierra (o en la red) y olvidarnos de que nos pueden estar y, de hecho, nos están vigilando. También escribí al respecto en un artículo sobre la Ley SOPA, la criptografía, y otras cuestiones que sería interesante tener en conocimiento, pero, aún así, sería imposible (como fue con PGP) mantener durante mucho tiempo la libertad y el control de mi propia privacidad en Internet.

Internet es un lugar público. Es lo básico. Cualquier intento por hacerlo no público resulta complejo por no decir inútil. Existen posiciones más o menos radicales que luego vulneran las libertades de otros muchos en aras de la seguridad… pero es que la seguridad y la libertad son casi palabras contrapuestas, son caras de una moneda que ha de convivir constantemente pero que sacrifica constantemente la una por la otra.

Hace unos días he llegado a la conclusión de que este ordenador lo uso solo yo y, por primera vez en mi vida, he quitado la clave de acceso para poder acceder al mismo. En realidad, era bastante ridículo porque casi todo lo importante lo almaceno en mi disco externo, que podría ser visto sin contraseña. Tenía la opción de cifrar el contenido de manera que no cualquiera pueda acceder a él, pero entonces yo me vería obligado a saber que la solución de cifrado era fiable y confiable, que iba a ser mantenida más allá de un tiempo que puedo imaginar… o sea, que sacrifiqué la seguridad por la usabilidad.

Hay otros ámbitos de seguridad como es la copia de seguridad que no implican esta restricción, pero que resultan ser de difícil gestión en cuanto a lo que privacidad se refiere. A medida que vayamos yendo a modelos de Internet en la Nube (que siempre lo fue, aunque no lo supieran muchos), nos encontraremos con ese paradigma entre depositar mi información en local o en remoto y, de este modo, confiando en el responsable del almacén.

Algunos (y me incluyo) usamos en algún momento megaupload para este fin, con el consabido problema derivado de almacenar qué. Y las responsabilidades que, un gobierno de un país concreto, decidió tomar unilateralmente en un servidor de ámbito global.

Quizá este será el próximo gran reto de la nube: siendo un espacio de empresas con objetivos internacionales, estar sometidas a las restricciones nacionales. Este conflicto país-globalización no está en absoluto resuelto y los primeros síntomas de que esto es un problema no acaban más que de empezar.

Véase, por ejemplo, la decisión de Blogspot de tener dominios por país, así que ahora un blog está asociado a España o a Francia o a… aunque tenga contribuyentes de los distintos países… lo cual es algo bastante absurdo e insostenible… pero bueno, intentan resolver un problema irresoluble…

Claro que yo puedo (y todos) tener un hosting propio, con un blog asociado a ese espacio en Internet, pero no dejo por ello de estar sujeto a las restricciones nacionales del país en el que está dada de alta la empresa en cuestión. En mi caso se trata de JustHost, pero no hay forma de saber realmente, dónde tienen los servidores, es más, es previsible que tenga su estructura empresarial distribuida a lo largo y ancho del mundo. Sin embargo… en algún lugar está dada de alta… y entonces es de allí.

Pero, volviendo al tema de la paranoia… la gente que se plantea si Facebook puede o no vulnerar su privacidad, no se plantea, o pocas veces, que Microsoft es un sistema propietario de una empresa que se niega a revelar lo que hace con la información que se almacena en él. Y las últimas versiones de Windows, de hecho, con su afán por personalizar la interfaz, han avanzado aún más en la gestión de la información personal, haciendo incluso que muchos de los detractores comiencen a atacar por esta vía a la futura implementación de un presumible windows cloud que guardará información como DNIs, tarjetas, por no decir fotos, etc… en un perfil online accesible desde cualquier lugar…

Y de la transparencia en las comunicaciones y los protocolos de Internet, mejor ni hablar, porque nos darían los siete males. Asumámoslo: Internet es un lugar público, aunque pretendamos tener nuestras parcelas privadas… pero, ahora más que nunca, vuelve a ser vigente el dicho de Es imposible ponerle verjas al campo.

Hablando de austeridad

Tengo un portátil que compré hace más de 7 años de segunda mano a unos chicos bolivianos (de hecho, que el modelo fuese Evo me pareció muy gracioso). Me costó, entonces, 200€. A mí me parecía caro cuando la gente estaba gastando de media en cada PC unos 600€, ofertas de 499€ aparte. Para mis necesidades, que eran varias, me sobraba.

Es un Compaq Evo Notebook N610c

Con unas características técnicas interesantes:
Mobile Intel® Pentium® 4-M Processors at 1.6-GHz
Microsoft® Windows® XP
ATI Mobility Radeon 7500 Graphics Controller with 32 MB of DDR video RAM.
14.1-inch SXGA+ display
512 MB DDR RAM (266 MHz)
80-GB HD.

Y una conectividad enorme (un par de puertos USB, PCMCIA, donde instalé una antena wifi, salidas de vídeo digital y VGA…) y de Bluetooth ni hablamos!

Lo tuve conviviendo conmigo hasta que el cargador empezó a fallar. Al principio intenté conseguir un cargador oficial de Compaq, pero fue tal que imposible o muy muy caro… para un portátil de 200€. Así que me compré un cargador en un bazar que hacía un ruido muy molesto. Y seguí con el equipo en marcha y con mis proyectos… luego, después de otro añito, parece ser que la entrada de corriente dejó de funcionar aleatoriamente, es decir, que en mitad de cualquier actividad se apagaba y te dejaba tirado como un mal amigo.

Y llegó el momento de decirle adiós. Pude comprar un «maravilloso» HP Pavilion Dv6 que se suponía que iba a ser lo más de lo más. Me costó la friolera de 700€. Pero me tiene que durar años y años… con conexiones de todo tipo (ahora lo tengo conectado a la TV con HDMI). Y mi viejo amigo Evo fue relegado al olvido.

Hasta que decidí comenzar a instalarle Linux.

Con un ubuntu 9.04, decidí llevármelo a Vera de vacaciones para ver qué tal… y era genial. Podíamos conectarlo a la TV y ver lo que fuera en ella, podíamos conectarnos a Internet con el Wifi de la vecina o con un cable USB y mi móvil Sony Ericcson 610i.

Y decidí dejárselo allí a mi madre y a quien quisiera usarlo, pero solo lo usaba yo, porque parece ser que todo el mundo está acostumbrado a que todo funcione excepcionalmente bien y nunca jamás se apague…

Con los días, lo fui echando en falta para hacer pruebitas en casa, para juguetear con él y no con el fabuloso que tengo para trabajar. Y se ha convertido en uno de los ordenadores más insólitos que haya conocido.

Le he ido instalando una galería de distribuciones Linux de bajos recursos, pensando en si algún día es necesario retomar los equipos que han sido abandonados por considerarse insuficientes y me he dado cuenta de que soy un experto manejando la escasez de recursos. Yo debería estar hablando de austeridad a la señora Merkel. Con solo 80 Gb tengo instalados más de 9 sistemas operativos distintos… y me sobra espacio para otros 4, calculo. (La imagen está desactualizada: ya tiene otro más: Kubuntu… que es el que menos me gusta de todos)

Obvio que no serán maravillosos, ni superestupendos… pero todos tienen una buena conexión a Internet, navegadores, clientes de correo, de chat, de ftp, todos tienen una buena y gratuita aplicación de oficina, Libreoffice en casi todos los casos, con su procesador de texto, su hoja de cálculo, etc, reproductor de audio, de vídeo, gestor de archivos, un programa de edición fotográfica y de gestión de disco duro y muchas herramientas más que la mayoría de la gente ni siquiera utiliza.

Así que, ahora que tengo dos ordenadores para trabajar, casi no sé si me parece un exceso y tengo que recortar!

Syncronizator.sh

Pierdo un tiempo bendito en una cosa tan absurda como reinventar la rueda. Sé que hay muchos programas de realización de copias de seguridad, algunos, incluso, de sincronización de carpetas que pueden interesarme para calmar mi obsesión de realizar copias y copias para asegurarme de que, en cualquier momento, pase lo que pase, mis archivos estarán a salvo y podré trabajar desde cualquier lugar, cualquier ordenador, sin tener que perder un minuto restaurando sistemas…

Lo borro todo, lo restauro todo de una copia de seguridad, en disco externo. en otro PC, en la nube sería ideal, pero hay problemas de espacio que no tengo resueltos… el servidor con el que llevamos a cabo el hosting es un poco reacio a dejarnos subir cosas (Esto de subir siempre me suena gracioso y me imagino, en la nube blanca, mis archivos colgados como ropa en tendedero). Es normal, en realidad, el servidor que alberga la web de Clave 53, Giusseppe.net (incluyendo este texto que estoy escribiendo en el diario), carmendelarosa.com, lilianflores.com, espacioelmanantial.com y algún otro dominio con menos cosas… no está contratado para ser un servidor de backup, que los hay, ni una carpeta en la nube… o sea, en Internet.

Pero siempre estoy pensando (y por siempre es, verdaderamente, siempre) en qué ocurrirá si mi portátil deja de funcionar. Es algo que sé que pasará, ha pasado alguna vez e inevitablemente volverá a suceder. Así que debo estar seguro (y esto sé que es imposible) de que todo lo que haga lo tendré en otro PC, en algún disco externo… vamos, que he de tener réplicas infinitas pues solo así acabaría por estar convencido de que no hay nada que pueda ocurrir que impidiese restaurar alguna.

Y además, ahora tengo una paranoia nueva…

Según terminé de programar mi querido Shell Script que sincroniza las carpetas que quiero que sincronice… me ha dado por pensar que tengo un origen único para todas estas cosas, con lo cual, si alguna vez tengo un problema en ese origen también lo sincronizaré, como buen sincronizador que soy, en todas las demás ubicaciones donde quiero clonarlo. Así que el siguiente paso (que ya hago, pero no tengo bien automatizado) es realizar copias de las copias a carpetas que no toque, que no modifique en adelante o a soportes extraíbles sin permiso de escritura, algunos de los cuales he de retirar de esta casa y llevar lejos, para evitar cualquier posible pérdida de datos en el caso de un ataque nuclear o de un terremoto o un incendio en este edificio. Son cosas que pasan. Sé que esas cosas pasan.

Así que tengo que pensarlo… ¿o no?

Bueno, de momento, hoy quiero compartir (con la pérdida de privacidad consecuente) el archivo que utilizo para realizar mis copias de seguridad desde hoy mismo.

Es divertido darme cuenta de que lo comento tanto que cualquier otra persona podría continuar su desarrollo o su mantenimiento en caso de que fuese necesario, como si fuese pensando en un posible backup o reemplazo, incluso, para mí mismo. Sin pensar si lo que guardo será lo que interese guardar en un futuro o a algún otro que no sea yo.

¡A veces creo que estoy un poco loco!

~/bin/sincronizator.sh


#!/bin/sh

# DEFINICION de VARIABLES
username="$(whoami)"
servidor="192.168.1.2"

# Vamos a elegir qué cosas sincronizar en estas variables lógicas
# Por defecto, sincronizamos todo, local y remoto
SYNC_JMDOMIN=1
SYNC_GIUSSEPPE=1
SYNC_LOCAL=1
SYNC_REMOTE=1

if [ $# -gt 0 ]
then
if [ $1 -eq 1 ]
then
SYNC_LOCAL=1
SYNC_REMOTE=0
elif [ $1 -eq 2 ]
then
SYNC_LOCAL=0
SYNC_REMOTE=1
else
echo "Uso $0 [1=local|2=remote] (por defecto es TOTAL)"
exit
fi
fi

# DEFINICION DE FUNCIONES
cabecera () {
echo "
___________________________________________________________________
___________________________________________________________________"
}
sincroniza () {
cabecera
echo "Sincronizando carpeta: $3"
echo "Directorio de Origen: $1"
echo "Directorio de Destino: $2"
dirorigen=$1
dirdestino=$2
carpeta=$3
origen="$dirorigen/$carpeta/"
destino="$dirdestino/$carpeta/"
rsync -rtvu --delete $origen $destino
}

# Sincronizamos carpetas utilizando la función sincroniza
cabecera
echo "COMIENZO DE LA SINCRONIZACIÓN CORRESPONDIENTE A LA FECHA:"
date

# Sincronizando JMDOMIN
if [ $SYNC_JMDOMIN -eq 1 ]
then
diskorigen="/media/GSPDISK"
dirbase="jmdomin"
dirorigen="$diskorigen/$dirbase"
subcarpetas="FOTOS Archivo Obra Talleres TEXTOS trabajo web-sites"
cabecera
echo "COMIENZO DE LA SINCRONIZACIÓN DE LAS CARPETAS DE JMDOMIN"

# Con destino al disco de DATOS
if [ $SYNC_LOCAL -eq 1 ]
then
diskdestino="/media/Datos"
dirdestino="$diskdestino/$dirbase"
cabecera
echo "ORIGEN= $dirorigen"
echo "DESTINO= $dirdestino"

for subcarpeta in $subcarpetas
do
sincroniza $dirorigen $dirdestino $subcarpeta
done
fi

if [ $SYNC_REMOTE -eq 1 ]
then
# Con destino al disco de RED de $servidor (TOWI)
smbclient //$servidor/$dirbase -N -c pwd
if [ $? -eq 0 ]
then
# Servidor y recurso accesible
# Primero, montamos y verificamos que el destino esté accesible
echo "Montando /mnt/$dirbase"
mount /mnt/$dirbase
estamontado=`mount|grep $servidor|grep $dirbase|wc -l`
if [ $estamontado -eq 1 ]
then
diskdestino="/mnt"
dirdestino="$diskdestino/$dirbase"
subcarpetas="Archivo Obra Talleres TEXTOS trabajo web-sites"

# Verificar si se puede escribir
touch $dirdestino/kkkkk
if [ $? -eq 0 ]
then
rm $dirdestino/kkkkk # Borrando restos
cabecera
echo "ORIGEN= $dirorigen"
echo "DESTINO= $dirdestino"

for subcarpeta in $subcarpetas
do
sincroniza $dirorigen $dirdestino $subcarpeta
done
else
echo "No es posible escribir en $dirdestino"
fi
else
echo "La carpeta $dirbase del servidor $servidor no está montada"
fi
echo "DES-Montando /mnt/$dirbase"
umount /mnt/$dirbase
else
# Servidor o recurso NO accesible
echo "Error de conexión con el servidor $servidor o el recurso $dirbase"
fi
fi # fin de SYNC_REMOTE
else
echo "Evitada la sincronización de JMDOMIN"
fi

# Sincronizando GIUSSEPPE
if [ $SYNC_GIUSSEPPE -eq 1 ]
then
diskorigen="/home"
dirbase="giusseppe"
dirorigen="$diskorigen/$dirbase"
subcarpetas="bin cloud Documentos Escritorio EudoraNEW"
cabecera
echo "COMIENZO DE LA SINCRONIZACIÓN DE LAS CARPETAS DE GIUSSEPPE"

# Sincronización LOCAL de GIUSSEPPE
if [ $SYNC_LOCAL -eq 1 ]
then
# Con destino al disco de DATOS
diskdestino="/media/Datos"
dirdestino="$diskdestino/$dirbase"
cabecera
echo "ORIGEN= $dirorigen"
echo "DESTINO= $dirdestino"

for subcarpeta in $subcarpetas
do
sincroniza $dirorigen $dirdestino $subcarpeta
done

# Con destino al disco de GSPDISK
diskdestino="/media/GSPDISK"
dirdestino="$diskdestino/$dirbase"
cabecera
echo "ORIGEN= $dirorigen"
echo "DESTINO= $dirdestino"

for subcarpeta in $subcarpetas
do
sincroniza $dirorigen $dirdestino $subcarpeta
done
fi
else
echo "Evitada la sincronización de GIUSSEPPE"
fi

cabecera
echo "FIN DE LA SINCRONIZACIÓN CORRESPONDIENTE A LA FECHA:"
date

Esto no es una broma