miércoles, octubre 20, 2010

Diez sistemas operativos en una netbook

Mi buen amigo Efraim es de esos informáticos que la tienen muy pero muy clara. Es de los administradores que hacen su trabajo con seriedad, pero de forma casi imperceptible para que las redes de las organizaciones sigan funcionando a pesar de las barbaridades que se ven en los desarrollos que corren sobre ellas (y de esas anécdotas hay para hacer un libro). Tiene, eso sí, la costumbre de exprimir al máximo todo hardware que pasa por sus manos; de hecho más de una vez lo he encontrado dejado procesando equipos una semana entera para entrenar redes neuronales.

Entre esos arranques -que a mi no se me ocurren ni por casualidad- se preguntó que tal andaría una netbook con diez sistemas operativos corriendo a la vez. Nueve Ubuntu(s), para ser preciso, virtualizados con KVM + KSM sobre un Debian que actúa de host, y todos al mismo tiempo y todos en una netbook. Contrario a lo que uno hubiera esperado, la verdad se la bancó muy bien, manteniendo responsivo el escritorio, como pueden ver por la captura de pantalla (de paso, con compiz). Allí está ingresando en uno de los virtualizados, mientras los restantes aún muestran la pantalla de inicio de sesión.

Por supuesto que no es cualquier netbook; de todas las que hay en el mercado, esta belleza de Asus [ver 1 y 2] tiene un procesador de 64 bits y virtualización por hardware, lo que hace posible semejante comportamiento.

lunes, agosto 23, 2010

Tres soluciones al hilo

Desde hace varios días vengo anotando algunas dificultades que he tenido con linux y el hardware y que soluciones aporta la gente en foros, blogs y otros espacios (que afortunadamente google indexa). Como es de costumbre, para quedar tranquilo prefiero, antes de olvidarlas, dejarlas registradas acá.


1. En Debian/Ubuntu de 64 bits (amd64) no incia Skype, o bien el nuevo plugin de Google Talk para linux se instala pero no funciona, dando el siguiente (o similar) mensaje de error:

Inconsistency detected by ld.so: dl-open.c: 611: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

Esto probablemente surge debido a una incompatibilidad entre arquitecturas de las librerías de pulseaudio y puede solucionarse quitando el permiso de lectura en los archivos de 32 bits de tal librería, como se detalla en los comentarios de este post de skype. Con el plugin de google talk ocurre lo mismo, salvo que no estalla sino que "no permite usar el chat de voz y video" aunque esté instalado correctamente. Los pasos son sencillos:

# chmod a-r /usr/lib32/libpulse.so*
# chmod a-r /usr/lib32/libpulse-simple.so*

Hecho esto, es cuestión de cerrar y volver a abrir la sesión de usuario para que salgan andando ambos programas.


2. Siguiendo con temas de sonido, en equipos Dell Studio 1558 y similares con Debian/Ubuntu no funcionan las salidas de auriculares y/o el micrófono incorporado en las aplicaciones de captura de sonido (léase skype, google-talk, etc.).

En el blog stfunoob y en sathyaphoenix dan como solución especificar un parámetro adicional en la carga del módulo que controla la placa de sonido. En estas portátiles, específicamente, conviene hacer:

# echo "options snd-hda-intel model=dell-m6-dmic" > /etc/modprobe.d/alsa-dell.conf

y reiniciar el equipo o volver a cargar los módulos de sonido, lo que sea más sencillo. Con eso es posible utilizar el micrófono incorporado en la laptop en aplicaciones de voip y con la calidad que corresponde.


3. Y también en portátiles Dell Studio 1558 y similares, el cargador de arranque GRUB2 se instala correctamente, pero falla luego del reiniciar en Windows Vista/7 e impide iniciar cualquiera de los sistemas operativos instalados, dejando el equipo inutilizado con el siguiente mensaje de error:

GRUB loading.
no module name found
Aborted. Press any key to exit.

Inicialmente es posible recuperar el inicio restaurando el cargador desde un disco de Ubuntu, de rescate de Debian (el mismo disco de instalación tiene un modo "rescue") o bien utilizando SuperGrubDisk para volver a grabar el cargador en el MBR.

Lo que ocurre aquí es una incompatibilidad entre la aplicación de copia de seguridad Dell DataSafe Backup, según está registrado en varios foros y en los bugs 441941, 482757 y 551721 de Ubuntu. Con cada reinicio de Windows, la aplicación sobreescribe cierta parte inicial del disco corrompiendo el arranque de GRUB. Hay varias alternativas de solución:

a. Generar y grabar los discos de recuperación de Dell y luego eliminar la aplicación DataSafe Backup, según lo documentado en este blog, y finalmente reinstalar GRUB2.

o bien, si no desean desinstalar el programa de backup,


o bien, si no queda otra,

c. Agregar una entrada para el sistema operativo linux en el gestor de arranque de Windows Vista/7 utilizando EasyBCD.

Bien, como siempre, espero que les sea de utilidad como para mi lo han sido estas soluciones aportadas por la comunidad.

miércoles, agosto 11, 2010

0x4001100200001012, o que te repare Magoya

Por puro divertimento se me ocurrió iniciar en Windows para crear y probar el "Disco de Recuperación del Sistema de Windows 7" que vino con la portátil.

Menos mal! Porque lo que se dice "reparar", no "repara" nada... más que nada devuelve este muy explícito error:


"Error 0x4001100200001012. Si este problema persiste, comuníquese con la"

Con la...??? Y ahora sí, que te lo repare Magoya...

Por supuesto, el que quiere sufrir, que siga con lo mismo. Yo me quedo con sistemas operativos serios...

miércoles, julio 14, 2010

De mudanza (digital)

Desde hace un tiempo vengo acomodando un dominio separado para subir fotos y archivos varios, que me resulta bastante cómodo pues entre otras cosas trae php, mysql y acceso por ftp.

Como la idea es mantener todo unificado, instalé un sencillo blog donde trasladaré las entradas actuales e iré incorporando las que vayan surgiendo. Por ahora está en beta, como casi todo lo de google, jej...

La nueva dirección es: www.mauromeloni.com.ar/blog/

Este actual (de blogspot) lo dejo en línea ya que tiene varios comentarios interesantes y además está referenciado en varios de los scripts propios. Los que estén suscriptos, recuerden actualizar el feed al nuevo.

Nos vemos,

miércoles, junio 30, 2010

15.000 descargas

Hoy revisando la cuenta de rapidshare veo que Hideflag, el parche extremadamente pequeño y sencillo que hiciera a fines de 2007 para remover el logo en pantalla de Vista Starter (un sistema operativo actualmente obsoleto) ha sobrepasado las 15.000 descargas.

Me queda claro que no fui el único al que le pareció agraviante semejante burla al consumidor.

jueves, mayo 27, 2010

Guano! y algunos más de Vitali

Hace algunos años, varios ciertamente, la televisión latinoamericana nos permitió disfrutar de un canal sensiblemente diferente al resto. Un canal de tv con una gráfica notable dedicado mayormente a la animación no tradicional. Animación experimental, si me permiten el término, y mucho antes de lo que fuera Adult Swim. Ese canal se denominó Locomotion y es uno de los que más se extrañan en la actualidad.
Entre serie y serie, durante las tandas comerciales, Locomotion supo incorporar cortos animados prácticamente desconocidos en la escena televisiva, entre los cuales figuraban Quinoscopio, una serie de seis películas cortas realizadas en Cuba por Juan Padrón y Mario García-Montes basadas en chistes y dibujos de Quino; y Guano!, unos breves cortos de humor enteramente bizarro realizados por el formidable Federico Vitali, que son el objeto de este post.

Guano! Episodes 11-18

Guano! Episodes 19-26



Vitali es también creador de la serie de hilarantes cortos Lava-Lava, de los cuales hay un buen número en Youtube.

Lava Lava 05 - Much a Quack about nothing (HQ)

Lava Lava 10 - Houston... We have a Problem (HQ)

Lava Lava - Pull me up! pull me down!



Vaya este post de un mero televidente a modo de homenaje por la dosis de humor de aquellas memorables tardes de animación, y mi enorme agradecimiento a quien pudo rescatar estos videos para publicarlos en Youtube.

sábado, abril 10, 2010

Redes sociales y núcleos de resistencia

En enchufa2.es hacen eco del provocador artículo Admito mi derrota por Juin, otro ex-perteneciente al grupo «Yo No Necesito un Facebook» que ha sido finalmente derrotado. Entre otros párrafos:

Las juventudes de nuestros abuelos están rodeadas de un halo de misticismo porque sólo tenemos una o dos fotos suyas en blanco y negro, y casi siempre de uniforme y posando. Nosotros estamos haciendo documentales completos de nuestra estupidez. Y como la superpoblación y la contaminación serán problemas serios en el futuro, nuestros nietos utilizarán nuestros perfiles de Facebook como prueba para aprobar la eutanasia obligatoria en el Parlamento Mundial de toda la “Generación FB”. La evidencia será tan abrumadora que no podremos ni protestar.

El artículo completo en Perspicalia.

martes, abril 06, 2010

Alabanza a la Wikipedia

¿Cómo definir en pocas palabras la inconmensurable fuente, corrijo: apuntador de conocimiento que es nuestra Wikipedia? Y digo nuestra porque no deja de ser de todos. Sin dejar de lado, por cierto, el catalejo que hoy es Internet, pudiendo alcanzar desde nuestra latitud las más lejanas reseñas.

Si es que por recomendación de un amigo comencé leyendo de Osvaldo Bayer, y tal cúmulo de información me permite llegar a “Los vengadores de la patagonia trágica” (más conocida por el film “La Patagonia Rebelde”), a Osvaldo Soriano, o a Rodolfo Walsh, todo en una noche de desvelo.

O posteriormente, desde El Hombre Mediocre, pueda saltar a la reseña biográfica de José Ingenieros, y mismo desde su obra, a Arístipo, a Diógenes Laercio (el historiador), a Diógenes (el más conocido), para luego releer el argumento del mal de Epicuro.

Para los que nos consideramos completos ignorantes, tal es mi caso, ¿qué otra invención más que Internet, y particularmente dentro de ella la Wikipedia, nos posibilita tal alcance?

martes, marzo 02, 2010

ata3: SRST failed (errno=-16)

Recientemente ingresó a la rama experimental de Debian el kernel 2.6.33, y aprovechando la novedad, uno de los cambios que recomiendan en la distribución es dejar los viejos drivers ide y comenzar a utilizar libata tanto para dispositivos Serial ATA (SATA) como Parallel ATA (PATA).

En la mayoría de los equipos en los que lo instalé, la transición a libata no me ha dado inconvenientes mayores más que los cambios de nombre en dispositivos (en discos, de /dev/hd* a /dev/sd*, y en dvd/cd de /dev/hd* a /dev/sr*), que normalmente no necesitan modificaciones por el usuario siempre que se utilicen etiquetas o uuid para identificar las particiones.

Sin embargo en el equipo de escritorio encontré que el arranque demoraba demasiado y devolvía errores tales como:
...
ata2: SATA link down (SStatus 0 SControl 300)
ata3: link is slow to respond, please be patient (ready=0)
ata3: SRST failed (errno=-16)
ata3: link is slow to respond, please be patient (ready=0)
ata3: SRST failed (errno=-16)
ata3: link is slow to respond, please be patient (ready=0)
ata3.01: link status unknown, clearing UNKNOWN to NONE
...
continuando luego con el inicio tradicional. En tales situaciones, utilizando libata, el sistema no reconocía la unidad de dvd. Utilizando los viejos drivers ide, sin embargo, el sistema iniciaba bien y la unidad era reconocida correctamente.

Algunos foristas recomiendan cambiar parámetros de kernel, como libata.dma y otros. Sin embargo, la única solución que me ha dado resultado fue establecer las unidades PATA en modo cable-select, como lo apuntan en el 2do post de este bug report de Ubuntu. Sólo eso basta para que el sistema inicie y detecte correctamente los dispositivos.

Curioso, cuanto menos.

domingo, febrero 14, 2010

Cliff Click's Crash Course in Modern Hardware

Esta presentación de Cliff Click se me había pasado, pero como la publicaron de vuelta en Slashdot, no quiero dejarla pasar otra vez.

En el JVM Languages Summit 2009, Cliff cuenta en forma amena y tocando temas de procesadores multinúcleo, ILP, pipelining y cachés, por qué la arquitectura Von Neumann ha pasado a ser una sobre-simplificación de los procesadores actuales, y cuales son los puntos clave a tener en cuenta en lo que respecta al rendimiento del código que se ejecuta. SPOILER: ya no interesa contar los ciclos por instrucción, todo se reduce a caché misses.

Las slides en InfoQ van al compás del video, una buena idea.

miércoles, febrero 03, 2010

tvtime + xmltv + tv_grab_ar.py

En lo que ha sido del año pasado he dedicado poco tiempo a la TV, tras advertir como se viene abajo la calidad de la programación (o como cada vez uno se pone más exquisito), me da menos ímpetu. Veo la "caja boba" por la PC, como todo el que quiere ahorrar espacio, mediante una pequeña y económica placa sintonizadora (Encore ENLTV-FM) que funciona muy bien en Linux, incluso con control remoto.

Tratando de encontrar alguna emisión como la gente por el canal de cable, hace unos meses me dediqué a hacer funcionar la información en pantalla de tvtime. Básicamente, tvtime obtiene la información de programación a partir de un archivo con formato estándar XMLTV, por lo que del lado del software de visualización está todo hecho, lo que falta es conseguir una fuente desde la cual obtener la información y entregársela de la forma adecuada (es decir, generar el archivo XML).

De eso se encargan los scripts del paquete xmltv-util. En particular, el script tv_grab_ar toma la información de mi proveedor de cable en argentina, amasa los datos y escupe un xml que se puede pasar directo a tvtime. Lamentablemente no logré hacer funcionar la versión 1.6 de tv_grab_ar tal cual viene en el paquete, y tras varios minutos haciendo debugging sobre las líneas decidí dejar de descifrar perl y comenzar a escribir un nuevo script en python.

Las primeras versiones fueron bastante sencillas, la librería BeautifulSoup lxml (BeautifulSoup ya no funciona correctamente) facilita mucho nadar en el HTML del sitio web de MC. En versiones siguientes añadí la posibilidad de descargar la reseña de cada programa de TV, una funcionalidad que según creo no estaba en el paquete original.

Básicamente los pasos son: obtener la grilla de programación de la semana actual para cada canal, y luego para cada programa obtener el título, horario, descripción, género, etc. Como la descarga de descripciones es muy tediosa y lenta (es como mínimo una petición HTTP por programa) y como muchas veces los programas se repiten (en la misma semana o entre semanas) aproveché el módulo pickle para almacenar el diccionario de emisiones entre invocaciones al script, agilizando de esta manera la actualización de los datos.

Finalmente terminé con este script que dejo en el blog por si a alguien le sirve. Las capturas de pantalla son un indicio de como tvtime presenta la información. Como siempre, cualquier consulta, sugerencia, crítica o mejora es bienvenida.

Descarga: tv_grab_ar.py [ver. 2015.03.02-1]

Últimos cambios: Fix sutil por problemas en la codificación de los títulos. Reincorporación del caché y de la descarga de descripciones de los shows. Sean pacientes pues la descarga ahora demora bastante más tiempo que antes. Si quieren la programación rápidamente, aunque no tenga las descripciones, usen --skip-descriptions. Como no tengo forma de probarlo localmente, Please Test & Give Feedback!



Instalación:
  1. Descargar tv_grab_ar.py y mover el archivo al directorio de tvtime:
    mv tv_grab_ar.py ~/.tvtime/tv_grab_ar.py

  2. Instalar la librería beautifulsoup:
    apt-get install python-beautifulsoup

  3. Instalar la librería python lxml:
    apt-get install python-lxml

  4. Ejecutar:
    ./tv_grab_ar.py --configure
    e indicar la zona y los canales para los cuales se desea obtener la información. El valor de zona determina la grilla de canales según la localidad.

  5. Ejecutar:
    ./tv_grab_ar.py --verbose --output=programacion.xml
    para obtener la programación y las descripciones de los programas. Este proceso demora varios minutos, sean pacientes.

  6. Iniciar tvtime e indicar que obtenga la programación desde el archivo:
    tvtime --xmltv=programacion.xml
Para finalizar, lo ideal es colocar en el cron de usuario una entrada para ejecutar la actualización al menos una vez por semana.



usage: tv_grab_ar.py [-h] [--days N] [--offset N] [--skip-descriptions]
                     [--output FILE] [--configure] [--config-file FILE]
                     [--quiet] [--verbose] [--list-channels] [--zone N]
                     [--capabilities] [--describe] [--description]
                     [--cache FILE] [--version]

Get Argentinian television listings in XMLTV format

optional arguments:
  -h, --help           show this help message and exit
  --days N             Grab N days. The default is 3.
  --offset N           Start N days in the future. The default is to start
                       from today.
  --skip-descriptions  Do not download program descriptions.
  --output FILE        Write to FILE rather than standard output.
  --configure          Prompt for which channels and write the configuration
                       file.
  --config-file FILE   Set the name of the configuration file, the default is
                       </home/maurom/.xmltv/tv_grab_ar.conf>. This is the file
                       written by --configure and read when grabbing.
  --quiet              Suppress the progress messages normally written to
                       standard error. [not implemented]
  --verbose            Display additional information.
  --list-channels      Display only the channel listing.
  --zone N             Override user location for retrieval of channels.
  --capabilities       Show which capabilities the grabber supports. For more
                       information, see
                       <http://wiki.xmltv.org/index.php/XmltvCapabilities>
  --describe           Show a brief description of the grabber.
  --description        Show a brief description of the grabber.
  --cache FILE         Cache description data in FILE. The default is 
                       </home/maurom/.xmltv/tv_grab_ar.db>.
  --version            show program's version number and exit