Ya tengo los DVD de la 1ª temporada de “The Big Bang Theory”

Como comenté ayer en twitter, hoy se han puesto a la venta en España los DVDs de la primera temporada de la serie “The Big Bang Theory” y me ha faltado tiempo para ir a comprármela. Es una serie genial. La mejor comedia que he visto en mucho tiempo.
Para aquellos que todavía no la conozcan, aunque eso querría decir que no habéis leído mi post al respecto de hace unos ocho meses
, es una seríe producida por la CBS que nos muestra las vivencias de cuatro científicos/geeks con gran cociente intelectual pero escasas aptitudes sociales (y que, entre otras cosas, juegan al Scrabble Klingon) que conocen a la nueva y atractiva vecina que se acaba de mudar a Los Angeles en busca de una carrera como actriz. La interacción de esos dos mundos tan diferentes provocan situaciones francamente hilarantes.
Para que os hagáis una idea de la serie, os remito a YouTube. Y si estais en Facebook, os podéis hacer fans.
Post número 100

Aunque no soy muy dado a las celebraciones (por no celebrar, casi no celebro ni mis cumpleaños
) he pensado que estaría bien aprovechar la publicación del post número 100 para recapitular un poco lo que ha sido la irregular historia de este blog hasta el momento.
El prímer artículo es de mediados de octubre del 2004, es decir, que en unos cuatro meses el blog cumplirá ya cinco años (jo, como pasa el tiempo), y significa que, de media, he publicado un post cada aproximadamente dos semanas y media. Pero la verdad es que he tenido grandes altibajos motivados por mi estado de ánimo. Pero a pesar de esa irregularidad en la publicación, hay cerca de 200 comentarios, una media de dos por artículo., y eso me ha hecho mucha ilusión. ¡Hay gente que lee mi blog!
En cuanto a visitas, según Google Analytics, tengo una media de unas 35 visitas diárias, viniendo casí todas ellas de buscadores que suponen unas 50 páginas vistas al día, siendo las más visitadas (si obviamos la página de inicio) los post de Velocidad de obturación y apertura, Nudos de corbata y exponenciación modular, cosa que encaja con las frases más usadas en los buscadores para llegar a mi web. Pero me apena un poco que ninguno de mis recientes posts técnicos estén en el top-10.
No se puede decir que sean unos grandes números (sé que si pusiera publicidad no me haría a hacer rico, pero no es esa la intención de este blog) pero me ha hecho ilusión recopilar y analizar ligeramente todos estos datos.
Espero algún día llegar a los 200.
Coraline

Portada del libro "Coraline"
Aprovechando el reciente estreno de la adaptación cinematográfica [IMDb][Trailer], dejadme que os presente “Coraline“: una historia de fantasía cuasi onírica en la que Coraline, una niña de 14 años que se acaba de mudar, descubre en su nueva casa un pasadizo que la llevará a otra casa increíblemente parecida a la suya pero en la que viven otros padres muy cariñosos, que le prestan toda la atanción, que quieren que se quede con ellos para siempre y que tienen botones por ojos. Pronto se dará cuenta que no todo es tan bonito como parece…
El autor del relato es Neil Gaiman quien, como ya he comentado en alguna ocasión, es uno de los escritores contemporáneos de fantasía que más me gustan. Otras obras suyas son los libros “American Gods” y “Los hijos de Anansi“, el afamado cómic “The Sandman” y la novela gráfica “Stardust“, también convertida en film.
Algo que comparten la mayoría de sus obras son su atmósfera lúgubre, como de penumbra, y unas historias que te enganchan desde el primer momento y “Coraline” no es diferente. Aunque está publicitada como lectura a partir de los 12 años no desmerece la lectura por un adulto. Y, a pesar de los momentos algo oscuros que podrían asustar a los jóvenes más sensibles, tiene cierta moraleja en la historia que no estaría mal que conocieran. En resumen, un libro entretenido de lectura fácil que os recomiendo a todos.
El libró lo editó Salamandra en el 2003 pero todavía se puede encontrar en varias librerías online. También está disponible en catalán de la mano de editorial Empuries.
Como anécdota, Gaiman ha comentado en alguna ocasión que el título viene de un error tipográfico de Caroline que le ocurrió accidentalmente.
Por cierto, me apetece mucho ir a ver la película (cuya ambientación me recuerda exageradamente a “Pesadilla antes de Navidad“) en 3D algún día de estos. ¿Se apunta alguién?
Firmas DKIM con Postfix y Amavis
Hace bastantes meses escribí un artículo sobre como configurar el SpamAssassin para que verifique las firmas DKIM para luchar contra el Spam y me quedó pendiente explicar como firmar nuestros própios correos. Por aquel entonces era más o menos complicado pero desde la release de Debian Lenny, que incluye el paquete amavisd-new 2.6.1, la tarea se ha simplificado.
Voy a dar por sentado que tenemos un Postfix instalado y configurado para que use el Amavis para las funciones de anti-virus y anti-spam. Si no es así, te recomiendo que leas el excelente artículo de Jaume Sabater.
El primer problema lo tenemos si el mismo servidor está actuando como MX y como servidor SMTP para nuestros usuarios: Amavis firmaría tanto los correos de nuestros usuarios como los que le llegan en su función de MX, y no es lo que queremos. Por tanto, lo primero es separar esas dos funciones (MX y submission) en el Postfix añadiendo las siguientes líneas en /etc/postfix/master.cf (seguramente ya haya algo parecido pero comentado)
1 2 3 4 5 | submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o content_filter=smtp-amavis:[127.0.0.1]:10026 |
Con estas líneas estamos indicándole al Postfix que también escuche por el puerto de submission (587/tcp), que por ese puerto sólo acepte correo de conexiones autentificadas y cifradas por TLS, y que debe enviar los correos recibidos al Amavis usando el puerto 10026 (mientras que el resto se seguirá enviando por el puerto 10024). Con esto conseguiremos que Amavis distinga y trate de forma diferente los correos de los usuarios.
Lo siguiente es hacer que Amavis también escuche por el puerto 10026 y hacer que firme los correos que le lleguen por ese puerto. Lo haremos añadiendo al fichero /etc/amavis/conf.d/50-user:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $inet_socket_port = [10024, 10026]; $interface_policy{'10026'} = 'AUTH'; $policy_bank{'AUTH'} = { # Authenticated clients os_fingerprint_method => undef, # don't fingerprint authenticated clients bypass_spam_checks_maps => [1], # don't spam check authenticated clients originating => 1, # # force MTA to convert mail to 7-bit before DKIM signing # to avoid later conversions which could destroy signature: smtpd_discard_ehlo_keywords => ['8BITMIME'], }; $enable_dkim_signing = 1; dkim_key('llull.net', 'personal', '/etc/dkim/llull.net.key.pem'); |
En la última línea le indicamos que para el dominio ‘llull.net‘ y el selector ‘personal‘ debe firmar los correos con la clave privada contenida en el fichero /etc/dkim/llull.net.key.pem. Para generar ese fichero ejecutaremos como root el comando
server:~# amavisd-new genrsa /etc/dkim/llull.net.key.pem Private RSA key successfully written to file "/etc/dkim/llull.net.key.pem" (1024 bits, PEM format)
Ya sólo falta obtener y configurar en nuestro servidor DNS la clave pública y para ello disponemos de otro comando:
server:~# amavisd-new showkeys personal._domainkey.llull.net. 3600 TXT ( "v=DKIM1; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoTaWXxsXpNi100Flp7fIKJSlZ" "ptMP4aCCZjUFgT7TsWokWQJhnGUNnxexEqqPtCDbCUAvEg3iieMRrKwZoHAUDqCf" "fvW9dcYR7+NdnaxAXCBpOh8Wg5GFJeIid9Gsx3ByBObBQnRGSMOxdBRBO4VXwGb2" "hKAIOiBMPxaFghdDZQIDAQAB")
Y ya sólo falta añadir la salida del anterior comando a la zona de nuestro dominio en el servidor DNS. La salida está en formato Bind por lo que si usamos ese servidor DNS no tendremos más que añadir ese texto en el fichero correspondiente.
Acordaos de reiniciar el Postfix, Amavis y Bind para que apliquen las nuevas configuraciones. Para comprobar que todo está funcionando correctamente, podemos enviar un correo a uno de los reflectores existentes.
Ahora ya no tenéis escusa para que vuestro servidor de correo no firme los correos salientes. Si os surge alguna duda, usad los comentarios. Aunque creo que me he acordado de todo, han pasado algunos meses desde que lo configuré y es posible que haya pasado algo por alto.
Artículo basado en la documentación oficial de Amavis.
All is full of love
Hasta ahora nunca le había dedicado un post a nada relacionado con la música. Aunque, como a todo el mundo, me gusta, no es un tema que me apasione fuertemente. Pero hoy me ha apetecido comentaros el que, según mi parecer, es uno de los mejores vídeos musicales (sin menospreciar a la canción, que es el 50% del vídeo): “All is full of love” de Björk, publicada en el álbum Homogenic, y reversionada para el de grandes éxitos.
Para aquellos que no la conozcáis, Björk [wikipedia] es una cantante y compositora islandesa, que también ha hecho sus pinitos como actriz, con una voz muy particular. La verdad es que no es la típica voz de cantante, pero creo que encaja bastante bien con el tipo de música que realiza: difícil de definir.
El vídeo tiene ya sus años (finales de los ‘90) pero no ha quedado en absoluto desfasado. De ambientación cyberpunk (supongo que por eso me gusta). muestra la elegante y delicada construcción de dos Björk robot que se enamoran, inmersas en un escenario muy industrial, muy high-tech, mientras suena una musica con ciertos toques orientales.
La verdad, como la descripción que he realizado no le hace justicia (por mucho que lo intentara no creo que nunca llegara ha hacerlo) y si una imagen vale más que mil palabras entonces veinticinco por segundo valdrán muchas más, creo que lo mejor es que lo veáis y valoréis vosotros mismos. Ya me diréis que os parece.
Para los curiosos, os dejo el enlace al making of.
Optimizaciones en el blog
Desde que Xisco me pidió consejo tras probar varias de sus páginas con YSlow tenía pendiente escribir este post. YSlow es un plugin para Firefox que analiza distintos aspectos que pueden afectar al rendimiento de páginas webs y realiza recomendaciones. Todos los aspectos que se tienen en cuenta giran alrededor del tiempo de carga de la web. No entran en temas como optimización de base de datos y otros aspectos internos del servidor.
De todas las reglas, las más sencillas de corregir son:
Otras reglas pueden suponer reescribir parte de la aplicación pero para solventar estas tres basta con añadir algunas líneas al final del .htaccess del directorio raíz de nuestra web. Hay que tener en cuenta que los modulos necesarios deben estar instalados y la configuración del servidor nos debe permitir establecer esta configuración (directiva AllowOverride)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # Add Expires Header <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/gif "access plus 1 week" ExpiresByType image/jpeg "access plus 1 week" ExpiresByType image/png "access plus 1 week" ExpiresByType text/css "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" </IfModule> # Compress CSS files <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain text/html text/xml application/rss+xml application/atom_xml AddOutputFilterByType DEFLATE text/css application/javascript </IfModule> # ETag only use file time and size, but no inode FileETag MTime Size |
En las líneas 2 a 9 configuramos que las imágenes, hojas de estilo y javascripts tengan una fecha de expiración de una semana a partir del momento en que se ha visitado la página web. Esto significa que el navegador del usuario usará la copia local (fichero cacheado) durante una semana. Este comportamiento puede suponer un problema si tenemos ficheros de estos tipos que vamos modificando sin cambiarle el nombre (p.e. un banner) ya que los navegadores de algunos de los usuarios mantendran las versiones antiguas.
Desde la 12 a la 15 configuramos la compresión de las páginas HTML, feeds (text/xml, application/rss+xml y application/atom_xml), hojas de estilo y javascripts. De esta forma conseguimos ahorrar tráfico (importante si estamos en un hosting con limitaciones de tráfico) y que el tiempo de transmisión sea menor.
Finalmente, en la última línea configuramos los ETags generados por el propio servidor Apache para los ficheros estáticos. Por defecto, Apache tiene en cuenta tres aspector para generar el ETag: el inodo, fecha de modificación y tamaño. Pero se recomienda no usar el inodo para generarlo ya que si nuestra web empieza a ser conocida y tenemos que distribuir la carga entre varios servidores, es muy poco probable que un fichero tenga el mismo inodo en todos los servidores de la granja. Entonces, el ETag variaría en funcion del servidor que lo generara por lo que no se sacaría provecho a esta cabecera. Para resolverlo, configuramos el Apache para que genere el ETag sólo considerando la fecha de modificación y el tamaño del fichero.
Con esta simple configuración yo conseguí pasar de una puntuación de 74 a 89.
A medida que pueda escribiré algún post más sobre optimización web y como resolverlo en el caso concreto de un blog que usa Wordpress.
Como añadir un icono para el iPhone a tu web
Desde la versión 1.1.3 del sistema operativo del iPhone, puedes añadir enlaces a tus webs favoritas a la pantalla de inicio. Por defecto, el dispositivo crea una miniatura de esa web, pero es tan pequeña que no sirve para identificarla. Por suerte, ese icono se puede personalizar como podéis ver en la captura de pantalla.
Según podemos leer en la documentación de Apple, es tan simple como crear una imagen en formato PNG de 57×57 pixeles (sí, a mi también me parece un tamaño un poco extraño) y colocarlo en la raíz de nuestra web con el nombre apple-touch-icon.png. El dispositivo se encargará de redondear las esquinas y darle ese efecto glossy. Pero si nuestra imagen ya tiene algún tipo de efecto de brillo (como me ocurre a mi) queda demasiado sobrecargado: demasiado brillo. Para que el iPhone no añada ese efecto glossy a la imagen manteniendo las esquinas redondeadas, basta con renombrarlo a apple-touch-icon-precomposed.png, como se indica en otra parte de la documentación.
En lugar de usar los nombres por defecto, también podemos dar una referencia a la imagen que queremos que se use como icono añadiendo en la cabecera del documento HTML uno de los siguientes tags dependiendo de si quieremos o no que se aplique el efecto glossy a la imagen:
<link rel="aple-touch-icon" href="/customIcon.png"/> <link rel="apple-touch-icon-precomposed" href="/customIcon.png"/>
Lo que no acabo de entender muy bien son los motivos que puede tener Apple para no usar el favicon (eng) que los navegadores ya usan, entre otras cosas, para asignar un icono al enlace cuando lo guardamos en nuestros bookmarks. Ya se que normalmente el favicon es de 16×16 píxeles por lo que resulta algo pequeña para la interfaz del iPhone y escalándola quedarían horribles. Pero el formato ICO soporta que en el mismo fichero puedas tener varios tamaños de la imagen. Bastaría con que el iPhone usara la más grande disponible y si ninguna tiene el tamaño mínimo requerido que hiciera lo de la miniatura de la web. Ahora mismo no se me ocurre ningún motivo técnico para tener que usar otra imagen diferente para un fin similar.
Jamie Oliver: el loco de la cocina

Jamie Oliver
Por poco que a uno le interese la cocina seguro que le sonará el nombre de Jamie Oliver, pero para aquellos que todavía no lo conozcáis, aquí tenéis este post.
Jamie Oliver es un joven cocinero ingles que, a parte de llevar su restaurante, lideró un programa para en contra del uso de comida precocinada en los comedores de los colegios británicos, es el autor de varios libros y ha realizado varios programas en televisión, como por ejemplo:
- Oliver’s Twist
- Jamie de viaje por Italia (Jamie’s great italian escape)
- En casa com Jamie Oliver (Jamie at Home)
Me he centrado en los programas que he podido ver en España por el Canal cocina.
Hace una cocina sencilla pero estudiada. Es decir, no es Ferrán Adriá con sus deconstrucciones y esferificaciones, pero si que tiene recetas elaboradas y siempre tiene en cuenta que sabores encajan mejor. No es muy fino trabajando y las medidas más exactas que da son “una cucharada de esto”, “un puñado de aquello”, “mucho de eso” pero es muy divertido (de aquí el título del post). Utiliza bastantes especias y hierbas aromáticas, y muchos de sus platos tienen cierta influencia asiática o italiana (esto último se debe a su ascendencia materna). Algunos definen su cocina como fresca y orgánica.
A los que no lo conozcáis, os recomiendo que veáis alguno de sus vídeos.
Posteando desde el iPod Touch
Como ya es bien conocido, Apple inició una revolución en el campo de los dispositivos móviles cuando presentó la última generación de los iPod (incluyendo su teléfono móvil, el iPhone) y dió el siguiente paso al publicar la versión 2.x del software de esos dispositivos al añadir el App Store. Gracias a lo cual la funcionalidad de estas plataformas móviles ha aumentado enormemente al permitir que terceras partes publiquen aplicaciones.
Una de estas aplicaciones, Wordpress for iPhone, es la que me ha permitido publicar este post desde mi iPod Touch. Todavía le faltan algunas funcionalidades como, por ejemplo, la de un editor enriquecido que permita añadir enlaces o algo de estilo (listas, negrita, etc.) a los post, pero seguro que sólo es questión de tiempo.




