mitago.net

Página web de Celso González

Feria del libro frustrante

Cada vez que voy a un sitio de estos me traería una docena de libros más para leer y lo peor es que todavía tengo cuatro pendientes en la mesilla de noche. Como nota positiva me ha reconocido la espiral de debian, que llevaba medio tapada, uno de los responsables del puesto de La hormiga atómica e incluso nos ha comentado acerca de algunos de los libros que publica la editorial Traficantes de sueños con licencia copyleft.

vie 30 mayo 2008 23:490 comentarios

slow queries con mysql

A veces una forma de mejorar el rendimiento de una base de datos, cuando el número de posibles consultas es muy vasto o cuando no hemos participado en el desarrollo de las mismas, es observar la base de datos en funcionamiento. mysql ofrece una serie de herramientas para detectar estos problemas como pueden ser las famosas slow-querys así que vamos a aprovechar esta funcionalidad. En principio es un truco para debian pero supongo que se puede modificar para otros

Lo primero que vamos a cambiar es el fichero de configuración de mysql el my.cnf, antes de nada quiero avisar que activar estas opciones supone una perdida de rendimiento apreciable así que tú mismo con tu mecanismo, para un sitio bien dimensionado no representa mayor problema.

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

Con esto estamos activando las slow_queries con un tiempo de ejecución más bajo del normal, 2 segundos en vez de los 15, además estamos guardando un regist ro de las consultas que no están empleando índices, uno de los factores que más ayuda a mejorar los tiempos de respuesta. A partir de ahora tenemos un regi stro completo de dichas consultas, de vez en cuando me pongo un tail -f para ir viendo si hay algo, pero una solución más eficiente es usar la herramienta mysqldumpslow

mysqldumpslow nos interpreta toda esta información y nos la presenta ordenada por los criterios que queramos, tiempo de ejecución, número de columnas, núme ro de consultas... pero la característica fundamental de esta herramienta es que nos agrupa las sentencias omitiendo de forma completa los argumentos de bu squeda. Un ejemplo, tomemos las siguientes dos consultas de un slow log

# Query_time: 3.00s  Lock_time: 0  Rows_sent: 0  Rows_examined: 1197
SELECT * FROM foobar WHERE id="foo";
# Query_time: 3.50s  Lock_time: 0  Rows_sent: 0  Rows_examined: 1197
SELECT * FROM foobar WHERE id="bar";

el programa va a considerar que estas dos consultas son la misma y nos presentará la información compactada, mostrando individuales y agrupados para la con sulta y presentando el argumento variable como 'S', es decir, un string.

Count: 2  Time=3.50s (6.50s)  Lock=0.00s (0s)  Rows=1197 (2396)
SELECT * FROM foobar WHERE id='S';

Pues con esto casi lo tenemos todo, ahora una pequeña guinda. Vamos a modificar el logrotate para que cada día me envie al correo las 10 consultas más tard onas, leyendo los datos de los logs antes de rotarlos. Para esto tenemos que ir al fichero /etc/logrotate.d/mysql-server y vamos a modificarlo añadiendo un a serie de tareas en el prerotate.

prerotate
  mysqldumpslow -t 10 /var/log/mysql/mysql-slow.log | mail -s "mysql slow logs" mi_email@example.com otro_admin@example.com
endscript

Muy sencillo, antes de rotar, hazme un top 10 (-t 10) de las consultas más lentas y me lo envias con subject mysql slow logs a mi dirección de correo y a l a del otro admin por si quiere echar un vistazo.

vie 30 mayo 2008 00:000 comentarios

Estupidez humana

Un tipo, con un marcado acento argentino, llama a un centro de atención teléfonica de foobar y una vez que el operador le contesta el responde, con un claro tono despectivo, que si le pueden cambiar de operador que él no habla con sudacas

mié 28 mayo 2008 21:410 comentarios

Generación de contraseñas

Como administrador muchas veces se tienen que crear contraseñas para usuarios, una vez que te has cansado de poner foobar, usuario01 y qwerty decides que se tiene que usar algún tipo de contraseña algo más fiable, de esas chungas alternando mayúsculas y metiendo números, si además es ligeramente pronunciable tenemos premio. Siempre se puede aporrear el teclado y ver que sale pero si tenemos algo que nos ofrezca más garantias podemos utilizar un programa que nos haga el trabajo

Mi primera opción era apg, un programa la mar de majo y muy avanzado que nos permite generar una serie de contraseñas configurables de muchas opciones aunque las que vienen de fábrica ya nos van bien. Sencillamente instalar y ejecutar apg para obtener algo como esto

Frontaibs7 (Front-aibs-SEVEN)
JegAvUget9 (Jeg-Av-Ug-et-NINE)
glyibNedIs0 (glyib-Ned-Is-ZERO)
durWabquaj4 (dur-Wab-quaj-FOUR)
yinRybCef9 (yin-Ryb-Cef-NINE)
VeiFlitCag4 (Vei-Flit-Cag-FOUR)

Pero justamente hoy veo un script en bash que hace algo bastante parecido, me ha gustado el código y creo que podré adaptarlo para algo que tenía pendiente desde hace mucho.

Enlaces relacionados en mitago.net

Implementación de OTP
Contraseñas para sitios

mar 27 mayo 2008 23:471 comentarios

Sonda Phoenix a una hora de Marte

Sonda Phoenix. Image credit: NASA/JPL-Caltech/University of Arizona

Algo me dice que hoy me iré a dormir tarde, ya les vale no haber calculado la llegada un par de horitas antes. Detalles sobre el proyecto y lo que me ha enganchado, Nasa TV emitiendo el aterrizaje.

En linux lo estoy siguiendo con kaffeine usando este stream http://www.nasa.gov/55644main_NASATV_Windows.asx

lun 26 mayo 2008 00:530 comentarios

Compresión de archivos png

En el mundo web uno de los recursos más determinantes siempre ha sido el ancho de banda, afecta a la factura, afecta a los tiempos de respuesta por lo que siempre se ha tratado de reducir los consumos pero intentando mantener la calidad. Pues bien, uno de estos recursos que podemos reducir sin perdida de calidad son los ficheros gráficos de formato png.

pngcrush fue el primero y sigue siendo la referencia, lo más probable es que incluso ya lo conocieses. A base de jugar con diferentes filtros y compresiones consigue obtenernos un tamaño de fichero sensiblemente menor, manteniendo la misma calidad. Está disponible en tu distribución favorita, que más te vale que sea debian :P, y no tiene ninguna complicación a la hora de llamarlo desde la consola.

OptiPNG no tengo claro si es un fork, pero si que está basado en el mismo algoritmo de pngcrush. Ofrece una implementación según ellos más rápida y que hace una búsqueda de combinaciones mayor. Además es capaz de optimizar otros formatos como bmp, gif, ppm o tiff.

En mis pruebas con pngs siempre he conseguido una compresión mayor con optipng partiendo de la misma imagen en bruto. Si ejecuto optinpng sobre un fichero ya optimizado con pngcrush no obtengo ninguna mejora, asi que ya tenemos una alternativa para ahorrar unos cuantos bits más.

Total de ficheros 241
Sin compresión: 529.811 bytes
pngcrush:       458.620 bytes 
optipng:        434.685 bytes

dom 25 mayo 2008 23:470 comentarios

Algo para el día del orgullo friki

sáb 24 mayo 2008 18:241 comentarios

Historial de bash en varias terminales

Cuando se trabaja con bash uno de los problemas que uno se encuentra es que el historial queda hecho unos zorros cuando se trabaja con varias terminales, típico caso de trabajo con konsole y sus pestañas. Buscando una solución, pasarme a zsh de momento no es una opción, he conseguido encontrar una serie de parámetros a modificar en el .bashrc que ayudan a obtener un resultado aceptable.

export HISTCONTROL="erasedups"
shopt -s histappend
PROMPT_COMMAND="$PROMPT_COMMAND;history -a"

La primera opción sirve para no incluir en la historia comandos duplicados, otra opción es usar ignoredups que no incluye el comando en el historial si es igua l al último comando introducido
shopt -s histappend sirve para decir que vamos a añadir líneas en vez de sobreescribir el fichero cada vez
Y por último tenemos la opción history -a que nos va añadiendo las líneas al historial según las vamos ejecutando.

vie 23 mayo 2008 12:320 comentarios

Fuga del Fuerte San Cristóbal

Vista desde ariba Pamplona está dominada por el monte Ezkaba, una montaña cercana fácilmente visible desde muchas partes de la ciudad que alberga una historia negra. Allí arriba, cerca de las antenas que tiene instaladas se encuentra excavado en la roca el Fuerte San Cristóbal. Una impresionante fortaleza defensiva construida después de las guerras carlistas que nunca llegó a cumplir su cometido y que fue reconvertida en penal a partir de la revolución minera en Asturias en el 34

Hoy, día 22 de mayo, se cumple la efeméride de las más importantes fugas en la historia que tiene como protagonista a esa cárcel. En 1938, durante la Guerra Civil, Pamplona era un sitio ocupado por las fuerzas franquistas sublevadas y que ni siquiera llego a tener una línea de frente. En ese momento se encontraban hacinados en el fuerte 2487 presos, siendo su mayoría represaliados políticos, en unas condiciones lamentables. Para hacernos una idea en un período de 11 años pasaron por el fuerte unos 5000 presos de los que murieron más de 500, contabilizados de forma oficial, con causas como fusilamientos, traumatismos, inanición, tuberculosis o sencillamente de frio.

La fuga estuvo organizada por una treintena de presos que poco a poco consiguieron ir desarmando a los guardias y tomaron el control de la prisión sobre la hora de la cena. Sin embargo un soldado que volvia al fuerte desde Pamplona y un preso falangista pudieron bajar a la ciudad y dar la voz de alarma. De esta forma, pocas horas después los refuerzos habían conseguido recuperar el control de la prisión y en el primer recuento se contabilizaron 795 fugados. Aunque desde la cima se pueden apreciar las montañas que delimitan la frontera con Francia estos 50 kilómetros se convirtieron en la tumba de la mayor parte de ellos. Los números son abrumadores: 585 fueron detenidos, 187 cadáveres identificados y 24 sin identificar, 4 desaparecidos y 3 lograron cruzar la frontera.

La huida a Francia no estaba organizada, la mayoría no eran de la zona y no sabían la dirección que debían tomar, sin provisiones y mal equipados, físicamente maltrechos y con las autoridades humilladas por la fuga la persecución de los fugados fue descrita por algunos como un tiro al plato. De los capturados 14 de ellos fueron fusilados como organizadores y se silenció durante años este hecho. Ahora poco a poco se van conociendo alguno de los detalles, se han iniciado exhumaciones y se ha conseguido identificar a 203 de los fallecidos en esta cárcel.

En la actualidad el fuerte se encuentra abandonado, ya que el ejército lo desocupó en la decada de los 90, en estado ruinoso habiendo sufrido ya dos incendios y hay una serie de iniciativas populares para intentar recuperar este edificio para el uso público.

Vista del patio, abajo a la derecha las celdas Más enlaces de interés:
Wikipedia
Reportaje sobre la fuga en El País
Sobre el documental Ezkaba (en la mula y el tubo)

jue 22 mayo 2008 23:480 comentarios

Subversion con claves ssh

El otro día estuve instalando un repositorio de subversion que seguramente empleen como mucho dos personas, que además tienen cuenta en la máquina que aloj a el repositorio, así que pense que podría utilizar el mismo ssh para conectar al repositorio y de esta forma además de incrementar la seguridad en la com unicación me evitaba tener que abrir un puerto y tener un demonio ejecutandose, ssh+svn sólo ejecuta subversion bajo demanda, no está ejecutandose de form a continua.

La instalación en el servidor no requiere nada. Sencillamente creamos el repositorio, en /var/foo/bar por ejemplo, y listo. Con el cliente lo único que ten emos que hacer es indicar que usamos svn con ssh, el nombre de usuario, el host y la ruta al repositorio

svn checkout svn+ssh://usuario@host/var/foo/bar

Después de esto no pide la contraseña y bajamos el código, cada vez que hagamos una operación que requiera algo de conexión tendremos que volver a escribir la contraseña o utilizar algún programa tipo ssh-askpass. La otra opción es utilizar claves ssh pero aquí aparece el siguiente problema

En mi caso, siempre empleo una clave diferente para cada host (ssh-keygen -f nombre_de_clave) al que me conecto y desde cada cliente que me conecto. Esto no es bueno ni malo, realmente con el debacle de openssl ha sido más trabajo el cambiar todas las claves, pero creo que aporta un mayor nivel de seguridad ya que una clave comprometida solo afectaría a una máquina. Es mi forma de trabajo y para conectarme utilizo la opción -i nombre_de_clave en vez de dejar que utilize la id_rsa habitual.

Pues bien, no hay forma de indicarle a svn que utilice unos parámetros especiales para la conexión ssh y así es como llegue al fichero .ssh/config. Este fi chero permite definir una serie de Hosts para los que definimos una serie de parámetros de conexión, siendo en este caso los que necesito los siguientes:

Host doidoi
  Hostname fqdn_de_host
  User usuario
  IdentityFile ~/.ssh/doidoi

Con esta sencilla configuración, se puede complicar mucho más (man ssh_config), puedo ejecutar ssh doidoi y directamente me resolverá el nombre del servido r, el usuario con el que tiene que hacer login, la clave que tiene que emplear, los puertos que tiene que redirigir, etc...

Lo bueno es que esta configuración también vale para todas las utilidades ssh related, como scp, rsync y por supuesto subversion, de forma que la forma de hacer el checkout de fqdn_de_host con el usuario y la clave generada quedaría de esta forma

svn checkout svn+ssh://doidoi/var/foo/bar

Y yo me preguntaba como podía haber vivido hasta ahora.

mié 21 mayo 2008 01:411 comentarios

Primeros problemas con el fallo de openssl

Uno de nuestros servidores de nombres no funcionaba hoy y aparte de no encontrar nada raro nos hemos vuelto locos intentando averiguar cual era el problema. La culpa el haber eliminado todas las clavess de acceso y haber instalado el ssh-blacklist, pero un script de backup que se ejecutaba los fines de semana disparó una serie de accesos incorrectos que gracias al fail2ban bloquearon la ip de nuestra red.

Algo es algo, el principal problema es que nos hemos pasado de paranoicos

mar 20 mayo 2008 00:511 comentarios

Hábitos con ZTD

Una de las cosas que descubrí en la pasada DudesConf fue sobre el tema de gestión de tareas. Personalmente soy un desastre, empiezo muchas cosas, no llego a terminar muchas de ellas y no consigo centrarme en proyectos que llevan años en la lista de los por hacer. Así que he decidido dar un pequeño paso e intentar cambiar mi forma de actuar siguiendo alguna de estas técnicas.

En principio mi referencia era Getting things done (GTD) pero primero su longitud y segundo el tono típico de libro de autoayuda para ejecutivos me hicieron buscar una alternativa y así es como he llegado a Zen to Done una versión minimalista basada en GTD y en The Seven Habits of Highly Effective People (este último si que me da grima con tanto paradigma, proactivo y sinergia)

En fin, algo tenía que cambiar y esta técnica puede ser un buen comienzo. El ir adaptando este sistema no implica un cambio radical, sencillamente se trata de ir adquiriendo los 10 hábitos y adaptarlos a la personalidad de cada uno. Si funciona puede que escriba más a menudo en el blog :D

lun 19 mayo 2008 00:491 comentarios

Happy openssl day

Empece ayer y ya he terminado con todo excepto un certificado pem para apache, la más gorda que hemos tenido en años pero que de momento no ha tenido repercusiones graves.

Ah, y cuidado con la actualización de openssh relacionada, si actualizas antes de subir unas llaves nuevas no podrás volver a entrar.

jue 15 mayo 2008 00:420 comentarios

Dudesconf 2

I survived the gym at dudesconf #2 Otro año más por tierras gallegas en el gran evento que esperamos impacientes todos los dudes y dudettes. Esta vez no ha habido blogueo en directo, como la última vez desde el Grand Hotel-Spa Gymnasium, hoy toca en diferido y aún no recuperado de la paliza de kilómetros, montones de trazas para osm y pocas horas de sueño.

Muy contento de ver a viejos amigos y amigas, muchas historias como las de Don Ignacio, los vórtices sonoros, el bts por sms ademas de muchas charlas interesantes, aunque me gustaría remarcar la de Pancho y Xerakko sobre Vim on Rails. Realmente impresionante la cantidad de cosas que desconozco de este maravilloso editor.

También me he permitido el lujo de modificar la badge de dato y lo más important e subir las fotos que conseguí sacar. Sigo algo jodidillo por haber estropeado la foto nocturna de grupo, pero el fat es lo que tiene. Si alguién quiere una versión ampliada y ligeramente mejorada de cualquiera de las fotos no tiene más que pedirmela. Las fotos de la dudesconf 2

Respecto a la gente de gpul creo que está todo dicho. Un diez absoluto en organización. Muchas gracias a todos vosotros y nos vemo s el año que viene

mié 07 mayo 2008 00:570 comentarios