Una lección de grandeza


Hoy me lleve 2 sorpresas con gmail.

La primera fue ver que el fabuloso sistema de vista previa de attacments hace que puedas embeber una forma (formulario es incorrecto en mi opinion) dentro de un mensaje sin problemas ! chidisimo no ?

Que tal si se nos ocurre ademas de todo meterle un poco de javascript, sacar una alerta (o cualquier otra cosa que se nos ocurra), pues resulta que acueductamente tienen un sistema de filtros que embebe una funcion como esta :

onsubmit="return window.confirm('You are submitting information to an external page.\\nAre you sure?');"

directamente a la forma (<form … >). Y como es de esperarse, si tratas de sobreescribir esa funcion pues simplemente la elimina y usa la suya ! obviamente no funciona con links tampoco (onclick, onmouseover…).

JA! por ahi no es trivial meter XSS 🙂 chale !, y ademas degrada elegantemente, la forma si se puede mandar !



Web 2.1


Este es uno de esos casos en los que dices: “Porque no se me ocurrio a mi primero!”

No, no se trata de la idea de el transporte asincrono de javascript y xml ! no !!

Se trata de una técnica para evitar el uso de los molestos tags <blink>, que ni son estandar, ni son bonitas como usar AJAX!! para hacer parpadear un texto!!

Si no eres geek, y no sabes de html y javascript esto no te va a causar ninguna gracia, pero a mi me saco carcajadas un rato.

Me pregunto si se vera muy ridiculo que porte el codigo usando dojo !



Como llamar la atencion al máximo


Como tengo que relajarme antes de empezar la semana, aqui va mi primera nota de ésta !

Si quieres llamar la atención la mejor manera es ser candidato de cualquier partido político a la presidencia, no cabe duda que causan polémica, y se habla de ellos en todos lados.

Pero si de verdad quieres llamar la atención !!! neto, en serio, o sea mejor no se puede !! pues ya valiste, porque el peje nos ganó ese lugar, y esta dificil que nazcamos encarnados en él !! prrrr

Es que de verdad no doy crédito, desde personas como mi amigo Kwame, hasta todos los grandes medios, no dejan de hablar de él, la mayoria últimamente esta obsesionada por demostrar que el peje es pendejo (digo, casi una vez a la semana cierto investigador que además fue una vez mi asesor en el ccf de la unam manda un mensaje en contra del peje) y casi cualquier bloggero mete una nota por ahi como yo !

Y ahora para mi asombro, hasta en la lista de [email protected] cierto persojane nos invita amablemente a votar por el peje porque el si va a apoyar el SL !! jojojojo, habrase visto.

Bueno, afortunadamente yo no tengo que votar por nadie para que se me permita usar el SL, digo, se necesita solo un poco de cabeza y argumentos para convencer a cualquier jefe de que eres mas productivo usando SL y con eso tienes !

En fin, lástima que el peje ya nació, porque estoy seguro que mas de uno quisiera estar en sus zapatos actualmente.

Gracias México por darnos lo que nos merecemos !!



De porque soy mal programador, y porque me gusta asi


Yo nunca recibi una educacion formal para programar, como muchos empeze con basic, y macros en hojas electrónicas por alla de finales de los 80’s, luego tuve una crisis de computo porque deje de usarlas durante los primero 4 años de estudiar QB, luego en la tesis volvi a usarlas, no mucho, pero fue cuando de plano ya sabia que eso de manejar tubitos en el laboratorio NO ME GUSTABA! y que queria estudiar quimica teorica, asi que me avente 8 años de doctorado haciendo simulaciones de Monte Carlo y Química Cuántica, y para mi fortuna, o astutamente se me ocurrio meterme mucho mas a la administración de unix, luego de linux, luego a programar web solo por hobbie, y resulto que al final soy pasante de dr, estoy tratando de terminar de escribir la tesis, y ya tengo mas de 1 año trabajando de programador y administrador de servidores.

Bueno, mucho por el royo historico, lo que realmente quiero exponer aqui es mi idea de como hacer una interfase sencilla y pequeña para obtener renglones de una base de datos de manera sencilla, y probablemente un poco limitada porque esta hecha para el blog que tengo en garaged.homeip.net, y como usa smarty es bastante particular. Cabe hacer notar que uso ADODB como intefase a la base de datos, asi que mucho del trabajo sucio ya esta escrito fuera de mi codigo 🙂

Esto ya lo habia hecho antes, en ratos los ratos de ocio las últimas semanas que trabaje en TMZ, pero la verdad no recuerdo exactamente como lo hice, y es mejor asi :), pero es muy similar a lo que hago ahora.

Sin diseño, se me ocurrio lo siguiente:
Una simple clase que maneja un “record set”, y tiene 2 metodos, uno para sacar 1 renglon, y otro para sacar todos los renglones de un solo golpe. El segundo metodo depende del primero. En realidad esto esta basado en lo que se hace en base pero en base es mucho mas complicado, y hay ciertas partes que no me gustan de como esta escrita la interfase a la BD. El defecto es que mi primera idea no estaba muy bien sentada, de hecho me dio hueva hacer un diagrama UML, asi que me lo avente nomas de coco (la vez anterior tampoco me sirvio de mucho lo del UML, no logro sacarle suficiente provecho a la planeacion ! jaja, los patrones los encuentro en la implementacion). Aqui esta el codigo:
<?php
class FetchUtil {
    var 
$row;
    var 
$DB_type;
    function 
FetchUtil (&$id){
        
$this->row $id;
    }
    function 
FetchRow(){
        if (!
$this->row->EOF){
            
$temp $this->row->fields;
            
$this->row->MoveNext();
            return 
$temp;
        } else {
            return 
false;
        }
    }
    function 
FetchAll(){
        
$rs $this->FetchRow();
        while (
$rs){
            
$rows[] = $this->FetchRow();
            
$rs $this->FetchRow();
        }
        return 
$rows
    }
}
function 
FetchAll($query){
    global 
$db;
    
$sql $db->execute($query) or die ($db->errormsg);
    
$rs = new FetchUtil($sql);
    
$rows $rs->FetchAll();
    return 
$rows;
}
function 
FetchOne($query){
    global 
$db;
    
$sql $db->execute($query) or die ($db->errormsg);
    
$rs = new FetchUtil($sql);
    
$rows $rs->FetchRow();
    return 
$rows;
}

Como se puede ver esta implementación no es particularmente buena, porque la condenada clase no hace casi nada por si sola, solo hay 2 métodos mas o menos útiles. No conforme estoy usando 2 funciones para parchar mi falta de pericia al programar !

Que necesito hacer ? acercarme más a tener realmente una sola clase que sirva como interfase a la base de datos, y que contenga un método como el FetchAll que realmente devuelva los renglones con simplemente pasarle la cadena del “query” correspondiente. No quiero tener que usar ninguna función extra para “ayudarle” a la clase.

El resultado de mis siguientes 5 minutos (la nota me tomo como 1 hora!) de analisis me llevaron a esto:

<?php
class FetchUtil {
    
/* This class is everything a smarty using php project needs
     */
    
var $row;
    var 
$DB_type;
    var 
$DB
    function 
FetchUtil($dsn){
        
$this->DB NewADOConnection($dsn);
        if ( !
$this->DB ) die(“Coneccion fallida – $dsn”);
        
$this->DB->SetFetchMode(ADODB_FETCH_ASSOC);
    }
    function 
Execute($query){
        
$this->row  $this->DB->Execute($query) or die ($this->DB->errormsg());
    }
    function 
FetchAll($query){
        
/* It returns 1 dimension bigger arrays for 1 row, but 
         * helps lowering the methods in this class
         */
        
$rs = Array();
        
$this->Execute($query);
        while(!
$this->row->EOF){
            
$temp[] = $this->row->fields;
            
$this->row->MoveNext();
        } 
        return 
$temp
    }
}

De esta manera simplemente mandando una cadena al constructor de esta manera:


$dsn = "$data_base://$user:$passwd@$host/$db_name";
$db = new FetchUtil($dsn);


creo un objeto que es capaz por si mismo de ejecutar un query, devolverme los renglones, y darme información relevante en caso de cualquier error sin tener que duplicar codigo para ninguna de esas tareas, y usando una sola clase ! sin funciones auxiliares ! y en poco mas de 20 lineas !

Si ya se, lección numero 1 de programacion orientada a objetos, degraciadamente yo no fuí a esa clase, no estaba en mi plan de estudios 🙂

Que gano con esto ?, pues uso ADODB por si alguna vez la portabilidad es importante, uno nunca sabe !, utilizo una sola clase que hace practicamente todo el trabajo con ADODB por detras: conexión, manejo de errores, ejecusion de queries, regreso de renglones como arreglo asociativo

Es o no bonito reutilizar codigo ?? gracias por leer, espero que no te hayas saltado gran parte de lo que estaba arriba solo para leer este párrafo.



Aplicaciones Remotas !



Hace unos 7 años que cierta compañia monopólica que todos odian y de la que todos usan productos tenia la vision de que las aplicaciones no tenian necesariamente que estar ligadas a una instalación, y prometieron el sueño guajiro de que nos iban a impactar con su “renta de software” que no seria instalado en tu maquina, sino ejecutado por red.

Pues mucho se ha soñado, y de cierta manera mucho se ha logrado, en vez de esa idea estupida, se crearon las aplicaciones de escritorio remoto, como VNC y todas sus variantes. Sun hace mucho que empezo la guerra contra M$ (ahhh !! lo dije), y openoffices es hoy en dia una aplicacion muy reconocida y totalmente gratuita, aunque sun sigue con su aplicacion propietaria tambien.

Tambien se ha hablado de que google quiere entrarle al sueño, y por cierto hace unos meses se alió con sun, y probablemente esto tenga algo que ver con esa alianza, o probablemente no, pero lo cierto es que el hecho de tener en mi navegador una ventana de cualquiera de las aplicaciones que se ven en el menu es un exito, no por el hecho de que no se ha visto, sino porque es gratuito, no instalas mas que el applet java que se baja, y corre bastante bien todo (bueno, suficientemente bien para la slashdoteada que le dieron ayer).

Mis respetos para sun, no pudrieron seguir como cabeza del mercado de servers, pero han seguido desarrollando mucho de todo lo que hacen abierto y para la comunidad.

Bien por sun, esperemos la respuesta de google, y la de M$ !! jojo



Libertad de Expresion, Censura, Libertad Real


Mucho se habla en todos lados de la libertad de expresión, los medios en especial están siempre hablando, y muchas veces quejandose de la censura, y pocas veces vemos manifestaciones fuertes en contra de la opresión en estos y otros aspectos que afectan la libertad de todos.

Qué vemos en México ? realmente tenemos un interés de mejorar nuestra posición social, independientemente de como esten otros paises !

Hace rato leí una nota en slashdot sobre el arresto de un hacker simpatizante de al-Qaeda que supuestamente estaba planeando un ataque con bombas, digo supuestamente por la poca credibilidad que tiene el gobierno gringo, no porque dude que sea posible. Leyendo la nota y sus comentarios me vinieron recuerdos a la mente de cuanto se habla de la libertad de expresión, de que la censura daña, de que “somos libres”, y que poco interes real tiene la sociedad (mundial) en estos temas.

El hablar de un tema demuestra que te gusta discutirlo, pero no necesariamente demuestra que estes dispuesto a hacer algo para defender tu punto mas alla de la discusion. Lo destacable para mi es: Por qué muy pocos estan dispuestos a hacer valer sus derechos, y creencias? Por qué solo los fundamentalistas o los fanáticos son los que tratan de imponer sus ideas y hacerlas valer ? Por qué solo tenemos luchas inútiles (fanáticos del futbol por ejemplo), y guerras por intereses económicos familiares (como las que hacen los bush) y no tenemos ni un solo movimiento social que promueva una real democracia y una real libertad en todos los sentidos ??

Ojala que la dichosa marcha de todas las marchas sirva de algo, y ojalá que los mexicanos que seguimos en el pais empecemos a desechar politicos inutiles, y empecemos a exigir valores en el gobierno, y no babosadas (por respeto a quien pueda leer esto) como las que va a hacer seguramente nuestro siguiente presidente, justo como las del actual. (Nota: esta hecha por los que se fueron del pais, y les interesa algo que no nos perjudica a los que estamos en el ! algun patrón de conducta ?)

Poco tiene que ver leer de un hacker terrorista con lo que estoy escribiendo aparentemente, pero las raices de los problemas te Iraq, y muchos otros lugares vienen de lo mismo, parte del fundamentalismo retrogrado de muchos gobiernos medio orientales, y parte en que se aprovechan de la estupidez de la gente para aprovecharse economicamente de la situacion, y de pasada despertar la codicia de USA. Pocos pueden argumentar algo creible en pro de la guerra de Iraq, asi como fue ridicula la del golfo, y por mas que querramos aparentar que México no es como USA, en lo unico que no nos parecemos es en que no tenemos dinero, porque nuestros politicos son tan estupidos como los de alla (comparar Fox<->Bush), y hay tan poca libertad de expresion en USA como en México, los medios dicen puras babosadas, hubo un tiempo en el que TV azteca trataba de aparentar que eran sinceros, pero eso duro unos 5 años a lo mas, ahora son lo mismo que televisa, y no pueden negar la censura, porque si no la hubiera destrozarían a nuestro presidente, y a nuestro muy probablemente proximo presidente peje-lagarto tambien.

Le deseo mucha suerte a ese pobre cuate terrorista cibernetico que agarraron los gringos, ojala que sea cierto que queria poner bombas, y ojala que no haya arruinado su vida por querer promover la libertad de expresion por medio de la publicacion de manuales para hacer bombas y todas esas cosas terribles que a los gringos no les gusta que los demas hagan, pero que ellos hacen al por mayor, y como nadie en el mundo.

No por nada uno se hace su propio mundo, el mio es muy bonito, pero no puedo dejar de ver el triste mundo que tiene la mayoria de la gente que veo en el metro y los camiones. Gracias México !



Actualizacion de Semana Santa


Despues de una semanita de descanso, y disfrutar de Cuernavaca como hacia rato no lo hacia, ando aqui de vuelta.

Tuve tiempo de salir con la familia, de pasear a Carmen y Deborah, y de dormirnos las tardes lindo y bonito !

Iniciando la semana de trabajo, y encontrandome con la grata sorpresa de que el CICOL ya esta aqui !! ya envie mis 2 prospectos de ponencias, ojala me las acepten, y espero ir los 3 dias, aunque seguramente no podre, por lo menos 2 🙂

Ya de vuelta por el DF, soportando el trafico, y las amenazas de marchas, incluso hay un buen lio por aca con eso de las minas de arena que estan debajo de la region de observatorio.

Por cierto, no he metido nada al CONSOL, ahora si espero ir, ojala que me acepten la platica esta vez tambien, porque el año pasado les quede mal :(, sorry pero la novatada con mi hija no fue como para experimentar.

Bueno, pues espero en 2 semanas tener mis presentaciones para el cicol listas para aprovacion, y ojala que pueda cumplir con el tiempo del consol, y de verdad ojala que me la acepten !

Bueno, con agrado termino esta nota oyendo One de MetallicA, la mejor cancion del mundo, con el mejor requinto, solo seguida por el requinto de Hotel California, y probablemente por Sleep Walk en manos de Satriani.

Que tengan una feliz semana todos los que viven en este mundo !!



de RMS, GNU, Linux, y porque me encanta esto y no estoy de acuerdo con nada !


Ya he comentado antes mi desacuerdo con las ideas extremistas de RMS. Si bien el es algo asi como una persona espectacularmente importante en mi vida profesional (y parte de la otra vida tambien), por el simple hecho de ser el que inicio el movimiento GNU, tambien es importante hacer notar que la idea del Software Libre (SL), no es de el, y que no es el único que ha propuesto una licencia que promueva esa idea, de hecho en muchos aspectos la licencia BSD me agrada mas, aunque por otro lado la GPL2 tiene la parte de obligarte a dar algo a cambio y eso tambien me agrada.

Pues hoy leyendo otro mas de los transcritos de sus pláticas vuelvo a caer en las mismas conclusiones, y como ha pasado discutiré un poco los puntos resumidos en ese transcrito.

A menos de que quisieramos negar la realidad de nuestra época, o de la naturaleza social del humano, me parece bastante aventurado querer rechazar la comercialización de cualquier cosas que tenga interes en el mercado. Dicho eso, que demonios tiene una persona en la cabeza para pensar que si instalas un software propietario estas dañando a los demás !!, digo, si golpeo a alguien lo entiendo, si robo, o mis peliculas piratas pueden estar dañando en cierta manera a la sociedad, pero instalar software propietario ???

Entiendo la manera de pensar de RMS, es de la “extrema idealista”, pero los argumentos que dá no puede creerlos ni él, sería lo mismo que aceptar que vender algo está mal, y por tanto el trueque está mal, y consecuentemente todos nos moriríamos de hambre.

Formatos cerrados, si importan van a ser “descubiertos” por ingenieria reversa, y como es de espararse eso tambien nos quiat libertad. Si, vamos a decir que si, pero que hay de malo en quitarnos un poco de libertad (imaginaria, filosoficamente no existe) a los que estamos del lado del SL para darles un mucho de libertad a los que no estan de este lado !, a poco no es notorio el cambio que ha hecho el SL con linux-kde-gnome, openoffice y sus versiones para casi cualquier cosa, el soporte de varias aplicaciones libres para los formatos de word. Si la gente se hubiera cerrado a perder un poco de tiempo y esfuerzo en eso, el SL simplemente no estaria donde esta, asi que unas cosas por otras, perdemos un poco para que los demas ganen mucho, el resultado es positivo, y no se abusaron los derechos de nadie en el proceso !

Pasando a la parte divertida, veo con agrado que estoy del lado perverso usando el editor de la bestia !, de hecho ahora entiendo porque me gusta Iron Maiden, de hecho creo que el dios emacs me llego a tentar en un par de ocaciones, pero mi tendencia a la maldad y perversidad me llevo de la mano por el camino de vi, y aunque no intento evangelizar tanto vi como lo hago con linux, me he dado cuenta de que no lo puedo evitar, lo hago inconcientemente.

Sintesis, RMS y yo no nos parecemos en mucho (de hecho yo no soy nadie, asi que da lo mismo), y eso que yo soy un idealista perdido ! que cosas no ?



analytics ! belleza en el DF !


Realmente no recuerdo cuanto tiempo tenia haciendo cola para tener mi cuenta de “google analytics”, hoy empieza a funcionar, asi que desde este momento se empieza a almacenar por google el trafico de mis 2 lectores (no podria aspirar a tener mas lectores que catón).

Por lo pronto no tengo nada mas que decir al respecto, esperaré a ver mas sobre la interfase de reportes, y luego ya veremos que pasa.

En otros asuntos, ahora llegando al trabajo, gracias al cambio de horario !, me toco ver la salida del sol entre los edificios, lastima que no tengo una camara para dar este tipo de reportes !, pero es lo mejor que he visto aqui en el DF, un sol enorme, saliendo del horizonte, entre los edificios… luego no se que paso los siguientes 10 segundos porque no veia nada :-P, pero fue un buen momento.

Anyway, en este momento empiezo mi campaña oficial para llevarme al CIDE a Cuernavaca, perdón a los nativos de aqui, es mucho mas agradable vivir en un pueblito 🙂

Buen dia !



Un rato de buena música


Despues de un rato de estar leyendo, se me antojo abandonar el silencio y ponerme a escuchar un buen disco de metallica, uno de los viejos.

Algo tiene el rock pesado que relaja, por alguna razon siempre ha sido así para mi.

“fight fire with fire” y de ahi en adelante todo el disco 🙂

volvamos al trabajo !