Nueva versión de jQuery: jQuery 1.3

jQuery cumple 3 años y para celebrarlo se ha lanzado una nueva versión del framework que trae algunas características interesantes:

  • Sizzle: Un nuevo motor de selección CSS.
  • Eventos en vivo.
  • Revisión de los eventos: Se han readaptado completamente para facilitar el manejo de los mismos.
  • Reescritura de inyección de HTML: Añade HTML rápido como un rayo
  • Reescritura del método .offset(): Cálculo de la posición mucho más rápido.
  • Fuera Browser Sniffing

En los próximos artículos intentaremos echar un vistazo a estas nuevas características y a las mejoras con respecto a las versiones anteriores.

MORe. La newsletter de Tanta Comunicación.

Cabecera de la newsletter de Tanta Comunicación

En Tanta Comunicacion hemos lanzado el primer número de nuestra newsletter: MORe.

En ella, a modo de resumen, trataremos de destacar aquello que creemos que es lo más interesante que se mueve en torno a la web.

En este primer número me gustaría destacar, particularmente:

Esto es solo una pequeña muestra. Si os interesa os podéis subscribir directamente en el blog.

Extender jQuery validator y mensajes de error personalizados

Hoy me he dado cuenta de algo que se me escapaba, el nombre de variable que contiene los mensajes errores personalizados debe ser exactamente igual que el método que extendemos.

Me explico:

Por cuestiones de proyecto, los select cuando no tienen un valor seleccionable correcto, tienen como atributo value “-1“. Esto hacía que a pesar que incluyésemos la clase ‘required’ en el elemento, como el objeto validator comprueba si el valor es distinto de blanco para situarlo como correcto, no nos validaba correctamente.

Ante esto la solución era extender la clase validator creando un nuevo método al que llamamos requiredselect y aplicárselo a los select.

jQuery.validator.addMethod("requiredselect",function(value,element){
 var chk=false;
 if(value!="-1"){chk=true};
 return this.optional(element) || chk;
},jQuery.validator.messages.required);

Como véis, queremos que nuestro mensaje de error sea el de ‘required’. El problema viene cuando hemos definido -bien dentro del archivo de nuestro formulario, bien en un js aparte- esta variable required con un mensaje del tipo ‘Este campo es obligatorio’. El objeto validator no nos toma este mensaje personalizado, sino que establece el que tenga definido por defecto (inglés).

Viendo además que si cambiabas la variable de error, utilizando la de otra validación extendida, nos devolvía un error que no había un mensaje definido caí en la cuenta entonces que la variable de mensaje debía ser exactamente igual que el nombre del método.

jQuery.validator.addMethod("requiredselect",function(value,element){
 var chk=false;
 if(value!="-1"){chk=true};
 return this.optional(element) || chk;
},jQuery.validator.messages.requiredselect);

Y nuestro mensaje personalizado:

jQuery.extend(jQuery.validator.messages, {
 required: "Este campo es obligatorio.",
 requiredselect:"Este campo es obligatorio.",
 ...
});

Las 10 habilidades más buscadas en el desarrollo web

Rescato desde www.webeame.net este post que ha pasado sin pena ni gloria, pero que a mí me parece interesantísimo:

  1. Conocimientos de un Framework
  2. Desarrollo de widgets
  3. Temas de CMS personalizados
  4. Personalización de CMS y desarrollo de plugin
  5. Servicios de PSD a XHTML
  6. Creación de plugins en Javascript
  7. Aplicaciones para Facebook/MySpace
  8. Aplicaciones para iPhone
  9. Integración con comercio electrónico
  10. Conocimiento de Flash y ActionScript

Las 10 habilidades más buscadas en el desarrollo web

Google Streetview ya en España


View Larger Map

España ha sido la segunda ciudad Europea el segundo pais europeo después de Francia.

Recordemos que el pasado mes de Julio, con motivo del Tour de France, Google Streetview aterrizó en Europa. Hoy, 4 meses después lo hace en España. Las ciudades que ya pueden disfrutar de las imágenes de la ciudad a pie de calle son Madrid, Barcelona, Valencia y Sevilla.

Aunque de momento -al menos en Madrid- no se puede recorrer la totalidad de la ciudad; sino que se limita al perímetro formado por la autovía de circunvalación M30 en el Oeste y Sur, y por la autopista -también de cirvunvalación- M40, en el Norte y Este.

Tendré que esperar pues para ver la puerta de mi casa desde Google Maps. :D

PD: En la imagen, Reloj de la Puerta del Sol de Madrid; donde cada 31 de diciembre se dan las campanadas.

Editado: Gracias Chucky! ;)

Hoy ya son 26 primaveras

26 primaveras, con sus veranos, otoños e inviernos. 26 años, en resumen.

Muchas gracias a todos por acordaros!!!

Actualización: Un agradecimiento muy especial para mi hermana que con esta foto y este texto ha hecho que se me salten las lágrimas:
http://www.fotolog.com/saramp/54450015

Google Developer Day 2008

Logo del Google Developer Day 2008
Ya está abierto el registro para el Google Developer Day 2008 en Madrid.

Este año, tendrá lugar en el Parque de Atracciones de Madrid y será el 25 de Septiembre.

En resumen:
Evento: Google Developer Day 2008
Lugar: Parque de Atracciones de Madrid
Fecha: 25 de Septiembre de 2008
Registro: Registro Google Developer Day 2008

Framework CSS y XHTML para el iPhone/iPod Touch

Como he comentado ya en el blog de Tanta Comunicación, así da gusto empezar la semana.

Y es que Minid se ha currado un framework CSS y XHTML para desarrollar aplicaciones web orientadas al iPhone y/o iPod Touch, y eso quieras que no, merece ser reseñado.

Pero las buenas noticias no solamente acaban aquí, sino que Pablo Gavilán ha dejado un comentario en el propio artículo en el que nos facilita unos stencils para prototipar aplicaciones para el propio iPhone.

Vía: aNieto2k

CheatSheet de SEO

Una chuleta más para añadir a las ya existentes. La gente de SEOmoz han recopilado en un PDF (149 Kb.) los puntos más importantes de cara al posicionamiento en buscadores que hay que tener en cuenta.

Vía: Leandono’s Blog

Problema al utilizar filter para PNG transparentes en Internet Explorer

El problema

Un problema con el que me encontré ayer y me ha traído de cabeza hasta hoy ha sido que por alguna razón que no acababa de entender, el filter para los PNG transparentes no me acababa de funcionar del todo en Internet Explorer.

Lo curioso era que donde no funcionaba era en el entorno de desarrollo, ya que en las maquetas estáticas no había problema. Después de probar de todo, como sustituir las hojas de estilos por exactamente las mismas que las maquetas, deshabilitar JavaScript, que el código HTML de maqueta y el generado en desarrollo fuera el mismo, me he fijado en un pequeño, pero gran detalle: La ruta de la imagen del filter y la url del HTML de desarrollo.

La ruta de la imagen del filter estaba asignada al directorio img que se encontraba en la raíz del portal, imagen que no estaba encontrando porque la url de desarrollo al ser URL Friendly, filter tomaba los valores como directorios e intentaba buscar el directorio img dentro de la ultima carpeta de la URL Friendly que obviamente no existía.

Ejemplo:
URL Desarrollo


http://localhost/nombre1/nombre2/titulo

Filter:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=img/mi_imagen.png);

La solución

Tras cerciorarme y asegurarme la gente de desarrollo Backend que los niveles de URL Friendly se iban a mantener intactos (siempre van a ser dos por ‘debajo’ del raíz) lo único que tenía que hacer era cambiar la ruta relativa del filter y ‘voilà!’

Ejemplo:
Filter:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=../../img/mi_imagen.png);
Seguir

Get every new post delivered to your Inbox.