Protocol Buffers

Por Cesar, Julio 9th, 2008, en FLOSS, programacion, Google. No hay comentarios.

La noticia se ha extendido como reguero de pólvora: Google ha liberado su llamado “Protocol Buffers” que es para serializar estructuras de datos de manera neutral al lenguaje y a la plataforma. ¿Suena a algo parecido? ¿XML tal vez? si, pero segun Google es más eficiente y sencillo de utilizar. Veamos de que se trata.

Primero uno como desarrollador define cómo queremos estructurar nuestros datos, y luego generamos de manera automágica el código para lidear con estas estructuras. Estas definiciones se hacen en archivos .proto, que vendría siendo el equivalente a la definición del tipo de documento de XML (DTD) o el esquema de una base de datos. Un archivo .proto se ve así:

message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;

enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}

message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}

repeated PhoneNumber phone = 4;
}

Corres el compilador del lenguaje de tu elección y te genera las clases necesarias. Para el ejemplo del archivo .proto anterior genería una clase Person y una clase PhoneNumber, que puedes usar para serializar y enviar la clase por la red, o guardarla a un archivo en el disco.

Una de las principales ventajas de los Protocol Buffers es que el formato usado en el cable (lo que se envía) es binario, ocupa mucho menos espacio y es más rápido para parsearlo de vuelta. La desventaja es que no puedes editar el archivo “a mano” una vez que fue serializado.

¿Alguien planea usar Protocol Buffers en un proyecto? Cuenten su experiencia…

Videos de Youtube y “Operación Anulada”

Por Cesar, Junio 20th, 2008, en browsers, programacion, tips. 2 Comentarios.

Incluir videos de youtube en tu blog/web es super sencillo ¿no? Basta con ir al video, copiar el embed code e incluirlo en tu HTML. Funciona para Firefox y toda la plétora de navegadores, menos IE7 (si no, que chiste) que te tira un error “Operación Anulada” o en Inglés “Operation Aborted” y adiós tu página.

Operación anulada

El problema: youtube te da el siguiente código para incluir los videos:

  1. <object width=“425″ height=“344″>
  2.     <param name=“movie” value=“http://www.youtube.com/v/$VIDEOID”></param>
  3.     <embed src=“http://www.youtube.com/v/$VIDEOID” type=“application/x-shockwave-flash” width=“425″ height=“344″></embed></object>

Solo hay que sustituir el $VIDEOID por el id del video que queremos ver. ¡MAL!. El problema es que la etiqueta embed comparte la misma suerte que el Dodo y no debe usarse más. Claro que, como youtube te dió el código, pues confias. ¿Cómo lo podemos cambiar para que IE7 no se muera?

  1. <object type=“application/x-shockwave-flash” width=“425″ height=“355″ data=“http://www.youtube.com/v/$VIDEOID” id=“VideoPlayback”>
  2.               <param name=“movie” value=“http://www.youtube.com/v/$VIDEOID&rel=1&color1=0×3a3a3a&color2=0×999999&border=0″></param>
  3.               <param name=“wmode” value=“transparent”></param>
  4.               <param name=“allowScriptAcess” value=“sameDomain”/>
  5.               <param name=“quality” value=“best”/>
  6.               <param name=“FlashVars” value=“playerMode=embedded” />
  7.             </object>

Simplemente agregamos el atributo data a la etiqueta object, y ahí le indicamos la URL del video que deseamos incluir. Adiós problemas, el sitio valida, e IE7 no se muere.

Java daba doo

Por Rafyta, Mayo 22nd, 2008, en lol, frases, programacion. 6 Comentarios.

“Java doesn’t do anything by itself. It’s a programming language (…) Java wants to be in your face. Java wants to be updated. Java wants to tell you the good news about Sun. Have you heard about Sun? Here’s a nice picture of our logo. And fancy a copy of OpenOffice? No? Well, never mind. Java’s installed a copy of Yahoo Toolbar in your browser instead. Because that’s what programming languages are there to do, right?”

Annoying software: a rogues’ gallery

El link me lo pasó Pablo

Cookies y Code Igniter: más problemas

Por Cesar, Mayo 14th, 2008, en programacion, tips. 4 Comentarios.

Seguimos con los problemas de Code Igniter, esta vez con respecto al manejo de las cookies.

El problema: en averalcine.com usamos cookies para saber que ciudad eligió el usuario, de tal manera que el usuario no tenga que seleccionar una ciudad cada vez que entra al sitio. ¿Ningún problema no? el código funciona de maravilla en Firefox, Safari, Opera, hasta en IE6, pero no en IE7. Mi primera reacción fue culpar al modo protegido de IE7, pero este solo funciona cuando se ejecuta bajo Windows Vista, y tenía una computadora con Windows XP, IE7 y aún así el problema persiste.

La solución: como toda la vida (en la Web), terminamos sacándole la vuelta al error introducido por Internet Explorer. Esta vez no es tanto error per se, sino una característica:

En IE, las políticas de privacidad por defecto entran en funcionamiento para iframes interdominio, especialmente con JavaScript, lo que previene guardar cookies. Si imprimes el session id de la cookie en la página que se carga en el iframe, verás que cambia en cada recarga de la página. Configura una política de privacidad como se define en http://www.w3.org/P3P/ y lo solucionarás.

¿Así o más fácil? (es sarcasmo). En vez de batallar con soluciones únicas para IE, decidimos usar “cookies” del lado del servidor, donde todo el estado se guarda en la base de datos. Introduce más carga al servidor, y el tiempo de respuesta se incrementa, pero funciona en todos los navegadores que hemos probado hasta ahora.

CushyCMS rox!

Por Rafyta, Mayo 3rd, 2008, en aplicaciones, utilidades, programacion, tecnología, tips, cms, web2.0, internet. 2 Comentarios.

Web Designers: POR FIN le pueden dar a los clientes el control del contenido de sus sitios, sin que estropeen el diseño.

Antes ya se podía, pero había que instalar - o programar - un CMS (Content Management System) y adaptarlo al sitio, asignar usuarios, hacer pruebas, capacitar empleados inútiles, etc.

Ahora, CushyCMS permite de manera fácil y rápida (en serio) poner en manos del cliente el manejo del contenido sin prolongar más el tiempo de desarrollo ni añadir al presupuesto del proyecto. Basta con sólo añadir la clase cushycms al elemento que deseamos dejar editable y listo (por ejemlo envuelve en una <div> el área de texto que vas a dejar editable y la pones como <div class=”cushycms”> y listo). Además, las imágenes son editables de la manera siguiente: <img src=”foo.jpg” class=”cushycms”> y el sistema la va a ajustar a las dimensiones de la imagen que está sustituyendo.

El manejo de usuarios y permisos es un pan, sólo necesitas el acceso FTP y seguir las instrucciones. Para dar de alta un editor, sólo necesitas su e-mail y el sistema le manda instrucciones. El video tutorial en la página es de lo más sencillo; si alguien tiene la inteligencia suficiente para usar hotmail, seguramente puede editar un website de esta manera.

By The Way es, y siempre será GRATIS.

Supera eso Contribute, ($169 US) JA!

El fork de Ext: OpenEXT

Por Cesar, Abril 27th, 2008, en FLOSS, programacion, javascript. No hay comentarios.

Iba a pasar tarde o temprano: http://sourceforge.net/projects/openext/

La situación legal de Ext de la cual hablamos anteriormente provocó que algunos de los miembros de la comunidad Ext hicieran algo al respecto. En las propias palabras del autor, OpenEXT no es un fork sino que lanzarán parches encima de ExtJS 2.0.2 (la última versión LGPL) en vez de redistribuir versiones completas de Ext modificadas.

Veamos si esto es suficiente para atraer usuarios de Ext inconformes por el cambio de licencia.

(Via Ajaxian. Y lean el artículo original, dice muchas cosas muy interesantes)

Abierto Nacional de Programación. Feel the Code, Be the Code.

Por Cesar, Abril 17th, 2008, en programacion, eventos. 6 Comentarios.

Este post es una pseudocolaboración. El tema me lo propuso Pablo, buen amigo mio y regular de este blog, que por razones antiprocrastinativas no quiso postearlo el mismo.

Hackers, rejoice. Let the code speak for you.

¿Cuantas veces hemos escuchado que el país cambiará su enfoque económico a uno que sea exportador de servicios? ¿Outsourcing le suena a alguien? ¿Que en la India les enseñan programación desde la primaria? En México existen programadores de calidad, y en el ANPA 2008 como bien lo dice su lema “Sólo los fuertes avanzan”. Se trata de un EL ÚNICO concurso de programación 100% nacional, y actualmente necesita de todo el apoyo que le podamos dar especialmente los que estamos involucrados en el medio de la computación (empresas, academia y todos los demás).

El ANPA 2008 está organizado por un grupo de investigación llamado ants del Tecnológico de Monterrey campus León, y hasta hace poco no contaba con el apoyo de empresa u organización alguna. Afortunadamente ya cuentan con apoyo (de Microsoft) y el registro de 100 participanes de distintos lugares de la república. Esta es su segunda iteración.

Concursos de programación hay muchos, páginas donde puedas ir y resolver problemas hay aún más. Concursos de programación nacionales hay 3 (de los que tengo conocimiento): ICPC de la ACM que tiene fase regional, la Olimpiada Mexicana de Informática y recientemente el ANPA. Ya lo mencioné antes, pero de esta lista de 3, el único 100% mexicano es este último.

Como en todo evento, además del tema central, el aspecto social es sumamente importante. El mero hecho de socializar con gente con intereses comunes ya vale mucho. En este caso particular, facilita el encuentro de programadores de todo el país con diferentes enfoques, y puede así jugar el papel de incubadora de pequeñas empresas de desarrollo. Tomando en cuenta la naturaleza geek de los participantes, el comité organizador se tomó la molestia de poner a nuestra disposición medios para socializar ad hoc: consolas de videojuegos, y para los geeks de corazón quieren incluso tener un ATARI.

Para finalizar, me gustaría dejar bien claro que yo no tengo nada que ver con la organización del concurso, es más, ni siquiera participo en concursos de programación. Hasta hace pocos días no tenía conocimiento de que existía este concurso, pero decidí hablar de él ya que me parece que es algo que en nuestro país necesitamos: impulsar el conocimiento de una manera práctica, competitiva y divertida. Si en el proceso podemos ganarnos algún premio, que mejor. Así que ya saben, si este año no se animan que porque ya mero es y no están preparados, de una vez a prepararse para el siguiente año.

Felicidades a todos los que hacen posible el ANPA 2008. Si alguna vez te quejaste de que en México no hay desarrollo tecnológico, este es el momento de dejar de quejarte y comenzar a actuar.

Refactoring en Eclipse: Bliss

Por Cesar, Enero 28th, 2008, en programacion. 1 Comentario.

Refactor Son esos pequeños detalles que hacen que el día de un code monkey sea un poquito mejor…

La manera en la que el IDE Eclipse hace refactoring es una belleza: te posicionas sobre el nombre de la variable, presionas alt + shift + r y un cuadro encierra la variable a modificar, le cambias el nombre y ahí mismo, onsite, inline, en caliente se empiezan a modificar TODAS las instancias de esa variable, presiona Enter y ya estas.

Isn’t life great?

Programando con Ext: Formularios

Por Cesar, Enero 23rd, 2008, en programacion, javascript. No hay comentarios.

ExtExt 2.0 es una gran librería de propósito general para JavaScript. Nos sirve tanto para efectos, como para GUI y lo que se necesite para construir aplicaciones Web bonitas, consistentes entre navegadores y con llamadas asíncronas al servidor de manera rápida y más sencilla que “a mano”.

Lo que vamos a ver ahora es cómo construir un formulario, validarlo, y enviarlo al servidor. Ya antes vimos como llenar un formulario automáticamente con datos que vienen del servidor, pues lo que vamos a hacer ahora es lo contrario: el usuario llena el formulario y nosotros lo enviamos al servidor para ser procesado y guardado. Es más fácil de lo que parece, veamos: Seguir leyendo

Microsoft Volta vs GWT

Por Cesar, Diciembre 11th, 2007, en programacion. 3 Comentarios.

Volta es algo asi como la respuesta de MS a Google y su GWT. Se trata de un toolkit para crear aplicaciones que corran en Web o el escritorio utilizando cualquier lenguaje soportado por el CRL de .NET, eso quiere decir que podemos programar en cosas como IronPython por ejemplo.

Aún en fase beta, Volta promete mucho y entrega poco. Cuando la aplicación demo mide más de dos megas, incluye código de compatibilidad específico para cada navegador sin importar el que tú uses, además de hacer 17 peticiones HTTP al inicio (slow start recuerden amigos) no puedo más que recordar que la mayoría de esos problemas GWT los tiene resueltos, claro no desde sus inicios y claro Volta está en beta. Ya veremos si GWT tiene competencia seria.

Quien necesita soporte para todos los lenguajes del CLR si tienes a Java? (es broma)

Posts anteriores

Comentarios Recientes

Los autores

Creative Commons

Paskola Estudio Creativo
Help the authors