Software de Profiling

Buenas… leyendo este post sobre cómo se analizó el comportamiento a bajo nivel en el algoritmo de renderizado del Flash Player , me interesé sobre las herramientas que nombra y utiliza: Code Analyst de AMD (recomendado para hacer Profiling sobre micros AMD). VTune de Intel (ídem para Intel). En el caso del Code Analyst, está disponible para Linux y Windows (x86 y x86-64), y está disponible su código fuente (dice que es “open source”, no encontré bajo qué licencia). Estuve chusmeando las diapositivas estas, la verdad que me sorprendió gratamente que exista este tipo de herramienta (digo, que parece ser de calidad, además de abierta y gratuita). ...

June 15, 2007 · 2 min · mfernandez

Ubuntu GNU/Linux + Python en Rio Negro

Holas… Bueh, por fin puedo bloguear algo al respecto (tengo un ratito como para comentar algo), y además mi compañero de laburo Gabriel Patiño pudo escribir algo el fin de semana al respecto y yo puedo linkearlo. Fue un mes estresante, cansador… pero contentos por el deber cumplido de tener que realizar el software para el escrutinio provisorio de una provincia argentina, Río Negro. Fueron varios componentes desarrollados, en distintos entornos ( Apache/ CGI, Python + PyGTK + GTK, PostgreSQL, etc.), pero siempre sobre Ubuntu GNU/Linux. ...

May 30, 2007 · 2 min · mfernandez

Artículos de Python + Glade en Español

Para aquell@s gentes que están incursionando en el mundo de la programación, el lenguaje Python es ideal para aprender. Y es normal que las primeras cosas que se quieran hacer sean ventanas con botones, menúes y demás. GTK es una librería que permite hacer eso para varias plataformas, como Windows, Linux, Solaris y Mac OSX (con problemas de integración, pero funciona). Por último, Glade es un programa que sirve para crear las ventanas+botones+menúes+etc. de forma gráfica, “dibujando”, arrastrando y pegando componentes en una suerte de “vista de diseño” (al mejor estilo Visual Basic o Delphi). ...

April 9, 2007 · 1 min · mfernandez

Pensá bien la Solución al Problema!

En este post se puede ver cómo la mala elección de un algoritmo para una determinada tarea puede hacer que tu programa, por más que esté escrito en un lenguaje “rápido” como C, sea muuuy lento. Gracias Federico por tu constante laburo en el “tunning” de GTK. :-D Moralejas: Pensá bien qué vas a hacer antes de escribir. El algoritmo que elijas será determinante en la performance de tu programa; también es bueno saber (aunque sea someramente) qué hace “debajo del capó” tu lenguaje/framework/api/loquesea que haya debajo y que estés utilizando. Un mal algoritmo escrito en C es excesivamente lento comparado con un buen algoritmo escrito en Python, Perl o Ruby (lenguajes interpretados). Saludos! Marcelo ...

April 5, 2007 · 1 min · mfernandez

Parseo de Archivos Binarios y Bugs

Me parece interesante este post sobre la herramienta zzuf, ya que según esta pequeña muestra es muy común que el parseo de archivos binarios falle (cuelgue de la aplicación o error fatal) ante el menor cambio de algún byte. Me hace acordar cuando se hacían tests de la robustez de los navegadores web al hacer leer HTMLs “malos” a los navegadores. Exposing File Parsing Vulnerabilites Como reflexión, estaría bueno que haya algún equipo de Q&A dentro del mundo Open Source que tome aplicaciones y haga más “reportes” de este tipo. ...

January 22, 2007 · 1 min · mfernandez

Vi como editor de texto para notebooks

Este blog lo dice todo. Estoy muy de acuerdo con él, y aunque no tengo notebook, soy mucho más productivo escribiendo código Python con Vi que con cualquier otro editor convencional. Eso sí, cuesta aprenderlo, eh! (Yo era uno de ésos que lo defenestraba…. pero debo hacer un mea culpa y reivindicar al pobre Vi.) :-D Saludos Marcelo

January 6, 2007 · 1 min · mfernandez

SWT ahora se porta como un .jar

Hace un tiempo, basado en la experiencia que tuve y tengo haciendo soft con GUIs, al utilizar Java se me plantearon las dos alternativas serias que existen en el lenguaje: Swing y SWT. Si bien el tema es motivo de " guerra santa" permanente entre la gente que está a favor de Sun, Netbeans y por último, Swing contra la de IBM, Eclipse y SWT, yo probé un poquito de las dos. Me gustó más SWT, más que nada porque Swing se veía horrible y lento en Linux (y no me parece cambiar de SO por ese motivo). Así que, como el que tenía la decisión era yo, hice entre otras cosas chiquitas, un programita para enviar SMS a través de internet a los celulares de Argentina, Sonar. ...

December 18, 2006 · 3 min · mfernandez

Applets y LiveConnect en Firefox

Holas. Ultimamente estuve metiendo mano en un Applet de Java embebido en un Sistema Web, que entre otras cosas, lo que hacía era ejecutar lo siguiente: import java.applet.Applet; import netscape.javascript.JSException; import netscape.javascript.JSObject; public class imprimesecescape01 extends Applet { public void paint(Graphics g) { // .... código Java haciendo lo que hace el Applet ... // Al finalizar: try { JSObject jsobject = JSObject.getWindow(this); // windowClose es una función Javascript que // está en el HTML que sólo llama a window.close(); jsobject.call("windowClose", null); } catch(JSException jsexception) { g.drawString("caught JS: " + jsexception, 20, 20); } } } Es decir, este Applet utiliza las clases de LiveConnect del navegador para llamar a la función JavaScript windowClose() residente en el HTML, que a su vez llama a window.close(). Todo para que, una vez que se ejecutó el código del applet, se cierre la ventana. ...

November 24, 2006 · 2 min · mfernandez

Servidor de Logs Remotos - Syslog-ng

Syslog-ng es un demonio de syslog infinitamente más flexible que el syslog “común” (tomado de BSD). Permite aplicar filtros, clasificar de acuerdo a distintos orígenes y enviar a diferentes destinos los logs. Para gestionar un servidor de logs, es muy fácil. Sólo fue cuestión de leer esta guia y darle “apt-get install syslog-ng” y listo. Esto reemplaza al syslog anterior, pero la configuración del syslog-ng es la misma (en cuanto a funcionalidad, no en cuanto a sintaxis) que la de un debian recién instalado. ...

October 11, 2006 · 2 min · mfernandez

Escupiendo hojas en Linux

Holaaa! En estos últimos días de silencio bloguero me enganché en unos proyectos de desarrollo en Python (primero y por ahora) y el segundo (todavía no lo ví) en PHP. Lo primero que tuve que resolver fue hacer que una impresora Epson C67 imprimiese lo más rápido posible, y en modo gráfico (como para ponerlo en modo draft, mínimo). La gente había investigado dos opciones, una era abriendo el puerto /dev/usblp0 directamente, tratando de enviar la inicialización… miraron (y miré yo también) bastante código de CUPS, de sus filtros (en C)… tratando de entender el lenguaje EJL, cambiarlo a IEEE 1284.4 y después a ESCP/2… fue imposible. Hay muy poca documentación y lo máximo que se logró fue que tomara la hoja, pero nada más. Si alguien quiere documentación, acá tiene algo más. ...

September 17, 2006 · 3 min · mfernandez