martes, agosto 27, 2013
Un vistazo a código de la demoscene '93
No, no me refiero a las versiones recortadas de programas o juegos que se dan con fines comerciales, nada de eso. En nuestro contexto también se denominan demos a ciertas presentaciones multimedia creadas por programadores y artistas como una forma de arte alternativo y como muestra de sus capacidades.
Cualquiera que vea una demo en funcionamiento podría confundirla simplemente con un videoclip medio bizarro que se reproduce en la PC. A simple vista parecería ser sólo eso. Sin embargo, el archivo que almacena ese “video”, por así decirlo, suele pesar apenas 64 kilobytes, o incluso menos, 4 kilobytes; y una de las características que más asombran es precisamente esa: ¿cómo logran “almacenar” este tipo de animaciones en un archivo tan pequeño?
El truco, en realidad, radica en que el video en sí (y la música, normalmente) no está contenido en el archivo binario, sino que el binario es un archivo que al ejecutarse genera completamente la animación, como una especie de “mueble autoensamblable”.
Además de este detalle, los programadores de demos buscan aprovechar al máximo las características del hardware para el cual están trabajando, logrando animaciones que en muchos casos son impensables de ver en esos limitados equipos.
Buena parte de estas demos son creadas por grupos multidisciplinarios denominados demogroups, cuyos miembros son muy buscados por los departamentos de recursos humanos de la industria de videojuegos, sea como programadores, artistas gráficos o músicos, e incluso figuran entre los participantes de la reconocida conferencia académica de gráficos por computadora SIGGRAPH.
El coder aancsiid resume en pocos párrafos “Qué es una demo”, y los artículos Demo (Computer_programming) y Demoscene en Wikipedia son buenos puntos de partida para acercarse a la historia y las particularidades de las demos, pero lo que no pueden dejar de conocer son los clásicos sitios Pouet.net y Scene.org, dedicados exclusivamente a las obras de esta subcultura.
De las que me han dejado con la mente en blanco recuerdo a heaven seven de exceed, fr-041:debris de farbrausch, elevated de rgba&tbc, chaos theory de conspiracy/cns, y las mas nuevas como agenda de fairlight, spin de asd.
Para que se den una idea, el ejecutable de heaven seven pesa 64 kilobytes, y logra todo esto ...
con sólo 64 kilobytes !!!... debris pesa 177 kilobytes, y la demo elevated pesa 4 kilobytes... Piensen que al día de hoy el código HTML de una página web pesa en promedio unos 52 kb, y una fotografía digital pesa por lo menos 3.000 kb. Esta gente logra toda una experiencia multimedia en apenas una fracción de eso... Pero no se queden con lo que les digo: si tienen una máquina a mano, bájense los binarios y ejecútenlos, para ver la realidad.
Cyberhades tiene también una buena lista de posts dedicados al tema, y precisamente es por ellos que me entero de que el grupo Future Crew ha dejado disponible el código fuente de la demo “Second Reality”, con motivo del 20 aniversario de su creación.
Y aquí repito: el CÓDIGO FUENTE DE LA DEMO. Piensen que, dadas las exepcionales secuencias gráficas que los demogroups eran capaces de generar en aquella época, los hacks que éstos utilizaban para lograrlas eran secretos muy bien protegidos que muchas veces definían los primeros puestos en las competencias internacionales (demoparties). Por ello, poder acceder al código completo de una, ver su estructura interna y descifrar su funcionamiento es un regalo que hay que agradecer.
Además de felicitar a Future Crew por su amplia trayectoria, merece mis respetos Fabien Sanglard al acercarnos esta maravilla a los mortales mediante un ilustrado análisis de los fuentes de Second Reality que, por caso, contienen código en Assembler, C y Pascal. Recordemos que Sanglard nos viene deleitando ya con la aproximación al código fuente detrás de Prince of Persia, Doom y Quake.
Me encantaría seguir charlando de demos, pero mejor que eso es sentarse a ver algunas por demoscene.tv, capped.tv, o mejor, ejecutándolas en vivo en la PC.
sábado, julio 06, 2013
Instalación de ipfw/dummynet en Debian Wheezy
¿dummynet? ¿qué es dummynet?
Según su sitio web: “dummynet es una herramienta de simulación de redes en vivo diseñada originalmente para probar protocolos de red, y que desde entonces se utiliza para una variedad de aplicaciones entre las que se incluye el manejo de ancho de banda. Simula/impone limitaciones de encolado y ancho de banda, retrasos, pérdida de paquetes y otros efectos. Implementa también varios algoritmos de planificación. dummynet puede utilizarse en el mismo equipo donde se ejecuta la aplicación a probar o en cajas externas que actúan como enrutadores o puentes.La selección de tráfico se realiza mediante el firewall ipfw, que es la interfaz de usuario principal para dummynet. ipfw permite seleccionar con precisión el tráfico y la dirección a trabajar, simplificando su configuración y uso.”
Para más información los dirijo al completo artículo Dummynet Revisited de los autores Marta Carbone y Luigi Rizzo.
Procedimiento
Con la colaboración de varios compañeros de trabajo surgió la siguiente receta para construirlo en Debian Wheezy (en este caso para amd64, pero es similar en i386). No es la única ni la mejor manera, pero es una que funciona. Si alguno encuentra una mejor, será bienvenida.- Bajar la versión de ipfw compatible con kernels 3.x (20130607 o superior) y descomprimirla
wget http://info.iet.unipi.it/~luigi/doc/20130607-ipfw3.tgz tar xvzf 20130607-ipfw3.tgz
- Instalar los paquetes necesarios para Debian
apt-get install build-essential linux-headers-`uname -r` \ linux-source-3.2
- Desempaquetar el código fuente completo del kernel linux. Esto requiere al menos 700 MB de espacio en disco libres, así que estén preparados.
cd /usr/src tar xvjf linux-source-3.2.tar.bz2
- Copiar la configuración del kernel que se está ejecutando y las versiones de los módulos instalados
cd /usr/src/linux-source-3.2 cp -v /boot/config-`uname -r` .config cp -v /usr/src/linux-headers-`uname -r`/Module.symvers .
- Preparar el entorno de compilación del kernel
cd /usr/src/linux-source-3.2 make prepare make scripts
- Compilar ipfw indicando la ruta a los fuentes del kernel
cd /ruta/a/ipfw3-2012 make KSRC=/usr/src/linux-source-3.2
- Si no tiró errores, probar la carga y descarga del modulo ipfw_mod
insmod kipfw-mod/ipfw_mod.ko dmesg rmmod ipfw_mod
- (Opcional) Instalar los binarios de ipfw y el modulo del kernel
mkdir /lib/modules/`uname -r`/updates cp -v kipfw-mod/ipfw_mod.ko /lib/modules/`uname -r`/updates depmod cp -v ipfw/ipfw /usr/local/sbin chmod +x /usr/local/sbin/ipfw
- (Opcional) Verificar la instalación del modulo y agregarlo para cada inicio del equipo
modprobe ipfw_mod dmesg echo ipfw_mod >> /etc/modules
- Listo!
Suerte y saludos!
jueves, julio 04, 2013
Renovando el escritorio
Así se ve el escritorio nuevo:
Software:
Debian GNU/Linux 7.1 (Wheezy, amd64)
Kernel 3.2.0-4-amd64 (3.2.46 en realidad)
Gnome 3.4.2 Classic (con iconos Gnome-Colors)
Hardware:
Intel Core i5-3470 @ 3.20 Ghz (quad)
Intel DZ68DB Motherboard
Intel Ivybridge Desktop HD2500 GPU
Memox 8 GB DDR3 RAM
Seagate Barracuda ST500DM002 (500 GB, 6Gb/s, 16Mb, 7200RPM)
viernes, marzo 15, 2013
SUBE no quiere Ubuntu(s)
Para (volverlos a) poner en contexto la tarjeta SUBE, o más bien el Sistema Único de Boleto Electrónico, es: "Un servicio para abonar con una sola tarjeta viajes en colectivos, subtes y trenes adheridos, en la Región Metropolitana de Buenos Aires."
Un excelente profesional, con el que tengo el gusto de compartir el trabajo diario, me remitió el siguiente correo:
Una curiosidad. Estando en casa, quise entrar en la página de la tarjeta SUBE para ver los viajes realizados (https://gestiones.sube.gob.ar/bienvenida.aspx), y me encontré con este mensaje de error:
No le presté demasiada atención en ese momento (será problema del sitio, me dije a mí mismo). Al día siguiente intenté nuevamente, con idéntico resultado. Pero oh sorpresa, con otro navegador (Chromium en vez de Firefox) sí pude ingresar.No contento con lo encontrado, se tomó unos minutos para seguir investigando:
Probé cambiarle el useragent al Firefox ¡y también pude ingresar! Y luego de un rato llegué a la conclusión de que lo que no le gusta al sitio es la palabra Ubuntu en el useragent del Firefox: quitándola, o reemplazándola por cualquier cosa como Windows, Suse, Debian o incluso la palabra 'basura', entra sin dramas.
Y corroboré ese hallazgo cambiando el useragent de chromium, agregándole la palabra Ubuntu. Ejecutando desde la línea de comandos $ chrome --user-agent="Mozilla/5.0 (X11; Ubuntu; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.619.0 Safari/534.16" tampoco me dejó ingresar.
Descubrí algo más. No es la palabra Ubuntu de por sí la que dispara el filtro, ya que lanzando el navegador con --user-agent="Ubuntu" también deja ingresar a la página para realizar gestiones.Ahora bien, ¿me puede explicar alguien qué tiene de malo Ubuntu como para que restrinjan ese sistema operativo en la plataforma del sistema SUBE? Como hemos visto, el error sólo ocurre con Ubuntu, con Debian funciona correctamente.
La cuestión parece ser "X11; Ubuntu"
Si uno suprime el X11, o si los cambia de lugar (por ej. "Ubuntu; X11"), también entra.
miércoles, marzo 06, 2013
Identificar sockets en uso en 3.. 2.. 1..
# netstat -tnappero debo decir que
# lsof -i -P +c 0 +Mresulta sumamente útil también.
Visto en alias.sh
martes, marzo 05, 2013
Drop Table Captcha
Justo a mí me viene a tocar...

Como mínimo, espero hayan implementado correctamente la validación de entradas.
miércoles, febrero 27, 2013
Gruhak Covers The Greatest Classic Rock Songs
El tema es que a mi juicio suenan bien, demasiado bien. Y como cuando alguna banda suena bien hay que compartirla, les dejo aquí algunos de los covers interesantes:
Gruhak Covers The Greatest Classic Rock Songs (Playlist)
Gruhak - Comfortably Numb (Pink Floyd)
Gruhak - Rock and Roll (Led Zeppelin)
Gruhak - The Seeker (The Who)
Gruhak - No Quarter (Led Zeppelin)
Los muchachos de Gruhak (así se llama la banda) también tienen, por supuesto, temas propios que largaron en el primer album el año pasado, así que si tienen tiempo dénse una vuelta por su web para escucharlos.
lunes, diciembre 17, 2012
Antipatrones de SQL
Bill Karwin ha ayudado a miles de personas a escribir mejor SQL y construir bases de datos relacionales más fuertes. Ahora él comparte su colección de antipatrones - los errores más comunes que ha identificado en esas miles de peticiones de ayuda.El libro al que me refiero es "SQL Antipatterns: Avoiding the Pitfalls of Database Programming" y a mi juicio debería ser de lectura obligada para que todo desarrollador que toca bases de datos conozca lo que NO debe hacer. Al menos en mi experiencia, he visto estos antipatrones implementados demasiadas veces.
Estas slides algo viejas, de la MySQL Conference & Expo 2009, les darán una idea de lo que trata el texto:
martes, diciembre 04, 2012
Trivia de enlaces en Linux: ls -l
. ├── bin ├── examples ├── pydasm │ └── build │ ├── lib.linux-x86_64-2.6 │ └── temp.linux-x86_64-2.6 └── rbdasm mauro@stereo:/usr/local/src/libdasm-1.5$ ls -la total 900 drwxr-xr-x 6 mauro mauro 4096 dic 15 2011 . drwxrwsr-x 5 root staff 4096 nov 29 12:04 .. drwxr-xr-x 2 mauro mauro 4096 ene 9 2006 bin drwxr-xr-x 2 mauro mauro 4096 dic 15 2011 examples -rw-r--r-- 1 mauro mauro 5558 dic 27 2007 HISTORY.txt -rw-r--r-- 1 mauro mauro 163894 dic 15 2011 libdasm.a -rw-r--r-- 1 mauro mauro 31201 feb 14 2006 libdasm.c -rw-r--r-- 1 mauro mauro 344 ene 9 2006 libdasm.def -rw-r--r-- 1 mauro mauro 17199 feb 21 2006 libdasm.h -rw-r--r-- 1 mauro mauro 162312 dic 15 2011 libdasm.o -rwxr-xr-x 1 mauro mauro 161338 dic 15 2011 libdasm.so -rw-r--r-- 1 mauro mauro 785 feb 21 2006 LIB.txt -rw-r--r-- 1 mauro mauro 605 ene 9 2006 Makefile -rw-r--r-- 1 mauro mauro 183 ene 9 2006 Makefile.msvc -rw-r--r-- 1 mauro mauro 283110 feb 21 2006 opcode_tables.h drwxr-xr-x 3 mauro mauro 4096 dic 15 2011 pydasm drwxr-xr-x 2 mauro mauro 4096 ene 11 2006 rbdasm -rw-r--r-- 1 mauro mauro 14460 feb 21 2006 README.txt -rw-r--r-- 1 mauro mauro 161 ene 9 2006 TODO.txt
Con el único fin de molestarles, acá van unas preguntas:
- ¿Qué representan los números de la segunda columna del listado?
- ¿Podría un archivo tener un número mayor a 1?
- ¿Por qué las entradas . (punto), .. (punto-punto) y pydasm (entre otras) tienen distintos números?
- ¿Mediante qué llamada a sistema (función, no comando) puede obtenerse ese valor?
- ¿Cuál es el campo relevante en la estructura obtenida por la llamada del punto anterior?
jueves, octubre 18, 2012
Esto pasó el fin de semana
Y gracias al usuario LeanHG en youtube lo podemos volver a vivir...
G3 - You really got me (The Kinks) [Luna Park 2012]
G3 - White Room (Cream) [Luna Park 2012]
G3 - Rockin' in the Free World (Neil Young) [Luna Park 2012]
Joe Satriani - Flying in a blue dream [Luna Park 2012]
Efectivamente, Steve Morse (act. Deep Purple), John Petrucci (act. Dream Theater) y Joe Satriani (act. Chickenfoot) dieron gala en una nueva edición del G3 en Argentina, acompañados por Dave LaRue, Mike Keneally, Jeff Campitelli y Mike Mangini, entre otros.
Dejo varias reviews del show así se dan una idea: El Acople, Clarín, Rock & Pop, y la de Fabio, obviamente.
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].



























