Liberado Zend Framework 1.0

Me entero en barrapunto que Zend, creadores del lenguaje PHP, ha liberado por fin la versión 1 de Zend Framework.

Para quien no lo conozca, es un framework que trabaja sobre PHP5 y está orientado a objetos, y entre otras cosas implementa el patrón MVC, más detalles en su web.
Creo que la última vez que seguía los diferentes frameworks que implementaban el patrón MVC en PHP, Zend Framework todavía estaba en la 0.3, y entonces fué después de Symfony el que más me gustó.

Habrá que ver si a nivel de empresarial y desarrollos libres, empiezan o han empezado ya a despegar estos frameworks y cuál predomina. Lo más lógico es que acabe siendo el de Zend aunque me parece a mi que nos queda código spaghetti para un buen rato, a no ser que se adapte PHP6 más rápido que PHP5(no lo creo) ya que dicen que será orientado a objetos sin compatibilidad hacia los malos vicios.

Clase XHConn

Hasta ahora no he utilizado librerías javascript, únicamente algún componente configurable (calendario, autocompletado...), quizás porque no soy un apasionado de javascript y no las he trasteado, además de que utilizando algunos de esos componentes me he tenido que liar con su código para modificar algún detalle a mi gusto.

Cosa que nunca me ha pasado con la clase XHConn, que es una sencilla clase que soluciona los problemas de las compatibilidades entre navegadores al crear un objeto XMLHTTPRequest, y nos ahorra ese trabajo.

Su uso es muy sencillo, sólo tiene un método, connect al que se le pasan la url, el method(POST/GET), parametros de la url y la función de callback

Aquí un ejemplo:

//Instanciamos el objeto
var con = new XHConn();
//Comprobamos que el navegador tenga soporte al objeto XMLHTTPRequest
if (!con) alert("El navegador no soporta el objeto XMLHTTPRequest.");
//Definimos la función de callback
var fnWhenDone = function (obj) { alert(obj.responseText); };
//Llamamos al método connect
con.connect("urldeejemplo.php", "POST", "parametro1=a¶metro2=b", fnWhenDone);

Curiosidad con un array JSON

Últimamente estoy empezando a utilizar JSON en vez de XML para recuperar datos con llamadas al objeto XMLHTTPRequest.
Trasteando, me he encontrado al devolver un array de objetos , que me daba un error en Iexplorer mientras que en Firefox funcionaba correctamente.

Esto se debía a un error mío, simplemente, a que me había colado al montar el array en el lado del servidor poniendo una coma ',' al final del último objeto del array y explorer contaba como si tuviera un objeto más, mientras que firefox no.

Ej:

{"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "New", "onclick": "CreateNewDoc()"},
]}

En vez de:

{"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "New", "onclick": "CreateNewDoc()"}
]}

El error era mío, esto está claro, ¿pero no sería más lógico que los dos navegadores, al hacer el eval(), dieran error de javascript?, ¿o cuál sería el comportamiento más correcto?

Tuitermaps, jugando con google maps

Hace un tiempo, estuve un par de días jugando un poco con el api de google maps y el de twitter, más que nada por la excusa del google maps, la de twitter es muy sencilla (bueno, twitter en sí lo es). El resultado es TuiterMaps.

Es algo parecido a twittermap, puedes ver de dónde son las personas que escriben, siempre que tegan puesto en su perfil el location.
En un principio muestra los mensajes del public timeline, también se puede seleccionar un usario en concreto y un usuario con sus amigos.

Es muy chorras, pero ya he visto lo fácil que es mostrar una localización gracias a la clase GClientGeocoder, simplemente le pasas al método getLatLng una cadena de la localización y una función callback que recibe un obeto GLatLng, y a partir de ahí puedes crear un GMarker para añadir al mapa.

Lo que le falta es un poco de diseño, pero para eso yo soy muy malo.