Jul 16

Se ha abierto la veda con todos los asuntos de Michael Jackson.

En esta ocasión le ha tocado el turno a un vídeo que nos remonta a 1984, cuando el “Rey del Pop” se encontraba grabando un vídeo publicitario para la marca de refrescos Pepsi.

Durante una de las tomas parece que los efectos pirotécnicos se adelantan a su sincronización con la coreografía programada y prenden el pelo de Michael Jackson.

El resultado fueron quemaduras de segundo y tercer grado.

Jul 8

Los usuarios de VLC estamos de enhorabuena, pues después de un largo peregrinaje, ya tenemos disponible la release definitiva de nuestro reproductor de media favorito: VLC 1.0.0 Goldeneye.

La versión de Windows no tiene más que ser descargada e instalada. Para ubuntu (Jaunty) solo tenemos que seguir estos sencillos pasos:

  • Añadimos el repositorio de goldeneye a nuestro /etc/apt/sources.list
    deb http://ppa.launchpad.net/c-korn/vlc/ubuntu jaunty main
  • Agregamos la clave GPG del repositorio
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xd739676f7613768d
  • Actualizamos la lista de paquetes disponible
    sudo apt-get update
  • Y finalmente instalamos los paquetes que necesitamos
    sudo apt-get install vlc vlc-plugin-esd mozilla-plugin-vlc

¡Que lo disfrutéis!

Página Oficial VLC | http://www.videolan.org/vlc/

Abr 21

Google ha añadido una nueva funcionalidad a su larga lista de servicios disponibles de forma gratuita. En esta ocasión se trata de ‘Google Similar Images’, un servicio que nos permitirá, se forma sencilla, buscar imágenes a partir de otra imagen.
Las imágenes obtenidas mediante este método se supone que deberán mantener similitudes substanciales con la imagen de origen (en ocasiones el buscador nos puede devolver la misma imagen pero alojada en otro servidor, o diferentes puntos de vista de la misma imagen, o porciones de la misma, etc)

Es realmente divertido empezar por una imagen e ir jugando con las similitudes para ver donde acabamos tras 3 o 4 pasos :D

Página Oficial | Google Similar Images
Fuente | http://lifehacker.com

Nov 28

El pasado 23 de noviembre salio a la venta el disco más esperado de los últimos tiempos. Quizá el más esperado de todos los tiempos. Y es que pocos discos han tardado más de 14 años en ser elaborados.

Hablamos de Chinese Democracy, el disco más caro de la historia con 13 millones de dolares invertidos en su producción. Y es que el desfile de músicos es interminable. Hay canciones en las que han participado hasta 3 guitarristas distintos para los solos de guitarra.

Portada de Chinese Democracy

Portada de Chinese Democracy

Guns N’Roses tiene el honor de ser el grupo con el disco de debut más vendido de la historia, Appetite For Destruction (1987). Después vendrían los años “salvajes” y de autodestrucción que llevarían a la banda a su disgregación sobre 1993. En ese tiempo nos dejarían varios álbumes cuyas mejores piezas serian descartes del mítico Appetite.

Axl Rose, el carismático y excéntrico líder de la grupo acabó solo al frente de la banda. Los otros miembros de Guns (Slash, Duff McKagan y Matt Sorum) formaron a su vez Velvet Revolver junto a Scott Weiland, ex-vocalista de los Stone Temple Pilots. Recientemente Weiland ha sido expulsado de la banda, y aunque no hay nada confirmado, los rumores hablan de Sebastian Bach (Skid Row) como reemplazo. Pero esto es otra historia…

Y ahora la opinión personal sobre Chinese Democracy… ¡Es muy digno regreso de Guns N’Roses a la escena musical!
Evidentemente no es como el Appetite For Destruction. Nadie lo podía esperar.
El álbum se compone de 14 temas enérgicos y llenos de potentes guitarras y la característica voz de Axl Rose. Shackler’s Revenge, donde Rose cuenta con la colaboración del peculiar Buckethead (mirad vídeos suyos en youtube si tenéis ocasión y entenderéis lo de “peculiar”), es una buena prueba de ello. Los amantes de las baladas podrán disfrutar de temas como Street of Dreams o Sorry.

1. “Chinese Democracy” (Axl Rose, Josh Freese) – 4:41
2. “Shackler’s Revenge” (Axl Rose, Brian Carroll (Buckethead), Caram Costanzo, Bryan Mantia, Pete Scaturro) – 3:35
3. “Better” (Axl Rose, Robin Finck) - 4:59
4. “Street of Dreams” (Axl Rose, Tommy Stinson, Dizzy Reed) - 4:47
5. “If the World” (Axl Rose, Chris Pitman) - 4:54
6. “There Was a Time” (Axl Rose, Paul Tobias, Dizzy Reed) - 6:41
7. “Catcher N’ the Rye” (Axl Rose, Paul Tobias) - 5:53
8. “Scraped” (Axl Rose, Costanzo, Brian Carroll) - 3:31
9. “Riad N’ the Bedouins” (Rose, Stinson) - 4:10
10. “Sorry” (Rose, Carroll, Mantia, Scaturro) - 6:15
11. “I.R.S.” (Rose, Tobias, Reed) - 4:29
12. “Madagascar” (Rose, Pitman) - 5:38
13. “This I Love” (Rose) - 5:34
14. “Prostitute” (Rose, Tobias) - 6:16

En definitiva, y en mi honesta opinión, Chinese Democracy es un muy buen disco que gana cuanto más lo escuchas. ¿Tendremos que esperar 14 años más para el siguiente?

Nov 12

HBO ha dado la orden de producción del episodio piloto de Juego de Tronos, el primer libro de la saga de Canción de Hielo y Fuego, de G.R.R. Martin.

Jon Nieve

Jon Nieve

De momento se trata tan solo del episodio piloto, pero sin duda son muy buenas noticias para los seguidores de esta extraordinaria obra. Tras el episodio piloto se tendrá que decidir si se sigue con el resto de episodios que formen la primera temporada (que cubriría el primer libro de la saga).
Por lo visto el guión de David Benioff y Dan Weiss ha convencido a los productores de la HBO y, para tranquilidad de los seguidores, es bastante fiel (según se dice). Dan y David serán los productores ejecutivos para el piloto y para (esperamos) la eventual serie.

HBO acaba de publicar su propio comunicado de prensa, que debería estar en su sitio web pronto, si no existe ya.

¡El Invierno está llegando a HBO!

Visto en: http://grrm.livejournal.com/58155.html
La imagen es de Miquel Montlló

Sep 23

Falta poco tiempo (una semana aprox) para que salga el kernel de Linux 2.6.27. Aquí un pequeño resumen de las principales novedades:

* page cache y get_user_pages() sin bloqueos (lockless): El page cache es el lugar (de la RAM) donde el kernel pone copias de los archivos que estan en el disco para acelerar el rendimiento. Cada instancia de la estructura “mapping” almacena la informacion de cada archivo que tiene copias de sus datos en el page cache. Esa estructura tiene un bloqueo para evitar problemas de concurrencia cuando se accede a ella. Si hay varios procesos que estan accediendo a esa estructura simultaneamente -lo cual, para ser sinceros, no es algo muy comun ni es por lo general un problema- puede formarse cierta contencion en ese bloqueo. Para resolverlo, en Linux 2.6.27 las operaciones de lectura de las estructuras del page cache se haran sin necesidad de adquirir ese bloqueo. Debido al diseño, en el que se evitan tambien ciertas operaciones costosas, tambien se ha mejorado el tiempo de lectura y modificacion del page cache en sistemas monoprocesador.

* get_user_pages(): Existe una tecnica llamada Direct I/O, que consiste en hacer operaciones de I/O saltandose completamente el page cache y todo tipo de gestion de memoria del kernel. Las grandes bases de datos son quienes suelen utilizar estas cosas, porque ellas mismas hacen su propia gestion de memoria a su gusto. get_user_pages() es una funcion interna del kernel encargada de copiar los datos de la memoria del proceso a la memoria del kernel cuando se hace Direct I/O para posteriormente escribirlo en el disco. Sin embargo, esta funcion requiere adquirir un par de bloqueos importantes, que hacen que se forme cierta contencion cuando hay varios threads usando get_user_pages() en un mismo espacio de direcciones. En 2.6.27 se ha añadido la funcion get_user_pages_fast(), cuya funcion basica es la misma, pero esta diseñada para gestionar los casos mas comunes y por tanto puede prescindir de 4 de los 8 argumentos que toma la otra funcion, y puede hacer Direct I/O sin tomar ningun bloqueo. Eso hace que las operaciones de Direct I/O se aceleren considerablemente - un 10% en un benchmark OLTP sobre DB2 en una maquina Intel Quadcore.

* Ext4 delayed allocation: Esta es una de las grandes promesas de ext4. Se trata de algo que no afecta al formato del disco, es un mero problema de implementacion. En los SO modernos, cuando una aplicacion escribe algo al disco no lo escribe inmediatamente, sino que lo guarda en buffers que seran escritos posteriormente. Sin embargo, por comodidad, la mayoria de sistemas de archivos implementan esta funcion como un caso particular de la funcion general “escribir los datos en el disco”. Me explico: en la mayor parte de sistemas de archivos, cuando la aplicacion hace write(), lo que suele hacer el sistema de archivos es llamar a las rutinas de asignacion de bloques libres a los nuevos datos, actualizar el contador de espacio libre, etc….a pesar de que los datos aun no se estan escribiendo y van a pasar un rato en los buffers. Esto es suboptimo por muchas y variadas razones; por ejemplo, un archivo puede consistir de varios write()s y el algoritmo de asignacion de bloques no puede saberlo cuando recibe el primer write(), y por tanto no puede encontrarle un lugar adecuado. La tecnica “delayed allocation” consiste, simplemente, en no llamar a esas rutinas de asignacion de bloques, solo la de actualizar el contador de espacio libre. La asignacion del espacio que los datos van a ocupar en el disco se realiza solamente cuando los datos se van a escribir verdaderamente en el disco. Esta tecnica, utilizada por sorprendentemente pocos sistemas de archivos -XFS, ZFS, reiser 4 y btrfs-, mejora el rendimiento en muchos tipos de carga -en algunos las mejoras son astronomicas- y disminuye la fragmentacion.

* UBIFS: UBIFS es un sistema de archivos diseñado por Nokia para dispositivos de almacenamiento flash puros. Cuando digo puros, me refiero a que no puede utilizarse en los tipicos lapices USB o discos externos USB hechos con memoria flash. Ese tipo de dispositivos tiene una capa de emulacion que los hace parecer, al exterior, como un dispositivo de bloques normal y corriente. UBIFS esta diseñado para los sistemas que no tienen esa capa. Es mejor que JFFS2 en varios aspectos: rendimiento, el montaje inicial es rapido, resistencia a reinicios a lo bruto…

* Kexec jump: hibernacion basada en kexec/kdump: Kexec es un sistema que permite cargar un kernel Linux en memoria y ejecutarlo directamente desde el kernel que estas corriendo, sin necesidad de reiniciar. Kdump es un sistema de volcado de memoria del kernel basado en kexec: Se carga al principio del sistema un kernel a prueba de fallos en memoria, y si hay un fallo en el kernel, el codigo de OOPS llama a kexec, ejecuta el kernel a prueba de fallos, se carga ese kernel, y se copia el resto de la memoria del sistema a un archivo - el volcado de memoria. En 2.6.27, estos sistemas se han extendido para una nueva funcion: hibernar el sistema. Se carga un kernel, se ejecuta, ese kernel guarda el contenido de la memoria en un archivo, y se apaga el sistema. Al encender de nuevo el sistema, se carga el archivo con la memoria y se sigue ejecutando.

* Soporte de integridad de datos en la capa de bloque: Hay sistemas de archivos capaces de usar checksums para detectar corrupcion en un archivo. Sin embargo, esto se detecta solamente al leerlo. SCSI y ATA estan preparando especificaciones y dispositivos que junto a los resultados de las operaciones de escritura devuelven al kernel un CRC de cada sector escrito para que se verifique si no ha habido errores.

* ftrace: ftrace es un sistema de instrumentalizacion del codigo muy simple nacido en el seno de los parches -rt: se utiliza una extension de gcc para dejar 5 bytes de NOPs en el principio de todas y cada una de las funciones del kernel (no tiene ningun efecto en el rendimiento, incluso en microbenchmarks: las CPUs modernas han optimizado este tipo de secuencias muy bien). Cuando ftrace se activa, esos NOPs se modifican con instrucciones que llaman a ftrace para tomar nota de las funciones que se van llamando. Es muy util para analizar el rendimiento de diferentes partes del codigo. Pero la parte mas util es que ftrace tiene una infraestructura de plugins que ha permitido desarrollar todo tipo de funciones: se pueden analizar los cambios de contexto, la latencia que sufre un proceso desde que es “despertado” por el gestor de procesos hasta que finalmente empieza a ejecutarse, tiempo maximo que se pasa con las interrupciones desactivadas, el tiempo gastado en porciones de codigo donde se deshabilita preempt…ademas de soporte de sysprof.

* mmiotrace: Instrumentalizacion de las operacion de mmio (memory-mapped I/O: I/O que se hace mapeando parte de la memoria a un dispositivo y escribiendo en la misma). Por lo visto es muy util para hacer ingenieria inversa de los drivers de nvidia^W^Wpropietarios.

* Capa de red multicola: En las tarjetas de red modernas, especialmente las wireless, estan apareciendo multiples colas, en vez de la tradicionalmente unica: Una para voz, otra para video, otra de baja prioridad para P2P^W”trafico de fondo”. En 2.6.27 la capa de red tiene soporte para este tipo de dispositivos.

* Firmware externo: El firmware de los drivers ha sido extraido de los mismos y centralizado en el directorio firmware/. Este firmware puede ser instalado en /lib/firmware, de manera que cuando los drivers lo necesiten, se llamara al programa que carga firmware externo desde un archivo del disco duro, algo que apreciaran los enfermos de GNUitis. Tambien se puede optar, para quien no les guste esto, por meter todo el firmware en la imagen del kernel.

* Soporte de webcams mejorado: Se ha incluido el driver gspca, que incluye soporte para la mayor parte de las webcams que quedaban por soportar en Linux.

* syscalls que crean descriptores de archivo extendidas: UNIX no fue perfecto. Por ejemplo, muchas de las diversas rutinas que crean descriptores de archivo no permiten crear descriptores de archivo con ciertas propiedades que hoy en dia se utilizan. Resulta que poder hacerlo no es un simple capricho - tambien existen ciertos aspectos de esta carencia que pueden vulnerar la seguridad. Para solucionar este problema no habia otro remedio que añadir un porrillo de syscalls nuevas que aceptaran los parametros necesarios. Aunque parezca algo sucio tener que añadir estas nuevas syscalls, lo cierto es que añadirlas es bastante “barato” y no se ha añadido casi nada de codigo.

* Soporte de chips: intel wireless 5000, chips wireless Atheros AR5008 y AR9001, soporte de tarjetas de red Realtek RTL8187y de Atheros L1E Gigabit, muchos otros drivers, soporte mejorado de drivers ya existentes, muchas otras mejoras y pequeños arreglos.

Lista completa de cambios

Visto en http://diegocg.blogspot.com