TooManySecrets HeadQuarters

Nov 30

Solución: Cannot load from mysql.proc. The table is probably corrupted en MySQL.

Esta mañana he tenido a un cliente que me decía que al usar el Navicat sobre una base de datos MySQL (la cual se había recuperado desde un lvmsnapshot), podía obtener, aleatoriamente, el siguiente mensaje:

Cannot load from mysql.proc. The table is probably corrupted

Después de echar un vistazo directamente, con el cliente mysql en la misma máquina, he comprobado que no había ningún registro, y que no tenía absolutamente ningún problema en acceder a la tabla en cuestión.

Como sea y después de hacer una búsqueda por Inet he aplicado la solución:

mysql_upgrade

y ha quedado todo listo y solucionado :)

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Nov 08

openSUSE: trucos instalación paquetes módulos Perl (rpm).

Como muchos sabreis, existe el repositorio devel:languages:perl, donde podreis encontrar unos cuantos módulos del lenguaje Perl (unos 2000 aproximadamente ahora mismo).

Cuando se construyen los paquetes rpm para cada uno de ellos, se emplea un script post-build que analiza los ficheros que son parte del paquete en cuestión para localizar los módulos Perl. Para cada uno de ellos se añade un Provides con el nombre en forma Perl para el módulo, con una anotación específica del estilo: perl(Name::of::the::Perl::Package).

De esta forma, si necesitas DBIx::DR tan solo tienes que ejecutar lo siguiente:

zypper install ‘perl(Net::SMTP::SSL)’

Al tanto con las comillas simples; son necesarias para que bash no las interprete y dé un bonito syntax error.

Este caso se podría considerar sencillo, en el sentido de que dicho módulo lo provee el paquete perl-Net-SMTP-SSL, por lo que podría haber sido capaz de obtener el nombre del paquete RPM a partir del nombre del módulo que falta Perl. Pero ese módulo Perl podría muy bien ser parte de un paquete con un nombre diferente: por ejemplo, la clase del módulo de Class:: MOP no está en el paquete RPM perl-Class-MOP, pero si en el paquete RPM perl-Moose (porque es parte del módulo Moose CPAN).

Así, si lo que se quiere es localizar el paquete que contiene el módulo que buscamos, usaremos lo siguiente (continuando el ejemplo de la clase Class::MOP):

zypper what-provides ‘perl(Class::MOP)’

(logicamente esto solo funciona con repositorios que tengas añadidos como activos en tu sistema).

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Nov 04

Editar directamente desde el less.

Como indicaba el otro día vía twitter, lo que tiene un sistema *NIX (o *NIX like como Linux), es que nunca se deja de aprender (y especialmente también en las cosas pequeñitas).

Ayer mi compañero de trabajo me indicó que si cuando estás viendo un fichero con el paginador less, encuentras lo que buscas y resulta que necesitas editar el fichero, en lugar de salir del paginador y abrir el fichero con tu editor favorito, simplemente pulsa la tecla v y se abrirá tu editor favorito con el fichero que estás viendo (en realidad se abrirá el fichero que tengas definido en las variables globales VISUAL y EDITOR).

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Oct 24

Y siguen los comienzos…

Hace apenas 3 meses hablaba sobre un gran cambio en mi vida; ya no trabajaba en Vlex y pasaba a formar parte del equipo de Letsbonus. Han sido 3 meses muy intensos, cortos pero intensos, donde he conocido a grandes profesionales y personas, y donde realmente me lo he pasado genial. Gracias Letsbonus, mil gracias.

Hoy comienzo nueva etapa (y espero que ya definitiva, o tanto como los inciertos días de hoy lo permitan) en otra empresa. Otra gran empresa que también tiene una gran plantilla, y donde para mí era un poco “leyenda” el tema de entrar a trabajar; se trata de la empresa Grupo Intercom, una empresa que lleva ya varios años situada entre las 10 mejores empresas para trabajar en España.

Aquí espero poder aplicar mis años de experiencia y, sobretodo, aprender más… ¡hasta el infinito y más allá! xDDD

¡Hasta luego Letsbonus! ¡¡Buenos días Grupo Intercom!! ¡¡Here we go!!!

Have a nice day ;-)

TooMaySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Jul 20

Finales y comienzos de etapas.

Justamente ahora está comenzando para mí una nueva etapa (éste es un post automático que dejé listo el pasado finde). Durante 6 años he estado trabajando como responsable de sistemas en Vlex Networks S.L. (http://vlex.com), pero a partir de hoy comienzo como SysAdmin de la plataforma de negocio (vamos, lo mismo pero distintos nombres) en la empresa LetsBonus (http://letsbonus.com).

Una vieja etapa se cierra, pero otra nueva se abre. Tengo muchas ganas e ilusiones puestas en LetsBonus, y por lo que he visto hasta ahora estoy bien seguro que se cumplirán, si no todas, casi casi.

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Jul 13

FreeBSD: Configura mergemaster para evitar dolores de cabeza.

Todos sabemos qué hace el comando mergemaster (y para quien no lo sepa, http://www.freebsd.org/cgi/man.cgi?query=mergemaster&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&format=html). Por eso es de todos sabido que cuando se hace una actualización del sistema y ejecutas el mergemaster, sea muy fácil distraerse y pasar algo por alto. Con un poco de suerte no habrá problema alguno con ese error, pero tienes muchos números de que puedas perder algún fichero importante (passwd, cshrc, etc).

Por esta razón, puede llegar a ser muy útil editar el fichero /etc/mergemaster.rc y añadir lo siguiente:

#Añadir aquí los ficheros que queremos sean ignorados en el proceso:

IGNORE_FILES=’/etc/motd’

#Instalar automaticamente ficheros que NO existan en el sistema:

AUTO_INSTALL=yes

#Actualiza ficheros que no hayan sido modificados:

AUTO_UPGRADE=yes

#Conserva los ficheros que has reemplazado:

PRESERVE_FILES=yes

PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserverd-files-`date +%y%m%d-%H%M%S`

#Ficheros donde queremos evitar la comparación del diff del mergemaster (separación por un espacio):

IGNORE_FILES=’/etc/motd /etc/rc.conf’

Para más información consultad la página man mencionada, en la sección FILES.

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

May 16

Dejadez del blog.

Holas.

Hace ya bastante tiempo que no pongo nada aquí, en mi blog. Y realmente no es por que no quiera, si no que simplemente no tengo tiempo. Como algunos ya sabeis el 20 de octubre del año pasado fuí padre por primera vez, y debo decir que, aun cayendo en el topicazo, es una auténtica maravilla. Pero fuera de esto el tiempo dedicado al trabajo y a mi hijo me absorven totalmente. Es cierto que a veces tengo “huecos”. Pero la verdad es que o por sueño o por simple cansancio, no me veo con ánimo de sentarme al ordenador y currarme algún articulillo.

De todas formas, mi intención es de que todo esto cambie. Así que espero poder ir dejando por aquí alguna que otra noticia/howto/algo_interesante en un futuro inmediato.

Have a nice day ;-)

TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Feb 23

gnome-terminal con tamaño a nuestro gusto.

Hoy he descubierto lo que quizás para unos sea una evidencia a gritos; cómo configurar el sistema (en una Debian y/o Ubuntu, aunque debería ser igual para cualquier distro GNU/Linux y seguramente sistema BSD) para que cada vez que ejecutemos el comando “gnome-terminal”, se nos abra la terminal con el tamaño que nosotros deseamos. Y no estoy hablando del típico método de iniciar el gnome-terminal añadiéndole el parámetro “—geometry 136x40” (por ejemplo), sino de hacer el cambio a nivel de sistema para que siempre inicie con el tamaño deseado.

Para hacer ésto, no hay más que editar el fichero /usr/share/vte/termcat/xterm (como digo, en un sistema Debian y/o Ubuntu y como usuario root), y en la línea donde pone:

                         :co#80:it#8:li#24:\

Modificar los números 80 y 24 por los valores que queramos nosotros, por ejemplo :co#179:it#8:li#73:\

La mencionada línea (en mis sistemas) aparece en la línea 10.

Una tontería, quizás, pero que a mí me encanta ;-)

Have a nice day ;-)

TooManySecrets

 

Posted via email from TooManySecrets HeadQuarters | Comment »

Jan 14

Evitar problemas replicación MySQL con nuevo slave.

Problema:
Se usa un backup o snapshot para montar un nuevo servidor de tipo slave. Resulta que al hacer el backup/snapshot había cierto retraso, por lo que usar la posición del máster que hay anotada en el fichero master.info, puede dar lugar (seguro) a discrepancias en los datos.
 
Explicación:
Partimos de la base de la siguiente vista de situación del status del slave:mysql> show slave status\G
*************************** 1. row**********************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: msandbox
Master_Port: 26768
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 4723
Relay_Log_File: mysql_sandbox26769-relay-bin.000002
Relay_Log_Pos: 874
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 729
Relay_Log_Space: 1042
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)

mysql>
En las replicaciones hay dos puntos que hay que tener en consideración:
la Posición Ejecución Máster y
la Posición Lectura Máster
La Posición Ejecución Máster, que se aprecia en la variable Relay_Master_Log_File y Exec_Master_Log_Pos, es la posición en el binlog del máster del actual estamento que está siendo ejecutado por el slave extraido desde relay log.
La Posición Lectura Máster, indicada por el Master_Log_File y Exec_Master_log_Pos, es la posición del binlog del máster desde la que el slave está leyendo para ir escribiendo en el relay log.
El problema radica en que si había algún tipo de retraso (cosa harto fácil en el mundo MySQL), la Posición Lectura Máster será diferente y por defecto, más reciente que la Posición Ejecución Máster.
A nivel de filesystem, la Posición Lectura Máster se guarda en el fichero master.info, y la Posición Ejecución Máster se guarda en el fichero relay-log.info.

Como indicaba, si el slave tenía cierto retraso cuando se hizo el snapshot, o se paró para el backup, las dos posiciones indicadas serán diferentes. Siguiendo el siguiente ejemplo, tenemos que el fichero master.info contiene:—(Fri:20110114:1027)-(0:$)— cat master.info
15
mysql-bin.000001
4723
127.0.0.1
msandbox
msandbox
26768
60
0

0
—(manuel@klingon)-(/home/manuel/sandboxes/rsandbox_5_1_53/node1/data)—Y el fichero relay-log muestra lo siguiente:

—(Fri:20110114:1027)-(0:$)— cat relay-log.info
./mysql_sandbox26769-relay-bin.000002
874
mysql-bin.000001
729
—(manuel@klingon)-(/home/manuel/sandboxes/rsandbox_5_1_53/node1/data)—Cuando la replicación se inicia en el nuevo servidor, partiendo de la posición del fichero master.info, los estamentos en el binary-log entre la Posición Ejecución Máster y la Posición Lectura Máster son evitados y causa corrupción de datos.

Solución:
La solución consiste en iniciar el nuevo slave usando la posición marcada en el fichero de relay-log (en este caso, resaltada en azul claro).
Have a nice day ;-)
TooManySecrets

Posted via email from TooManySecrets HeadQuarters | Comment »

Oct 01

¿Problemas con las matemáticas?

Esto me lo han pasado por mail, pero no puedo evitar la tentación de ponerlo aquí, ante la tremenda y demoledora verdad que representa (espero que el folloncete de HTML que lleva no impida que se vea bien).


¿Problemas con las matemáticas?
 

Por eso estamos como estamos, puras neuronas perezosas…


La semana pasada compré un producto que costó  158 €. Le di a la cajera 200 € y busqué en el bolsillo 8 € para evitar recibir más monedas.La cajera tomó el dinero y se quedó mirando la máquina registradora, aparentemente sin saber qué hacer. 
Intenté explicarle que ella tenía que darme un billete de 50 € de vuelta, pero ella no se convenció y llamó al gerente para que la ayudara. Tenía lágrimas en sus ojos mientras que el gerente intentaba explicarle lo que ella, aparentemente, continuaba sin entender. 
¿Por qué os estoy contando esto? 
Porque me di cuenta de la evolución de la enseñanza en las matemáticas desde 1950, que fue así: 
 1)      Enseñanza de matemáticas en 1950: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es igual a 4/5 del precio de la venta. ¿Cuál es la ganancia? 
2)      Enseñanza de matemáticas en 1970: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es igual al 80% del precio de la venta. ¿Cuál es la ganancia? 
3)      Enseñanza de matemáticas en 1980: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es de 80 €.  ¿Cuál es la ganancia?
4)      Enseñanza de matemáticas modernas en 1985: 
        Un leñador cambia un carro “P” de leña por un conjunto “M” de monedas.
El cardinal del conjunto “M” es igual a 100 €. y cada elemento vale 1 €. 

Dibuja 100 puntos gordos que representen los elementos del conjunto M.  El conjunto “F” de los gastos de producción comprende 80 puntos gordos del conjunto M. 
Representa el conjunto F como subconjunto del conjunto M, estudia cuál será su unión y su intersección, y da respuesta a la cuestión siguiente:
¿Cuál es el cardinal del conjunto “B” de los beneficios?  
Dibuje B con color 
rojo. 
5)      Enseñanza L O G S E : 
        Un leñador vende un carro de leña por un importe de 100 €. Los gastos de producción se elevan a 80 €, y el beneficio es de 20 €.
Actividad: subraya la palabra “leña” y discute sobre ella con tu compañero.
 
6)      Enseñanza de matemáticas en 1990: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es de 80 €. Escoja la respuesta correcta, que indica la ganancia: 
            (20 €)           (40 €)                (60 €)                  (80 €)               (100 €). 
7)      Enseñanza de matemáticas en 2000: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es de 80 €. La ganancia es de 20€ ¿Es correcto? 
            (Si)                 (No). 
8)      Enseñanza de matemáticas en 2008: 
        Un cortador de leña vende un carro de leña por 100 €. El costo de producción de ese carro de leña es de 80 €. Si Ud. sabe leer coloque una X en los 20 € que representan la ganancia. 
            (20 €)           (40 €)                 (60 €)                  (80 €)                (100 €). 
9)      Enseñanza de matemática curso 2009/10: 
No se preocupen si no saben responder el ejercicio anterior, llevarán a los profesores a la Oficina de Supervisión del Ministerio de Educación y les exigirán, a los profesores, repetir la prueba en vista de que la pregunta es de alta dificultad. 
Además, también pueden valerse, como elemento de apoyo, de chuletas, libro o de cualquier método o sistema para copiar en el examen sin que por ello sea expulsado de dicho examen ni suspendido, ya que, según la Universidad de Sevilla,  están en su derecho.


LA PRÓXIMA REFORMA:
*** El enunciado será algo así: ***


«Evaristo, labriego y leñador, burgués, latifundista espanyol facista spekulador i intermediario es un kapitalista insolidario y centralista q sa enriquezio con 100 pabos al bender espekulando un mogollón d leña».
Bibe al hoeste de Madrid esplotando ha los magrevies. Lleba a sus ijos a una esjuela de pago. 

Analiza el testo, vusca las faltas desintasis, dortografia, de puntuazion, y si no las bes no t traumatices q no psa nda. 
Ejcribe tono, politono o sonitono con la frase “QUE LISTO EL EBARISTO” y envia unos sms a tus colejas komentando los avusos antidemocráticos d Ebaristo i conbocando una manifa expontanea d protesta. Si bas a la manifa sortearan un buga guapeado.

Posted via email from TooManySecrets HeadQuarters | Comment »