viernes, septiembre 07, 2012
Creo haber viajado alguna vez
Desde ya, muchas gracias!
Actualización: 10/09/2012: Por fin apareció el botón en la pantalla de gestión! Gracias SUBEros!
lunes, agosto 27, 2012
Capusotto para (casi) todos
Ingenuo de mí, queriendo escuchar algo de buena música en el retorno de Peter Capusotto y sus Videos, a través de la Internete...
Como estaremos de complicados que hasta el logo del canal está en blanco y negro.
No, acá hay algo que definitivamente no anda bien.
Tres preguntas:
- Será porque soy un sacrílego que se conecta por Fibertel? (aunque por Speedy tampoco anda)
- Me tendría que haber conseguido un deco digital cuando estaban de moda, no?
- Me perdí un buen programa?
Igual, no se compara con Casero y el viejo Cha Cha Cha. Juzguen ustedes mismos...
Que épocas aquellas... sniff...
martes, agosto 21, 2012
Andá a la esquina a ver si llueve
¿Alguno me confirma si soy el único al que le pasa?
Graciasss
jueves, agosto 16, 2012
Settings de Trebuchet en MiniCM9
Por motivos que desconozco, teniendo los dos lanzadores instalados no es posible acceder a las opciones de configuración de Trebuchet, no se si se mambea el menú o qué, pero no aparecen donde deberían aparecer. Para colmo, la búsqueda en Google me da la sensación que no soy el único al que le pasa (ver forum.cyanogenmod.com y forum.xda-developers.com).
En cualquier caso, es posible salir del paso iniciando la configuración desde una terminal, para ello vamos al Android Terminal Emulator, y ejecutamos:
am start com.cyanogenmod.trebuchet/.preference.Preferences
Logrando el resultado que puede verse aquí:
Por cierto, estaba buscando cómo tomar una captura de pantalla y no advertí que era tan sencillo como elegir la opción en el menú que aparece pulsando Power. Tonto de mí.
martes, mayo 29, 2012
Software privativo: por qué es malo y por qué lo odio tanto
El tiempo me ha enseñado que evitar este tipo de software reduce en gran medida el estrés, algo más que beneficioso para la salud, pero sin embargo cada tanto caigo, o me cae, algún amigo con un problemilla en su máquina, y como todos sabemos eso es el dulce que nos mueve a los informáticos de corazón.
Esta vez la paciente fue una portátil con un Windows 7, un equipo razonable, un sistema operativo cuidado, con antivirus al día, pocas aplicaciones, ninguna de ellas trucha, uso esporádico, actualizado a la fecha. Bueno, casi hasta la fecha, porque precisamente las “Actualizaciones de Windows” se negaban a funcionar. ¿El error? Este:
En un castellano impecable: “Windows Update no puede buscar actualizaciones porque el servicio no se está ejecutando. Puede que tenga que reiniciar el equipo.”
Hasta ahora, solo un inconveniente menor. Vale decir que no había motivos para semejante advertencia: la semana anterior el sistema operativo se actualizó correctamente, el equipo andaba sin inconvenientes, no se instaló nada en el medio, se apagó correctamente, el chequeo con antivirus actualizado no encontró ninguna amenaza, y hoy muestra este mensaje. Lo que se dice, un error sacado de la galera.
Bueno, al menos nos da una punta por donde comenzar a investigar. Según el error, el servicio de Windows Update se encuentra detenido. ¡Elemental! Vamos al gestor de servicios y vemos que, efectivamente, el servicio Windows Update se encuentra...
Iniciado? Pero cómo, no era que...
Bueno, seguramente ha sido todo un malentendido, vamos a reiniciar el servicio e intentar de nuevo. Y procedemos a cumplir con la formalidad. De hecho, para hacerla completa y evitar cualquier interferencia casual vamos a reiniciar el ordenador para luego intentar bajar nuevamente las actualizaciones... así que, reboot de por medio...
Debe ser un problema temporal, probemos con otro reinicio, funcionará bien la próxima...
A esta altura la heurística del cerebro nos lleva de inmediato a preguntarnos: seremos los únicos a los que nos toca la nube con más rayos? no, no puede ser... y vamos como un disparo a consultarle en Google, repitiendo la frase como en la escuela primaria: “Windows Update no puede buscar actualizaciones porque el servicio no se está ejecutando.”. Google engulle nuestra consulta cual galletita de chocolate y nos devuelve foros, foros y más foros de gente que se desgarra las vestiduras por ese error. No somos los únicos, hay más como nosotros.
Y navegando por los foros, allí, iluminado por la luz de las estrellas, está el link con la solución, justo en el sitio de soporte de Microsoft. Un artículo titulado “¿Cómo se pueden restablecer los componentes de Windows Update?” Ohhh! toda la inmensidad se reduce a ese cartel azul que dice “Microsoft Fix It”: un extraordinario plan que nuestra empresa de confianza pone a disposición de sus apreciados clientes... “Fix It”, tan sencillo como un botón mágico que nos salva del hastío, de la oscuridad, y de los dolores de cabeza.
Asi que sin perder un segundo, damos clic al botón “Ejecutar ahora”, y luego “Acepto”, “Siguiente”, “Siguiente”, “Siguiente”, viendo una tenue barra de progreso hasta encontrar, ¡al fin!, que nuestro problema “ha sido corregido”.
O no, no ha sido corregido. Sigue igual. Igual que antes. Ni se ha inmutado:
Bueno, seamos optimistas, quizás ese parche no era el adecuado, quizás haya otro que lo resuelva. Probemos con este que parece similar: .
No che, tampoco funciona. El fix no fixea nada. Todo muy bonito y lleno de firuletes, pero a la hora de correr se queda en la gatera:
Siguiendo con la lectura doy con otro enlace que puede ser el santo grial de las Actualizaciones de Windows. Se titula “Herramienta de preparación para Windows 7 sistemas basados en x64 (KB947821)” y se describe como:
“Esta herramienta ha sido puesta a su disposición porque se ha detectado una incoherencia en el almacén de servicios de mantenimiento de Windows que podría impedir la correcta instalación de futuras actualizaciones, service packs y otro tipo de software.”Tan explicativo como ya nos tienen acostumbrados: una “incoherencia en el almacén de servicios de mantenimientos”, ¡pero que obvio! ¡quién lo hubiera dicho! Tan solo hay que bajar un parche de apenas... 340 MB... 340 megabytes por un Windows Update que no funciona. Un parche que pesa tanto o más que el instalador de Windows 98 tiene que arreglarlo todo: este problema y los que vaya a tener dentro de un año. Un parche de 340 megabytes tiene que arreglar TODOS los problemas.
no? NO.
Me hace acordar a una frase de la tira ECOL: “Mierda, mierda en estado puro.”
¿Que nos queda? Un poco más de lectura nos lleva a este post en el sitio de preguntas y respuestas de Microsoft, una especie de Yahoo Answers donde MVPs y usuarios intercambian sus miserias con el sistema operativo de las ventanitas.
La primera respuesta nos dice todo: “You are seeing the effects of a hijackware infection. Only the format & clean install will resolve the problem.” Y te lo dice un MVP con un montón de medallas, eh!
Ahhh, si me dieran un billete por cada vez que escucho eso... Verán, en el gremio informático es materia de todos los días que chantas que arreglan computadoras le achaquen los problemas a los virus. Ojo, en un cierto porcentaje es así, pero buena parte de ellos -los que degradan el oficio- aprovechan la ignorancia del cliente y le cargan al código malicioso todo aquello que ellos mismos no pueden resolver. Les suena...
- ¿Te anda lento el explorer? Ah, tenés un virus.
- ¿No abre facebook? Huy, un virus.
- ¿La impresora no toma las hojas? Zás, tenés un virus.
- ¿Se tapó el desagüe de la pileta? Que crees, un virus seguro!
- Una mancha y picazón en el brazo? Ah, tenés un virus.
- Dolor de estómago y malestar general? Que crees, un virus seguro!
No es una solución que me convenza, y evidentemente tampoco le convence al usuario j15Gatz quien, en la segunda respuesta y con buen pensamiento crítico, da la posta: apunta a un blog, que no pertenece a Windows ni a MSDN, donde sí está la solución:
Tres pasos sencillos:
- detener el servicio de Windows Update,
- eliminar el contenido de la carpeta C:\Windows\SoftwareDistribution\

- volver a iniciar el servicio.
A esto se enfrenta, sin saberlo, quien utiliza aplicaciones de código cerrado:
- no conoce la interacción entre componentes,
- no puede saber la causa de los problemas,
- el desarrollador le impide por todos los medios que efectúe un diagnóstico preciso -de hecho se lo prohíbe explícitamente-,
- debe confiar en “soluciones mágicas” sin fundamento ni asidero alguno,
- el soporte técnico es un pozo negro de tiempo y dinero desperdiciado,
- la informática ya no es determinística, el software falla por cualquier motivo y en cualquier momento, la máquina tiene vida propia...
lunes, abril 30, 2012
Viendo el streaming de TN, sin navegador web
Pero a mi juicio los reproductores basados en Flash son un atropello al navegante cuando existen muy buenos reproductores de video; tiene que haber una forma de ver el flujo de video en tiempo real, pasando por fuera del navegador.
Afortunadamente el usuario LeaN946 en el foro de TDT Latinoamérica nos brinda la respuesta adecuada: utilizando rtmpdump con algunos parámetros mágicos:
$ rtmpdump -r rtmp://stream.tn.com.ar/live/tn2 -a live/tn2 -y tnlive3 -W http://tn.com.ar/sites/all/themes/dozer/swf/cplayer/player.swf -p http://tn.com.ar/envivo/especiales | cvlc -
o bien
$ rtmpdump -r rtmp://stream.tn.com.ar/live -a live -y tnhd1 -W http://tn.com.ar/sites/all/themes/dozer/swf/cplayer/player.swf -p http://tn.com.ar/envivo/24hs | cvlc -
es posible arribar a esto:
El audio deja un poco que desear :( pero la imagen no está mal, no?
lunes, abril 09, 2012
FLISOL 2012 - Festival Latinoamericano de Instalación de Software Libre

El FLISOL se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.
El FLISOL 2012 se llevará a cabo el sábado 28 de abril. Por quinta? sexta? séptima? vez, el UNLUX organizara la actividad en la ciudad de Luján. La jornada está dirigida a todo público, sin importar el nivel de conocimientos técnicos que se posea, y comprenderá la instalación de software libre en los equipos que acerque el público, así como también habrá charlas de variado tenor.
Agendando...
- Fecha y Hora: 28 de abril de 2012, 12:00 hs.
- Lugar: Pabellón de aulas 400 -- Universidad Nacional de LujánVista en Google Maps -- Plano de la UNLu
- Organiza: Grupo de Usuarios de Software Libre de la UNLu www.unlux.com.ar
- La entrada es libre y gratuita, pero hay que registrarse!.
Recuerden que además, el sábado siguiente -5 de Mayo- tenemos ¡PyDay en la UNLu!
martes, marzo 27, 2012
Jornada de Python en Luján: PyDay Luján 2012
Durante el Python Day se darán pequeños cursos y charlas relacionadas a este lenguaje, creando un espacio en donde cualquier persona interesada pueda acercarse para preguntar, aprender y experimentar con
esta herramienta.
Python es un lenguaje moderno, sencillo de aprender pero muy poderoso en cuanto a la cantidad de aplicaciones en las que es usado profesional y académicamente: en sitios web, en juegos, aplicaciones de escritorio y en scripting en general, etc...
El publico al que nos dirigimos es de todos los niveles, pero estamos muy interesados en acercar Python a quienes solo lo conocen de oído o directamente no saben de que tipo de lenguaje se trata. Tendremos charlas
especiales para ellos.
Con esta misma invitación damos por iniciado el Call For Charlas; aquellos interesados ya pueden proponer nuevas charlas y son bienvenidos los colaboradores y empresas/entidades interesadas en participar y auspiciar la jornada.
Cualquier duda o consulta, el mail de contacto es pydaylujan@gmail.com
El encuentro se llevará a cabo en el pabellón 400 de la sede central de la UNLu http://www.unlux.com.ar/como-llegar/
La entrada libre y gratuita (previa inscripción web), ¡los esperamos!
jueves, marzo 01, 2012
Open Security Training, CS:APP y gPEFile
Finalizando las vacaciones, antes de reincorporarme al trabajo diario, dediqué unos días a seguir uno de los cursos de análisis de malware que tenía agendado desde hace tiempo, en este caso, el de Open Security Training.
La gente de OST provee el material, los ejemplos y los videos en línea para que uno vaya, a su tiempo, incorporando conocimientos repartidos en las siguientes clases:
Beginner Classes
- Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration
- The Life of Binaries
- Introduction to Network Forensics
- CTF Forensics
Intermediate Classes
- Intermediate Intel x86: Architecture, Assembly, Applications, & Alliteration
- Introduction to Software Exploits
Advanced Classes
La primera clase sirve como base para las siguientes y discurre sobre los conceptos iniciales, describe el hardware sobre el que se programa en lenguaje ensamblador, describe con varios ejemplos las instrucciones del lenguaje más comunes, y muestra cómo seguir la ejecución de un programa con en Windows con Visual Studio Debugger (u OllyDbg, que no es tan distinto) y en GNU/Linux con gdb. Como bien hace mención el instructor, con conocer algunas pocas instrucciones ya es posible leer la mayoría de los programas.
La clase finaliza dejando como tarea el análisis y la resolución del clásico ejercicio de "bomba binaria" de la asignatura Arquitectura de Computadores de la Carnegie Mellon University, la cual requiere conocer técnicas básicas de ingeniería inversa para progresar a traves de las diferentes fases de la bomba, dando las respuestas correctas y evitando "explotarla". Sin duda es un ejercicio que me ha entretenido mucho, me ha hecho pensar bastante, y que realmente debo recomendar como un buen inicio al arte de la ingeniería inversa.
Buscando información sobre el tema dí con el libro de cabecera de tal asignatura: Computer Systems: A Programmer's Perspective, cuya edición 2011 es altamente recomendable. Está escrito en un lenguaje claro pero detallado, con ejemplos concretos (casi diría “palpables”) para explicar las abstracciones de sistema, y con un amplio conjunto de ejercicios para realizar. El sitio web contiene algunas secciones de ejemplo que sirven como preview, así como también material adicional al texto en papel. En retrospectiva, es el libro que me tendrían que haber recomendado cuando cursé las materias de arquitectura.
La clase “The Life of Binaries” trata efectivamente sobre “la vida de los ejecutables”, desde su creación: parsing del código fuente, abstract syntax trees, estrategias de compilación, lenguajes intermedios, enlazado del binario final; hasta su carga en memoria por el loader del sistema operativo y posterior ejecución en el computador. Se dan descripciones detalladas sobre los formatos binarios Portable Executable (PE) de Windows y Executable and Linkable Format (ELF) de Linux. El recorrido por el formato PE y su estructura, basado en el trabajo realizado por Ero Carrera, es muy completo y esclarecedor. La clase abarca también algunas de las técnicas que de ocultamiento y hooking utilizadas comúnmente en el malware, cómo funcionan realmente los virus de computadora, y qué técnicas es posible utilizar fácilmente para brindar mayor seguridad a los binarios que se generan.
A partir de esta clase se me ocurrió aprovechar el excelente trabajo realizado por Carrera con la biblioteca pefile y desarrollar con python-gtk2 un visor de archivos PE para interfaz gráfica, inspirado en el utilizado en los videos de entrenamiento. Dejo algunas capturas de la primera versión que no da vergüenza mostrar. El código, como siempre, se puede descargar desde el link que sigue y las correcciones y sugerencias serán bienvenidas.
Descargar: gpefile.py (v0.19, 78 KB)
Último cambio: Agregado despliegue de recursos RT_BITMAP, RT_GROUP_CURSOR, RT_GROUP_ICON, RT_STRING, GIF y PNG.
Me queda pendiente continuar con las clases siguientes, en cuanto el tiempo me lo permita. A la gente detrás del proyecto de Open Security Training, mi sincero agradecimiento por la dedicación y por el material brindado generosamente a la comunidad.
jueves, febrero 16, 2012
Sin documentos
Evidentemente, o los desarrolladores de LibreOffice son fans de Los Rodríguez, o bien me ha mordido este bug [1,2,3].
jueves, octubre 20, 2011
Ciclo de charlas de Software Libre 2011
El Grupo de Usuarios de Software Libre de la Universidad Nacional de Luján (UNLUX) invita a toda la comunidad, profesionales e interesados en Tecnologías de la Información y la Computación al “Ciclo de charlas de Software Libre -- CDC SoL” edición 2011.
Este es un evento gratuito, abierto, de interés general, orientado a toda la comunidad y destinado a la difusión y capacitación en el cual expertos en diferentes áreas hablaran sobre temáticas del Software Libre. Habrá charlas técnicas e informativas, cuyos principios fundamentales son el fomento y la difusión del software libre tanto en el uso de herramientas cotidianas, como también para el desarrollo de modelos de negocio sustentables.
El CDC SoL 2011 se llevará a cabo el día 19 de noviembre de 2011 de 10 hs. a 18 hs. en la sede central de la Universidad Nacional de Luján.
Para obtener más información o registrarse como asistentes pueden dirigirse al sitio oficial cdcsol.unlux.com.ar o bien al correo organizacion@unlux.com.ar.
¡Esperamos contar con la participación de todos!
miércoles, octubre 12, 2011
Your browser matters nothing to me
"Your browser matters" dicen en Microsoft, porque en un montón de medios salieron a vitorear que publicaron con un sitio web que "analiza la seguridad que nos brinda nuestro navegador web".
Pfffff... Puro verso. Qué me dicen de esto?
Chromium 6.0 no está mal. Llega a puntuar 4/4 (el máximo) .
Prueben ejecutando:
$ chromium-browser --user-agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" http://www.yourbrowsermatters.org/
o bien
$ chrome --user-agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" http://www.yourbrowsermatters.org/
Your browser matters... Mentira, lo único que importa es el User-Agent.
jueves, octubre 06, 2011
miércoles, octubre 05, 2011
Bashismos
Esto surgió mientras un amigo depuraba un script de backup.
Supongamos que creamos un script denominado ./myscript con el contenido siguiente:
echo parametro1 es $1
echo parametro2 es $2
Y luego lo ejecutamos alternativamente con los intérpretes Dash y Bash:
mauro@yoda$ dash
$ . ./myscript
parametro1 es
parametro2 es
$ . ./myscript foo bar
parametro1 es
parametro2 esmauro@yoda$ bash
$ . ./myscript
parametro1 es
parametro2 es
$ . ./myscript foo bar
parametro1 es foo
parametro2 es bar
¿Se nota la diferencia?
Efectivamente, al utilizar el comando "." (dot o source) Dash no pasa ningún argumento al script, mientras Bash sí lo hace. ¿Bug o Feature? Según parece, es una implementación estricta del estándar POSIX. En cualquier caso, hasta que nos dimos cuenta, fue un dolor de cabeza.
jueves, septiembre 01, 2011
Random wallpaper changer
La semana pasada dediqué unos minutos a buscar algún software sencillo para rotar el fondo de pantalla aleatoriamente en GNOME, porque los que tengo ya me aburren, y se me ocurrió que ir rotándolos al inicio o cada cierto tiempo estaría piola. Lamentablemente no pude encontrar nada en Gnome que me permita indicar un directorio con imágenes y vaya cambiándolas cada tanto. Curiosamente XFCE sí lo tiene y si no me equivoco KDE también lo permite desde hace bastante.
El repositorio de Debian posee aplicaciones para cambiar el fondo de pantalla, pero no encontré ninguno que me satisfaga, sea porque no realiza rotación automática, porque no está disponible en la release estable, porque el método de funcionamiento es un tanto complejo para lo que hace, o bien porque requiere un montón de dependencias para funcionar (mono, anyone?).
Lo que pido es muy sencillo, dar una carpeta con archivos de imágenes, un tiempo de duración de cada fondo y listo, no más que eso; ni siquiera hace falta un diálogo de configuración. Como sé que, afortunadamente, los entornos de escritorio en Linux se llevan bien con la línea de comandos, no tardé mucho en encontrar la forma de cambiar el fondo de Gnome desde consola. Y de allí a cambiarlo automáticamente es un paso, por lo que terminé con un pequeño script en bash que denominé, en un alarde de creatividad, wallchanger, que no es sino una versión floreada de algo extremadamente sencillo:
#!/bin/sh
while true; do
CHOSEN=`find /usr/share/backgrounds -iname \*.jpg -print | shuf -n 1`
gconftool-2 -s -t string /desktop/gnome/background/picture_filename $CHOSEN
sleep 300 # 5 min
done
La versión completa soporta además algunos parámetros útiles tales como cambiar la carpeta de imágenes, el tiempo de presentación de cada una, o el entorno de escritorio sobre el cual realizar el cambio:
Usage: wallchanger [-g|-x] [-f FOLDER] [-o MODE] [-w NN] -g set GNOME wallpaper -x set XFCE wallpaper -f FOLDER choose from wallpapers in FOLDER -o MODE set wallpaper mode [scaled|zoom|centered|...] -w NN change wallpaper every NN seconds
Como siempre, por si a alguno le es útil, dejo el enlace de
descarga: wallchanger
martes, agosto 30, 2011
Waiting for /dev to be fully populated...
Desde hace algunos meses me venía mordiendo un bug extraño en la máquina de trabajo donde a partir del kernel linux 2.6.39 e incluyendo la versión 3.0.0 el sistema se bloqueaba al inicio (el clásico freeze on boot) justo después del mensaje
Waiting for /dev to be fully populated
Y luego de eso, nada. Curioso, ya que con 2.6.38 el arranque iba de lo más normal, además que el equipo es un clon de los más comunes:
Procesador: Intel(R) Pentium(R) D CPU 2.80GHz
Motherboard: Intel Corp. D102GGC2
VGA: ATI Technologies Inc RC410 [Radeon Xpress 200]
Memoria: 1 GB
Obviamente a esa altura del arranque no hay muchos dispositivos disponibles, por lo que logs como para diagnóstico no tenía ninguno, así que por un tiempo desistí la investigación y me mantuve con el 2.6.38, ya que había que trabajar.
Pero recientemente, aprovechando un día que llegué demasiado temprano, le dediqué unos minutos a este inconveniente que ya me tenía incómodo.
El primer sospechoso fue naturalmente udev, al fin y al cabo era el emisor del último mensaje que veía en pantalla. Diagnosticar problemas con udev es, digamos, un poco tedioso. Si leen el manual de udev encontrarán que en /etc/udev/udev.conf puede establecerse la variable udev_log en err, info o debug para definir la prioridad de los mensajes que serán mostrados en pantalla. Una vez hecho el cambio basta con reiniciar el equipo para ver los mensajes de información o diagnóstico correspondientes.
Desde ya es todo un pergamino de eventos el que va sucediendo en el arranque. Tantos eventos (y sin logging ni forma de recuperar los que ya pasaron) que me resultó imposible encontrar un patrón extraño o una pista siquiera de qué es lo que estaba sucediendo. Opté entonces por el clásico diagnóstico del pobre: conociendo dónde almacena udev las reglas (/lib/udev/rules.d/), fui desactivando las reglas y reiniciando el sistema tras cada cambio. Si el sistema continuaba el arranque luego del mensaje "Waiting for /dev ..." entonces las reglas activadas eran inocentes; si no, alguna de las reglas activadas es la culpable. En algunos inicios no tenía gráfica, en otros no tenía disco, y en la mayoría ni siquiera teclado.
Una especie de búsqueda dicotómica me llevó, en pocos reinicios, a encontrar el archivo presuntamente culpable: 80-drivers.rules. Incluso llegué a determinar que la línea responsable era la séptima. Sin embargo el avance no fue mucho, ya que esta línea carga un montón de módulos en el kernel entre los cuales estan los de teclado y ratón: se ampliaba la lista de sospechosos.
Hasta acá, apenas si moví un paso, pero al menos llegaba a arrancar y controlar el sistema mediante SSH. Entonces un gran compañero de laburo (hat tip a Leandro), iluminado por el conocimiento (o quizá cansado de mis improperios) me recomendó: "¿y si probás cargando los módulos que faltan, uno a uno?".
Entonces iniciamos el diagnóstico del pobre parte II. Haciendo un diff casero entre el lsmod del equipo iniciando con kernel 2.6.38 y uno iniciando con kernel 2.6.39 (sin 80-drivers.rules) llegamos a una lista de unos doce o quince módulos faltantes. Allí, tan cerca, login ssh y a probar cada uno de los módulos... pcspkr, evdev, psmouse, snd_hda_intel, todos cargaban bien... parport, fuse, ok... processor... chan! ahí se tildó todo.
AHA! El módulo processor! Pero ¿qué función cumple ese módulo? O mejor, ¿por qué sigue andando el sistema sin él?. Bueno, resulta que es el ACPI Processor Driver, que no es realmente necesario pero maneja cuestiones útiles tales como los estados de energía del procesador. Si lo recuerdan ACPI ya nos viene dando dolores de cabeza desde hace bastante.
Ya con esos datos, una búsqueda en Google reveló un dato fundamental, aunque se ve que no es nuevo: en ciertos equipos el sistema se cuelga a menos que uno cargue el módulo processor con el parámetro nocst=1.
Así que, de momento, agregué la línea
processor.nocst=1
a los parámetros de inicio del sistema y con eso estoy andando actualmente. ¿A qué se debe el bug? Ni idea, habría que hacer un bisect entre las versiones de kernel 2.6.38 y 2.6.39 para determinar cual es el commit jodido. En cualquier caso, queda como tarea para vacaciones...
martes, agosto 16, 2011
Livepass es una mierda
Me lo venía aguantando... Conocen el sitio de venta de entradas Livepass? No? Qué suerte que tienen! Yo lamentablemente lo conocí cuando intenté comprar entradas para el show de Roger Waters. Como un gran número de gente (llegó a trending topic en Twitter) encontré que no sólo es prácticamente imposible adquirir entradas por Internet, sino que por vía telefónica es más probable hablar con el rey de Francia a que te atienda algún operador de la empresa.
El sitio web se les cae a pedazos... evidentemente no han previsto y/o no tienen la más remota idea de como manejar un pico de tráfico... por si fuera poco está hecho con ASP en IIS, no me extrañaría que el backend sea una base de datos Access 2003... No sólo da time-outs y fallos a mitad de las transacciones; falla hasta el procesador de pagos (NPS, otro responsable del quilombo) incluso luego de haber cargado la tarjeta. Por si fuera barato el “cargo por servicio”, de qué servicio me están hablando?
Y si las caídas frecuentes no son suficiente escarnio, como medida “paliativa” se les ocurrió agregar una demora al ingreso:
Welcome! ... Ud (H)A ingresado ... (y la traducción?? y el corrector ortográfico??!!) Además de que la demora no es otra cosa que un meta refresh que actualiza la página cada 20 segundos, es decir, el equivalente a pasársela apretando F5 todo el día, nada de cola de espera por orden de llegada ni un control más efectivo, acá gana el que tiene la latencia más baja y los hue*os más grandes. Si llego a conseguir UNA entrada, obviamente voy al recital con una remera que diga en grande ME CAGO EN LIVEPASS, LA PRÓXIMA VENDAN ENTRADAS PARA CARAMELITO.
Para colmo de males, a la mediatarde surge en twitter un detalle de la página de la empresa. Un video con el título “NO ANDA NADA WANDA NARA” y un enlace al video de Anonymous. Inside joke? I hope so! Pero que oportuno, me deja mucho más tranquilo saber que es una empresa que protege los datos de sus clientes igual que protege a su (paupérrima) infraestructura...
Update: parece que algunos usuarios han encontrado una mejor forma de expresar su cariño. Tienen todo mi apoyo.
Contra esto hay que quejarse. Informen de esta falta de respeto a la gente del show (help@rogerwaters.com / tickets@rogerwaters.com) que responden personalmente y a Defensa del Consumidor. Update: también recomiendan publicar su experiencia en tema abierto en el foro del artista e informarse sobre como denunciar estos abusos en Protectora.org.ar. Otro más: los que quieran saber hasta donde llega la estafa, lean este excelente (e indignante a la vez) post en T!.
En resumen, si quieren aprender cómo se hace una venta por internet para el orto, aprendan de Livepass. En el remoto caso de que algún productor de espectáculos llegue a leer este post, por favor le pido encarecidamente que evite contratar a esta empresa de novatos.
PD: me hicieron calentar... y no es que los demás sean mejores eh. He tenido dolores de cabeza similares con TicketPortal, Ticketek, EntradaPlus, y demás... todos tienen sistemas de venta hechos por los amiguitos de mi sobrino de 6 años. Aprendan a laburar, inútiles!
lunes, agosto 15, 2011
Sobre el bloqueo a leakymails
A ver si alguno me puede aclarar algo... desde mi ignorancia puedo pensar en algunas formas de bloquear un sitio web, Uds. me podrán iluminar con muchas más:
1) bloquear la resolución DNS del nombre de dominio, lo que requiere que todos los servidores DNS de ISP de la Argentina deniegen tal solicitud, por lo que bastaría con apuntar los resolvers a los de OpenDNS u Google (8.8.8.8) para zafar.
2) bloquear el acceso a la dirección IP que hostea el sitio, que fue el *moco* que se mandó Telecom, bloqueando a su vez el acceso a buena parte de blogspot.com y,peor aún, mail-attachment.googleusercontent.com (que es desde donde gmail descarga los adjuntos)... Sí, señora, por eso Ud. no pudo bajar las fotos de su nieta estos días.
3) bloquear el acceso según la URL que aparece en la cabecera HTTP de cada paquete dirigido al puerto 80. Lo que implica que todo ISP de la Argentina tendrá que analizar cada una de las cabeceras de capa de aplicación de cada uno de los paquetillos que pasen por su red, por si registrar los sitios que visitamos y "caparnos" la velocidad no fuera agravio suficiente.
Ahora, y es mi opinión.. hay que ser muy bol^Wignorante para "DECRETAR PREVENTIVAMENTE el bloqueo por parte de los proveedores locales de servicios de Internet en el acceso..." sin tener la menor idea de cómo funciona la red por debajo. Cualquiera de estos métodos es un engorro para todo ISP, además que pueden aparecer mirrors del sitio cada dos días y medio, y así van a seguir jugando al gato y al ratón.
Pero aún así, es mayor el abuso del que estamos siendo víctimas los usuarios finales con este tipo de decisiones chabacanas. Este fallo ya ha sentado precedencia, y de esto a bloquear cualquier otro sitio por el motivo que se le cante a alguno de los del tope de la pirámide hay, lamento decirlo, pocas teclas de distancia.
Fíjense que acá no hablo siquiera del contenido del sitio, que para el caso podría haber sido de correos verdaderos, apócrifos, o de recetas de cocina tailandesa.
martes, junio 07, 2011
Reiniciando [rebooting]
Matthew Garrett es un biólogo (ahá) y reconocido hacker de Linux que lidia normalmente con complejas cuestiones de bajo nivel, pegadas al hardware, tales como ACPI, EFI, power management, y otras, que normalmente publica sus desventuras en el campo digital en un blog en livejournal. Muchos de sus artículos me han resultado realmente sorprendentes en cuanto a los intrincados detalles que pueblan los componentes de hardware desarrollados por diversos fabricantes.
Esta última semana publicó un artículo sobre el sencillo problema de cómo reiniciar correctamente una computadora. Me he tomado la libertad de traducir mejor dicho, interpretar ilegalmente, el post en cuestión. Para aquellos que se sientan cómodos con el inglés, les recomiendo el artículo original.
Reiniciando
Se podría pensar que es fácil reiniciar una PC, ¿no? Pero también podría pensarse que es fácil convencer a la gente de que al menos hacer un esfuerzo para ser amable con los demás es una propuesta de beneficio mutuo, y miren lo bien que nos ha funcionado.
Linux tiene un montón de maneras diferentes de reiniciar un sistema x86. Algunas de ellas son exclusivas para 32 bits y por eso las voy a ignorar porque, honestamente, que estás haciendo de tu vida [si estás trabajando en 32 bits]. Además, son horribles. Entonces, esto nos deja con cinco de ellas:
- kbd - reiniciar a través del controlador de teclado. La IBM PC original tenía la línea [el cable] de reinicio de la CPU asociada a la controladora del teclado. Escribiendo la apropiada cantidad mágica de pulsos en la línea y la máquina se reinicia. Todo esto es muy sencillo, salvo por el hecho de que las máquinas modernas no tienen controladores de teclado (en realidad son parte del controlador embebido) e incluso las máquinas más modernas ni siquiera pretenden tener un controlador de teclado. Ahora, los controladores embebidos ejecutan software. Y, como todos sabemos, el software es terrible. Pero, aún peor, el software del controlador embebido está escrito por autores de BIOS. Así que claramente cualquier pretensión de que esto funcione es una especie de ficción complicada. Algunas máquinas son muy exigentes con el hardware, exigiendo que esté en el estado exacto que Windows lo programaría. Algunas máquinas funcionan 9 de cada 10 veces y luego se bloquean debido a algún raro problema de temporización. Y otras simplemente no funcionan en absoluto. ¡Hurra!
- triple - intentar generar una falla triple. Esto se realiza cargando una tabla vacía como vector de interrupciones, y luego llamando a int(3). Falla la interrupción (no hay IDT), falla el manejador de fallos (no hay IDT) y la CPU entra en un estado que debería, en teoría, desencadenar un reinicio. Salvo que no parece haber un requerimiento de que esto suceda, y esto simplemente no funciona en un montón de máquinas.
- pci - en realidad no pci. Tradicionalmente, el acceso al espacio de configuración PCI se logra escribiendo un valor de 32 bits al puerto io 0xcf8 para identificar el bus, el dispositivo, la función y el registro de configuración. El puerto 0xcfc luego contiene el [valor del] registro en cuestión. Pero si se escribe el par apropiado de valores mágicos en 0xcf9, la máquina se reiniciará. Espectacular! Y no estandarizado de ninguna manera (ciertamente no es parte de la especificación PCI), por lo que chipsets diferentes pueden tener diferentes requisitos. Booo.
- efi - Los servicios EFI en tiempo de ejecución proporcionan un punto de entrada para reiniciar la máquina. Incluso a veces funciona! Siempre y cuando los servicios de tiempo de ejecución EFI estén funcionando, lo que puede ser una exageración.
- acpi - Las versiones recientes de la especificación ACPI permiten especificar una dirección (por lo general en espacio de memoria o E/S de sistema) y un valor a escribir ahí. La idea es que escribir el valor a la dirección reinicia el sistema. Resulta que eso, a menudo, falla. También es imposible representar el método de reinicio PCI a través de ACPI, porque el método de reinicio PCI requiere un par de valores y ACPI sólo da uno.
Ahora, debo admitir que esto suena bastante deprimente. Pero la gente claramente vende computadoras con la expectativa de que van a reiniciarse correctamente, entonces ¿qué es lo que pasa?
Hace un tiempo hice algunas pruebas con Windows corriendo sobre qemu. Esta es una buena manera de evaluar el comportamiento del sistema operativo, porque uno tiene el control completo de lo que se entrega al sistema operativo y lo que el sistema operativo trata de hacer con el hardware. Y lo que descubrí fue un poco sorprendente. En ausencia de un vector de reinicio ACPI, Windows utiliza el controlador del teclado, espera un momento, lo intenta de nuevo y luego abandona. Si existe un vector de reinicio ACPI, Windows lo utiliza, luego prueba con el controlador del teclado, luego vuelve a utilizar el vector ACPI y prueba el controlador del teclado una vez más.
Esto resulta ser importante. Lo primero que significa es que genera dos escrituras en el vector ACPI de reinicio el sistema. El segundo es que deja un espacio entre ellas mientras toquetea el controlador de teclado. Y, sorprendentemente, resulta que en la mayoría de los sistemas el vector de reinicio ACPI apunta a 0xcf9 en el espacio de E/S del sistema. Incluso cuando la mayoría de las implementaciones nominalmente requieren escribir dos valores distintos, parece que este no es un requisito estricto y el método ACPI funciona.
[La versión del kernel Linux] 3.0 incluirá este comportamiento por defecto. Hace que varias máquinas funcionen (algunas Apple, por ejemplo), mejora las cosas en otras (algunas Thinkpad parecen quedarse tiesas durante largos períodos de tiempo, de otra manera) y con un poco de suerte evitará la necesidad de añadir más peculiaridades específicos al código de reinicio. Todavía hay algunas divergencias entre nosotros y Windows (mayormente en cuán seguido escribimos en el controlador de teclado), que se puede limpiar si resulta que hace alguna diferencia en cualquier lugar.
Ahora. De vuelta a los bugs de EFI.
- mjg59
lunes, marzo 28, 2011
El negocio de la mentira
Lo que más me fascina del tema, sin embargo, es este fenómeno de “profesionalización de la corrupción”, donde no estamos hablando ya de un mero trato secreto sino de una asignatura que se estudia y se perfecciona en los niveles académicos (algo de esto verán más adelante).
Ya he tocado el tema del colapso financiero en post de años anteriores, incluso con algo de humor. Un documental relevante y muy iluminador, que lamentablemente olvidé de mencionar en este blog, es The Smartests Guys in the Room, sobre el ascenso y la estrepitosa caída de la empresa de energía Enron en 2001, que si bien no está relacionado directamente con la crisis de las subprime, presenta las bases del modo de actuar de estos “hábiles empresarios neoyorquinos”.
El último material que pasó por mis manos, gracias a este post en Kriptópolis, es el documental Inside Job de Charles H. Ferguson. En Inside Job se tocan temas tales como la desregulación de la pseudoindustria financiera, el fraude en los libros de las empresas y del gobierno, el auge y la crisis de los préstamos hipotecarios, las vista gorda y las lavadas de mano de las agencias calificadoras, el posterior rescate financiero, los grotescos montos de dinero repartidos por la pirámide financiera, la estúpida indulgencia para con los grandes bancos y sus directivos, la influencia de las empresas en la academia y en la investigación económica (si me permiten la expresión), y la obscena (y continua) manipulación de las instituciones públicas. Temas que, como habría de suponer, no se han resuelto y decididamente no se resolverán.
De todas formas asustarse de las tramoyas y de la desidia/inescrupulosidad extranjera es casi una anécdota cuando tenemos las locales que están a la vista de todos y sobre las cuales también se hace poco y nada (salvo que nos pongamos de acuerdo en el corto plazo, algo que tampoco va a ocurrir).
Les dejo el trailer, como para que vayan tomando una idea de lo que se trata. El documental completo lo pueden encontrar subtitulado en línea con San Google.
Como siempre, recomiendo tomar estos materiales con cierta sospecha y en lo posible ir a las fuentes para comprobar la veracidad. Aún así, el film no tiene desperdicio.






























