martes, junio 26, 2012

La isla del día de antes de Umberto Eco II

Uno de los temas de la novela es el amor con todas sus variantes. Pero cuidado, no tiene nada que ver con una novela rosa.

¿Pediriais a otra persona que escriba una carta por vosotr@s?

--...Un gentilhombre se complace a menudo en redactar cartas para una dama que no ha visto nunca, y yo no soy menos. No amando sé hablar de amor mejor que vos, a quien el amor os hace mudo.
--Mas yo creo que cada persona ama de forma diferente... Sería un artificio.
--Si le revelarais vuestro amor con el acento de la sinceridad, resultaríais torpe.
--Mas le diría la verdad...
--La verdad es una doncella tan vergonzosa cuanto hermosa, y por esto anda siempre tapada.
(pagína 115 de la edición del Círculo de Lectores).

Además de amor, hay mucha técnica (del siglo XVII por supuesto). El tema del cálculo de la Latitud en un navio es importantísimo en la novela.

--La aguja de la brújula debería apuntar siempre hacia el norte y, por tanto, en dirección de la Estrella Polar. Y sin embargo, excepto en el meridiano de la Isla del Hierro (el de las Islas Canarias), en todos los demás lugares se separa del recto polo de la Tramontana, doblándose ahora hacia la parte de levante, ahora hacia la de poniente, según los climas y las latitudes. Si, por ejemplo, desde las Canarias uno se adentra hacia Gibraltar, cualquier marinero sabe que la aguja se inclina más de seis grados de rumbo hacia Maestral, y desde Malta a Trípoli de Barbaria hay una variación de dos tercios de rumbo a la izquierda; y Vuestras Mercedes saben perfectamente que el rumbo es una cuarta de viento. Ahora bien, estas desviaciones, hase dicho, siguen reglas fijas según las diferentes longitudes. Así pues, con una buena tabla de las desviaciones podrían saber dónde se encuentran. Pero...
--¿Aún un pero?
--Desgraciadamente sí. No existen buenas tablas de las declinaciones de la aguna magnética; quien las ha ensayado ha fracasado, y hay buenas razones para suponer que la aguja no varía de forma uniforme según la longitud. Y además esas variaciones son muy lentas, y por mar es difícil seguirlas, cuando luego, el navía no cabecee de suerte tal que altere el equilibrio de aguja. Quien se fía de la aguja es un loco.
(página 202 de la edición del Círculo de Lectores).

Saludos,
A ver si alguien se anima...

domingo, junio 24, 2012

La isla del día de antes de Umberto Eco

Tengo un amigo que hoy ha terminado la quebrantahuesos (una prueba cicloturista). Se llama Petu. Ha tardado 8 horas 44 minutos. Me imagino que ha sufrido de lo lindo.

Pero te aseguro que no tanto como yo leyendo "La isla del día de antes". Meses he pasado leyendo las aventuras del personaje principal entre un cúmulo de descripciones de supersticiones, ambientaciones, tramas históricas, batallas, arte, libros clásicos, libros oscuros, tratados del mar, tratados de la guerra, tratados del amor, enseñanza de la espada, del honor, etc. etc., que no hacían sino impedir leer el libro como si fuera una novela "normal". Esta es la entrada que puse sobre el libro el 12 de Agosto de 2011.

Mérito tiene el escribirla porque si yo he invertido meses (horas y horas de lectura y relectura), probablemente el autor ha pasado años documentándose y rebuscando material de hace siglos que permanece en olvidadas baldas de bibliotecas de acceso exclusivo para historiadores.

Que decir de la labor de traducción, donde la traductora Helena Lozano ha tenido que ingeniárselas como ha podido para traducir lo más fielmente posible a lo que el autor pretendía en cada momento (sonoridad, ritmo, sentido, ideas, asociaciones, sentimiento...) del italiano de la época a un castellano entendible que suena a antiguo.

Por poner algo interesante que he leído hoy mismo: "En la vida las cosas suceden porque suceden, y sólo en el País de las Novelas es donde parecen suceden por alguna finalidad o providencia". (página 467 en la edición del Círculo de lectores).

Saludos.

miércoles, junio 20, 2012

Resolución de problemas con cluster ServiceGuard de HP

Cuando tenemos un cluster como el cluster Service Guard de HP se supone que es para garantizar la alta disponibilidad. Lo más seguro es que tengamos a mano una lista de comandos para gestionar el cluster y los paquetes. Algo sencillo como esto que publiqué hace años.

PROBLEMA 1:

Un problema común es este: Vamos a levantar el paquete con el comando #cmrunpkg paqueteOracle, pero hay un error que impide que se levante el paquete. El problema es el cluster activa los VG-s, monta los filesystems e intenta levantar Oracle. Como falla el intento, desmonta filesystems y desactiva VG-s.

O sea, que no podemos intentar levantar Oracle sin el cluster porque ni siquiera tenemos los filesystems disponibles. Tampoco podemos ver los mensajes del alert por el mismo motivo.

Solución:
  1. Editar el fichero de configuración del cluster que se encuentra en /etc/cmcluster/paqueteOracle y tienen un nombre como paqueteOracle.config
  2. Al final del fichero en una sección llamada external_script vendrá el path a un fichero .sh que es el que hace el intento de levantar Oracle. Comentamos esa línea para que no se ejecute.
  3. Aplicamos la nueva configuración del cluster. Para ello primero se hace un #cmcheckconf -v -P /etc/cmcluster/paqueteOracle/paqueteOracle.config
  4. Y luego se aplica la configuración: cmapplyconf -P /etc/cmcluster/paqueteOracle/paqueteOracle.config
 De esta forma el cluster sólo activará los VG-s y montará los filesystems. Después nosotros podremos intentar arreglar Oracle por nuestra cuenta.

PROBLEMA 2:

Normalmente el cluster se deja configurado de forma que monitoriza el paquete. Para ello se utilizan toolkits específicas (toolkit oracle por ejemplo). Si ve que el paquete ha dejado de funcionar (porque hemos hecho un shutdown de la base de datos por ejemplo), el cluster levantará el paquete en el otro nodo.

Esto es un problema si lo que queremos es parar para cambiar un parámetro por ejemplo. Para evitarlo tenemos que indicar al cluster que estamos en MODO MANTENIMIENTO.

  1. Vamos al fichero de configuración del toolkit /opt/cmcluster/toolkit/oracle/haoracle.conf y buscamos la entrada MAINTENANCE_FLAG. Tiene que estar puesta como =yes para que funcione el punto segundo.
  2. Vamos al directorio de configuración del paquete (/etc/cmcluster/paqueteOracle), y creamos el fichero oracle.debug de esta forma: touch oracle.debug
  3. Ya podemos parar y arrancar manualmente Oracle porque el cluster no va a actuar.
---

Documentación de interés: Using the Oracle Toolkit in a HP Serviceguard Cluster (PDF de 49 hojas).
Saludos.

martes, junio 19, 2012

Los peligros de la nube...

El otro día leía esta noticia en el periódico EXPANSIÓN. Es un claro aviso para navegantes. De nada servirá cubrirse bien contractualmente si el sitio se interviene y cierran el chiringuito.


Aquí la noticia completa.

Saludos.

miércoles, junio 13, 2012

Configuración del VI. Fichero .exrc

Podemos personalizar el comportamiento de nuestro editor VI por medio del fichero oculto .exrc
Para ello tenemos que crear el fichero .exrc en el home del usuario. Los comandos que pongamos ahí se ejecutarán cuando pasemos al modo comando ESC :

Por ejemplo: Normalmente cuando buscas un texto no quieres que el VI tenga en cuenta las teclas mayúsculas o minúsculas. El VI en principio es CASE SENSITIVE y puede ser engorroso. Con el comando set ignorecase el VI se vuelve "insensible" a mayúsculas.

Por lo tanto es suficiente con crear un fichero .exrc en el home con las siguiente línea para modificar ese comportamiento:
set ignorecase

En Internet podéis encontrar miles de configuraciones personalizadas utilizando el .exrc. Es bastante razonable como proponen en este sitio, asignar a las teclas F1, F2, F3, etc. las funciones de "ayuda", "impresión de número de línea", "quitar el número de línea", etc.

 

Limites en los diferentes Office

Hola,
Es bastante común que nos pregunten por limitaciones en Office. Normalmente se refieren al número de columnas que es bastante escaso hasta office2003: 256 columnas. A partir de Office2007 el número máximo de columnas pasa a ser 16.384.

En estos enlaces puedes comprobar las especificaciones y límites de Office2003, de Office 2007 y Office2010.

Saludos.

lunes, junio 11, 2012

Opciones de montaje para ORACLE

Hola,
Un tema que afecta al rendimiento de una base de datos son las opciones de montaje de los diferentes filesystems.

En ORACLE tenemos estas opciones generales para diferentes sistemas operativos. Concretamente para HP-UX hay que poner estas 4 opciones: “delaylog”, “nodatainlog”, “mincache=direct”, “convosync=direct”.


HP ha elaborado un documento (HP-UX JFS mount options for ORACLE) en el que llega a afinar un poco más en cuanto a las opciones. Proponen diferentes opciones dependiendo del uso del filesystem.

Saludos.

jueves, junio 07, 2012

Hacer mirror de un volumen (LV) en HP-UX

Por la mañana he explicado como deshacer el mirror. Ahora toca hacerlo.
Para ver de que cabina de discos tira cada volumen utilizamos el IOSCAN con las opciones que hemos visto antes:

#ioscan -fNnC disk

Tomamos nota del volumen que vamos a agregar para que se forme el mirror. Ahora tenemos que ver el nombre exacto del LV en el que vamos a hacer el mirror. Aprovechamos para ver en el apartado Physical disks que disco físico soporta el VG.

#vgdisplay -v vgprueba

Si tenemos todo claro ya podemos indicar que se haga el mirror. Como la cosa va a tardar unas horas vamos a ponerle el & para que se ejecute en segundo plano.

#lvextend -m 1 /dev/vgprueba/lvprueba /dev/disk/disk230 &

Si queremos ver el progreso del mirror podemos hacer lo siguiente:

Con este comando vamos viendo cuantos extensiones físicas están en estado CURRENT y cuantas en estado STALE:

#lvdisplay -v /dev/vgprueba/lvprueba|more

Como sale un listado intratable nos centramos en los que están en estado STALE.

#lvdisplay -v /dev/vgprueba/lvprueba|grep -i stale

Para ver como va mejor si contamos el número de líneas (número de extensiones en estado STALE). Lógicamente a medida que ejecutemos el siguiente comando el número de líneas va reduciéndose:

#lvdisplay -v /dev/vgprueba/lvprueba|grep -i stale|wc -l

Saludos.

Deshacer mirror en HP-UX

Como siempre, esto es algo delicado. En mi caso cada uno de los VG-s tiene dos discos físicos. Uno lo ofrece una cabina 3PAR y otro una cabina EVA8100. Antes de romper el mirror hay que decidir con que disco te quedas. En mi caso con la 3PAR.


# ioscan -fNnC disk

Class     I  H/W Path  Driver S/W State   H/W Type     Description
===================================================================
disk      4  64000/0xfa00/0x1   esdisk   CLAIMED     DEVICE       HP      P2000 G3 FC
                      /dev/disk/disk4      /dev/rdisk/disk4  
                      /dev/disk/disk4_p1   /dev/rdisk/disk4_p1
                      /dev/disk/disk4_p2   /dev/rdisk/disk4_p2
                      /dev/disk/disk4_p3   /dev/rdisk/disk4_p3
disk      5  64000/0xfa00/0x2   esdisk   CLAIMED     DEVICE       HP      P2000 G3 FC
                      /dev/disk/disk5   /dev/rdisk/disk5
disk     79  64000/0xfa00/0x41  esdisk   CLAIMED     DEVICE       HP      P2000 G3 FC
                      /dev/disk/disk79   /dev/rdisk/disk79
disk     89  64000/0xfa00/0x43  esdisk   CLAIMED     DEVICE       DataCoreVirtual Disk
                      /dev/disk/disk89   /dev/rdisk/disk89
disk     90  64000/0xfa00/0x44  esdisk   CLAIMED     DEVICE       DataCoreVirtual Disk
                      /dev/disk/disk90   /dev/rdisk/disk90
disk     91  64000/0xfa00/0x45  esdisk   CLAIMED     DEVICE       DataCoreVirtual Disk
                      /dev/disk/disk91   /dev/rdisk/disk91
disk     92  64000/0xfa00/0x46  esdisk   CLAIMED     DEVICE       DataCoreVirtual Disk
                      /dev/disk/disk92   /dev/rdisk/disk92
disk    103  64000/0xfa00/0x49  esdisk   NO_HW       DEVICE       3PARdataVV
                      /dev/disk/disk103   /dev/rdisk/disk103
disk    104  64000/0xfa00/0x4a  esdisk   CLAIMED     DEVICE       HP      HSV210
                      /dev/disk/disk104      /dev/rdisk/disk104  
                      /dev/disk/disk104_p1   /dev/rdisk/disk104_p1
                      /dev/disk/disk104_p2   /dev/rdisk/disk104_p2
                      /dev/disk/disk104_p3   /dev/rdisk/disk104_p3
disk    170  64000/0xfa00/0x67  esdisk   NO_HW       DEVICE       3PARdataVV
                      /dev/disk/disk170   /dev/rdisk/disk170
disk    183  64000/0xfa00/0x68  esdisk   NO_HW       DEVICE       3PARdataVV
                      /dev/disk/disk183   /dev/rdisk/disk183
disk    196  64000/0xfa00/0x69  esdisk   NO_HW       DEVICE       3PARdataVV
                      /dev/disk/disk196   /dev/rdisk/disk196
disk    209  64000/0xfa00/0x6a  esdisk   NO_HW       DEVICE       3PARdataVV
                      /dev/disk/disk209   /dev/rdisk/disk209
disk    210  64000/0xfa00/0x6b  esdisk   CLAIMED     DEVICE       3PARdataVV
                      /dev/disk/disk210   /dev/rdisk/disk210
disk    211  64000/0xfa00/0x6c  esdisk   CLAIMED     DEVICE       3PARdataVV
                      /dev/disk/disk211   /dev/rdisk/disk211
disk    212  64000/0xfa00/0x6d  esdisk   CLAIMED     DEVICE       3PARdataVV
                      /dev/disk/disk212   /dev/rdisk/disk212
disk    213  64000/0xfa00/0x6e  esdisk   CLAIMED     DEVICE       3PARdataVV
                      /dev/disk/disk213   /dev/rdisk/disk213
disk    234  64000/0xfa00/0x6f  esdisk   CLAIMED     DEVICE       HP      HSV210
                      /dev/disk/disk234   /dev/rdisk/disk234
disk    247  64000/0xfa00/0x70  esdisk   CLAIMED     DEVICE       HP      HSV210
                      /dev/disk/disk247   /dev/rdisk/disk247
disk    260  64000/0xfa00/0x71  esdisk   CLAIMED     DEVICE       HP      HSV210
                      /dev/disk/disk260   /dev/rdisk/disk260
disk    277  64000/0xfa00/0x72  esdisk   CLAIMED     DEVICE       HP      HSV210
                      /dev/disk/disk277   /dev/rdisk/disk277

En mi caso los discos 3PAR aparecen como 3PARdataVV, los de la EVA8100 como HSV210, los discos DATACORE son los DataCoreVirtualDisk.



Ahora vamos a listar la información de cada VG (Volume Groups) del sistema. Lo que nos interesa son los LV-s (Logical Volumes) y Physical volumes que tienen cada uno.

vgdisplay -v vgejemplo

Con el ioscan sabemos cada volumen a que almacenamiento va. Así que anotamos el disco que hay que quitar y hacemos el LVREDUCE:

lvreduce -m 0 /dev/vgprueba/lvprueba /dev/disk/disk247

Para comprobar que el Logical Volume (LV) está utilizando el disco correcto hacemos:

lvdisplay -v /dev/vgprueba/lvprueba|more

Saludos.