Bienvenidos al blog del Capitán Malaspina y sus secuaces donde encontrarás reflexiones sobre ciencia, tecnologia, informática y otras cosas de pensar.

10 marzo 2011

ENLACES SIMBÓLICOS (JUNCTIONS) EN NTFS. USO CON DROPBOX



QUÉ ES UNA JUNCTION

Una Junction (punto de unión) es en Windows lo mismo que un enlace simbólico en Linux. Un enlace simbólico es un atajo a un archivo o directorio. Es un nombre, una cadena de texto que apunta a otro directorio o archivo. En sí mismo no contiene ningún dato, sino que contiene la ruta del directorio hacia el que apunta. De alguna manera se parecen a los “Enlaces Directos” del escritorio de Windows, sólo que las “juntiones” están disponibles en todo el sistema de archivos y no solamente en la carpeta donde han sido creadas. Si "c:\mi_directorio" es un enlace simbólico hacia el directorio real "c:\Documents and Settings\Users\PepePaco", al pinchar en la carpeta "mi_directorio" del disco C: se obtendrá el mismo resultado que si se hiciera click en la carpeta "c:\Documents and Settings\Users\PepePaco", pero sin necesidad de tener que ir navegando por la estructura de directorios hasta dar con ella y hacerle doble click. Lo mismo ocurre si desde la consola hacemos:
dir c:\mi_directorio
dir c:\Documents and Settings\Users\PepePaco
En ambos casos obtendremos un listado de los archivos y directorios contenidos en "c:\Documents and Settings\Users\PepePaco". Si edito el fichero "c:\mi_directorio\mifichero.txt", en realidad estoy editando "c:\Documents and Settings\Users\PepePaco\mifichero.txt"
La utilidad de las juntions salta a la vista cuando el camino hacia un determinado documento es muy largo y tenemos que acceder a él con bastante frecuencia. Es demasiado laborioso tener que teclear o buscar en el navegador a cada instante la ruta del archivo, además de que es una fuente constante de errores tipográficos.
DE DONDE PROVIENE LA IDEA
La idea de los enlaces simbólicos proviene del mundo Linux, donde hay una estructura de directorios de sistema y de usuario más compleja y elaborada que el sencillo “C:\” de Windows. Los enlaces en Linux pueden ser simbólicos o duros (simbolic links o hard links), y cada uno tiene su utilidad. Sin entrar en materia, los hard links hacen referencia a un archivo y permiten manejar ese archivo con distintos grados de permisos según el nombre que se utilice. Puedo tener un hard link llamado “doc_user.txt” que señale a un documento con el que solo tenga permiso de lectura de ese archivo y otro enlace duro llamado “doc_prop.txt” que otorgue permisos de escritura al mismo. Ambos nombres se refieren al mismo archivo, pero dependiendo del nombre que utilice para referirme a él podré modificarlo o no.
Los enlaces simbólicos apuntan a una ruta o un archivo en el sistema de directorios. Pueden referenciar cualquiera de las particiones y volúmenes del sistema. En este caso no intervienen los permisos, pues los que prevalecen son los del archivo y directorio originales a los que apunta.
COMO SE IMPLEMENTA
En Unix / Linux, existe la orden ln (link) para crear enlaces. Su uso es:
ln [-s] nombre destino
El paliativo -s sirve para indicar que queremos crear un enlace simbólico. Si no lo expresamos, el enlace será duro.
En Windows hubo en principio una tímida implementación de lo que se dio en llamar "junctions" en Windows NT y 2000. El esqueleto para implementarlos estaba construido dentro del propio sistema de archivos NTFS a partir de su versión 3.0, y Explorer era capaz de manejarlos adecuadamente, pero la herramienta para usarlos no era de dominio público, sino que formaba parte de los "Resource Kit" de estos sistemas operativos. Al cabo de un tiempo(*), pudimos utilizar el comando "junction" desde la consola (aka "Símbolo del Sistema") para estos menesteres, consiguiendo que Windows se pareciera algo más a Linux. Su sintaxis es distinta a "ln":
junction [-s] [-d] nombre destino
-s : muestra recursivamente las junctions de un directorio
-d : elimina una junction
USO CON DROPBOX
DropBox es una utilidad de sincronización de archivos en la nube. Cualquier cosa que vaya a parar al directorio de DropBox es automáticamente enviada a sus servidores y sincronizada. Como podemos tener instalados en varios ordenadores DropBox bajo la misma cuenta de usuario, podemos tener accesible la misma información desde todos ellos. El problema viene cuando se tiene una estructura de archivos estructurada pero compleja y la queremos tener sincronizada con DropBox.
Por ejemplo: somos una administración de fincas y hemos creado un sistema documental para guardar las actas de las diversas comunidades de vecinos. Si quiero acceder a la segunda acta de 2011 de la comunidad nº 30029, llamada "Edificio Edificado", mi diseño del sistema de archivos me dice que la ruta de ese archivo es la siguiente:
C:\Administracion General\Archivo Documental\Clientes\30029 Edificio Edificado\2011\Actas\
Y allí buscar el documento “ActaSegunda.txt
Toda esta base documental quiero que esté accesible para el ordenador de casa, y así poder trabajar con estos documentos fuera del horario laboral de trabajo, pero de manera que los cambios que haga en casa queden reflejados en el ordenador del trabajo y viceversa. Claro que podría usar un pendrive, pero no tengo ganas de estar haciendo copias de seguridad y restauraciones de copias todos los días para llevarme el trabajo a casa y después recuperar en el trabajo lo que hice en casa.
Es un ambiente ideal para el uso de DropBox, pues esta aplicación se encarga de vigilar los archivos que le hemos encargado que vigile y de sincronizar sus contenidos en la nube. Al modificar un archivo en el ordenador de mi trabajo, DropBox lo sincronizará en sus servidores. Al arrancar el ordenador de casa, DropBox sincronizará su disco duro con lo que exista en la nube, descargando la última versión de “ActaSegunda.txt” que guardé en mi trabajo en el pc de casa.
La complicación viene de la mano de la metodología de DropBox, que solamente vigila los archivos que estén en el directorio "MyDropBox". Una vez que haya terminado de trabajar con el archivo “ActaSegunda.txt” lo guardaré en el lugar que tiene asignado en mi estructura de directorios, pero para sincronizarlo debo copiarlo después en el directorio "MyDropBox". Como adivinarán ustedes, cuando tengo que hacer esta operación muchas veces al día, es posible que alguna vez me equivoque de nombre, o peor aún, que olvide hacerlo. Es una labor tediosa, no exenta de olvidos y errores. Claro está que podría trabajar directamente en el directorio "MyDropBox", pero entonces mi estructura lógica de directorios perdería su sentido. Además, quizás no quiera tenerla toda sincronizada, sino solo parte de ella.
La solución, como siempre, es la más fácil y sencilla: seguir trabajando desde mi estructura de directorios, y, en lugar de copiar los archivos modificados a "MyDropBox", crear en este directorio una "junction" -a la que podríamos llamar, "Sistema Documental"-, que apunte a mi estructura de directorios. Abrimos la consola, nos cambiamos al directorio “MyDropBox” y desde allí damos la siguiente orden:
junction “Sistema Documental" "c:\Documents and Settings\Administracion General\Archivo Documental"
(Recordemos que es necesario usar comillas si en la ruta de los directorios hay espacios en blanco)
Con ello, DropBox sincronizará mi estructura de directorios sin necesidad de copiarla en "MyDropBox" cada vez que cambie algo en ella. Tan sólo he de preocuparme de mi trabajo como administrador de fincas. DropBox en combinación con “junction” se encarga de hacer copias de seguridad y mantenerlas sincronizadas al instante, tan pronto como se haya hecho algún cambio en el sistema de archivo.
FINAL
Actualmente, con los sistemas Windows Vista y Windows 7, las "junctiones" han pasado a ser integradas en el entorno operativo y han cambiado de nombre. Ahora la utilidad se llama "mklink", de "make link". Su funcionamiento es el siguiente:
MKLINK [[/D] | [/H] | [/J]] nombre destino
/D Crea un enlace simbólico a un directorio
/H Crea un enlace duro en lugar de simbólico
/J Crea una "Directory Junction".
nombre Nombre del enlace
destino Ruta del enlace a la que se refiere éste
MKLINK
Por defecto, si no se indica nada, el vínculo se establece entre archivos:
mklink bloc.exe notepad.exe
MKLINK /D
Si usamos /D estamos diciendo que el enlace simbólico se refiere a un directorio, no a un fichero:
mklink /D c:\MiDirectorio c:\Documents and Settings\Yo\Mis Documentos
Al pinchar en c:\MiDirectorio, el sistema operativo nos lleva automáticamente a c:\Documents and Settings\Yo\Mis Documentos
MKLINK /H
Al usar /H le indicamos que el enlace es duro, no simbólico. Creamos así otro nombre para el mismo archivo:
mklink /H bloc.exe notepad.exe
Lo que hacemos con ello es que "block.exe" apunte directamente a la zona del disco donde está almacenado el archivo "notepad.exe": es como si un mismo archivo tuviera dos nombres, de forma que al borrar "notepad.exe " sólo borramos la entrada en la tabla de archivos del disco, los datos siguen ahí, y pueden ser recuperados mediante "block.exe"
MKLINK /J
Finalmente, al usar /J indicamos que se trata de una unión de directorios o punto de unión de directorios. Este comando solamente es válido para directorios. En lugar de funcionar como un acceso directo, la unión trabaja como si fuera en sí misma un directorio:
mklink /J c:\UNO c:\DOS\TRES\CUATRO
Puedo ir al directorio UNO, y trabajar con sus archivos pero realmente estoy trabajando con los archivos de CUATRO
Nota: Para eliminar un enlace no hay que dar una orden específica, simplemente se borra igual que si borráramos una archivo o un directorio
Si queremos ver las junctions que tiene un directorio, no podremos hacerlo desde el explorador y tendremos que recurrir a la consola. Desde allí, con una simple orden "DIR", nos aparecerán las uniones que existan en ese archivo marcadas con la palabra <"JUNCTION">

¡ADVERTENCIA!:
Las junctions son muy útiles pero hay que llevar cuidado con ellas, sobre todo si se trabaja en sistemas Windows XP o Windows 2000 desde el Explorer. El administrador de archivos de estos dos sistemas operativos no distingue entre una carpeta real y un punto de unión del tipo junction, de forma que si borra la junction usando el explorador o la envía a la papelera de reciclaje, con ella se borra también la carpeta a la que señala y todos los archivos que contuviera, igual que si hubiera borrado directamente la carpeta señalada. Para borrar únicamente el punto de unión deberá usar el comando "del " desde la consola del símbolo de sistema.

Pulsar Informaticks 2011


(*) El sitio web "NT Internals" pertenecía a la empresa "Winternals Software LP", de Austin, Texas. Fue creado en 1996 por Mark Russinovich y Bryce Cogswell para alojar sus utilidades de sistema avanzadas, de uso totalmente gratuíto, junto con información técnica sobre Windows. Entre ellas estaba el comando "junction" y otras utilidades para la recuperación de datos en discos duros. En julio de 2006, Microsoft adquirió Winternals y lo convirtió en Sysinternals, manteniendo la gratuidad de las aplicaciones. Hoy podemos encontrarlas en http://technet.microsoft.com/es-es/sysinternals/default
Más sobre Winternals en la wikipedia: http://en.wikipedia.org/wiki/Winternals

02 marzo 2011

Perlas Musicales: La Calumnia


En el post anterior les comentaba cómo descubrí a Gioaccino Rossini gracias a una avispa. También les dije que tras oír con placentera devoción la obertura de la Gazza Ladra, corrí a hacerme con un CD de este compositor. Y como quería conocer más de sus obras, pues compré uno de esos recopilatorios, el primero que me vino a la mano. Resultó que era una compendio de las mejores interpretaciones de Rossini editado por EMI Classics (un verdadero golpe de suerte), en la que habían piezas cantadas por María Callas y otros que no conocía.

De los veintitrés cortes de los dos cd del álbum, había uno, el cuarto del primer disco que me llamaba mucho la atención, cantado por un bajo. Pertenecía al "Barbero de Sevilla" y tenía por título "La Calunnia", La Calumnia. La cantaba Samuel Ramey, y era espectacular. Con el tiempo he descubierto muchas cosas de ella y de la ópera. Vean si no:

"Le Barbier de Séville ou la Précaution inutile", es una comedia para teatro en cinco actos de Pierre-Augustin Caron de Beaumarchais (París, 24 de enero de 1732 - París, 18 de mayo de 1799), autor que se prodigó mucho en obras de corte español. Varios libretistas llevaron su obra a la ópera (al igual que hoy hacemos con las novelas, que las convertimos en películas de cine), pero la más famosa y la que ha perdurado ha sido la versión que musicó Rossini sobre un texto de Cesare Sterbini. No crean, en su época fue más famosa otra versión, firmada por Giovanni Paisiello, pero la que ha perdurado ha sido la de Rossini. Hay piezas famosísimas, como "Largo al factotum", o la delicada y tierna "Una voce poco fa", pero a mí me gustaba "La Calunnia"

El argumento de "La Calunnia" es el siguiente: Don Bartolo es tutor de Rosina, una joven casadera a la que Don Bartolo ha buscado marido, Pero Rosina es pretendida por el conde Alma Viva con quien ella se ve a escondidas. Rosina recibe clases de música de Don Basilio, un canónico de Sevilla intrigante, retorcido y metomentodo. Cuando Don Bartolo, a solas con Don Basilio, le cuenta lo molesta que es la presencia de Alma Viva, Don Basilio propone un método para deshacer ese amorío fácilmente: calumniar al conde Alma Viva. Don Basilio se encargará del asunto, y muestra a Don Bartolo cómo funciona este infame recurso: comienza como una suave e imperceptible brisa que va tomando brío y tonalidad poco a poco, hasta convertirse en un verdadero cañonazo que denigra al calumniado con tanta dureza que a éste no le queda más remedio que desear morir para verse librado de la calumnia.

En este aria, Rossini hace uso de uno de los recursos que más hábilmente domina: el crescendo. Don Basilio entona su aria casi susurrante al principio, y conforme va mostrando los efectos de la calumnia a Don Bartolo, va subiendo el volumen musical de la pieza hasta llegar a un final pleno y apoteósico. La pieza se ha convertido en todo un clásico que ejercitan los cantantes bajos y que demandan los espectadores.

Pues bien, yo creía que la versión de "La Calunnia" de mi CD de Rossini era muy buena. De hecho lo sigo pensando, sólo que me he topado hoy con otra que avanza un escalón más en la interpretación.

Vean primero la versión de Samuel Ramey aquí:

http://www.youtube.com/watch?v=efVWXvxkKB0

Y ahora, vean esta otra versión de Robert Lloyd:

http://www.youtube.com/watch?v=YUtoL-IDUlk

Recordemos que el Barbero de Sevilla es una comedia, y como tal, muchos de sus personajes aparecen ridiculizados. Lloyd tiene otro estilo de canto, y además interpreta al personaje de Don Basilio, consiguiendo darle un punto de miserable villano como creo que nadie lo había hecho hasta ahora. Lloyd aporta más teatralidad a la representación.

Para que no se queden así, les ofrezco otras versiones del aria de Don Basilio: Ruggero Raimondi, Nicolai Ghiaurov (no sé porqué los bajos rusos tienen un timbre especial, se nota que son rusos), Boris Christoff (éste de los bajos más bajos que he oído). Pueden buscar otras versiones si gustan, hay bastantes.

La conclusión final que saco es que, sin menospreciar a ninguno de los que la interpretan (todos tienen su propio estilo y su propio carácter), por encima de se encuentra el talento de Rossini a la hora de componer música. Bravo por todos ellos, y Bravo nuevamente por Rossini.

Les pongo el texto del aria por si lo quieren seguir mientras ven los vídeos

Saludos, Pulsar Informaticks.

ARIA "LA CALUNNIA"

La calunnia è un venticello,
La calumnia es un vientecillo,
un'auretta assai gentile
una brisita muy gentil,
che insensibile, sottile,
que imperceptible, sutil,
leggermente, dolcemente
ligeramente, suavemente,
incomincia, incomizia a susurrar
comienza, comienza a susurrar.

Piano piano, terra terra,
Suave, suave, a ras de tierra
sottovoce, sibilando,
un murmullo, sibilante
va scorrendo, va scorrendo
va corriendo, va corriendo
va ronzando, va ronzando;
va zumbando, va zumbando
nell'orecchie della gente
en las orejas de la gente
s'introduce,
se introduce
s'introduce destramente,
se introduce hábilmente
e le teste ed i cervelli,
y las cabezas y los cerebros
e le teste ed i cervelli fa stordire,
y las cabezas y los cerebros hace aturdir
fa stordire e fa gonfiar.
Hace aturdir y hace hinchar

Dalla bocca fuori uscendo
Una vez fuera de la boca
lo schiamazzo va crescendo
el alboroto va creciendo
prende forza a poco a poco,
toma fuerza poco a poco
vola già di loco in loco;
vuela ya de un lugar a otro
sembra il tuono, la tempesta
parece un trueno, una tempestad
che nel sen della foresta
que en el medio del bosque
va fischiando,
va silbando
brontolando, e ti fa d'orror gelar.
Atronando y de horror te llega a helar
Alla fin trabocca e scoppia,
Al final se desborda y estalla
si propaga, si raddoppia
se propaga se redobla
e produce un'esplosione
y produce una explosión

come un colpo di cannone,
como un disparo de cañon
come un colpo di cannone
como un disparo de cañon.
Un tremuoto, un temporale,
Un terremoto, un temporal
Un tumulto generale
Un tumulto general
che fa l'aria rimbombar!
Que el aire hace agitar
Un tremuoto, un temporale,
Un terremoto, un temporal
Un tumulto generale
Un tumulto general
che fa l'aria rimbombar!
Que el aire hace agitar

E il meschino calunniato,
Y el infeliz calumniado
avvilito, calpestato,
envilecido, aplastado
sotto il pubblico flagello
bajo el azote del público
per gran sorte ha crepar.
Afortunado será si muere
E il meschino calunniato,
Y el infeliz calumniado
avvilito, calpestato,
envilecido, aplastado
sotto il pubblico flagello
bajo el azote del público
per gran sorte ha crepar.
Afortunado será si muere

sotto il pubblico flagello
bajo el azote del público
per gran sorte ha crepar.
Afortunado será si muere
sotto il pubblico flagello
bajo el azote del público
per gran sorte ha crepar.
Afortunado será si muere

Si ha crepar, si ha crepar, si ha crepar
Si, de morir, si de morir, si de morir