SUP: Simple Update Protocol

SUP (Simple Update Protocol) es un sistema que permite a las webs que ofrecen contenidos avisar a los consumidores de sus feeds de qué feeds han sido modificados. Esto permite que no se tenga que comprobar los feeds cada poco tiempo para saber si se actualiza el feed o no (como hace Google Reader) o tener que enviar pings a muchos servicios.
SUP trabaja con ids (SUP-ID) que representan cada feed, el “consumidor” de feeds deberá almacenar los ids, acceder a una URL que ofrece los SUP-IDs actualizados y así saber cual de los feeds que le interesa debe actualizar.
SUP es cacheable, ocupa muy poco y no expone información comprometida como usernames o URL privadas. Muy útil para webs de blogs, microblogging, … pero no tiene sentido para blogs propios.
Simple Update Protocol
Gracias JL por el aviso

Métodos encadenados en PHP

Algo que se usa mucho en jQuery es el method chaining, encadenar la llamada de métodos en una misma sentencia. Para realizar esto en PHP lo que hay que hacer es devolver $this en cada método:

class obj {
function accion1() {
// Lo que sea
return $this;
}
function accion2() {
// Lo que sea
return $this;
}
}
$o = new obj();
$o->accion1()->accion2();

Method chaining with PHP

FireUnit: extensión para pruebas unitarias de Javascript

FireUnit es un plugin para Firefox que permite realizar pruebas unitarias de Javascript y mostrar los logs en una pestaña de Firebug. El plugin está desarrollado entre otras personas por John Resig, desarrollador de jQuery.

Se pueden realizar pruebas como las siguientes:

// Simular eventos del navegador
var input = document.getElementsByTagName("input")[0];
fireunit.mouseDown( input );
fireunit.click( input );
fireunit.focus( input );
fireunit.key( input, "a" );

FireUnit

Vía / John Resig

Consejos para jQuery

Últimamente hablo mucho de jQuery, y no es para menos, ya que este framework de Javascript es muy bueno y la gente realiza grandes plugins que nos ayudan en nuestros desarrollos. En este caso se trata de varios consejos que nos serán muy útiles a la hora de desarrollar:

  • Carga la librería desde Google Code
  • Almacena en variables los selectors que vayas a usar en varias ocasiones
  • Evita la manipulación DOM lo máximo que puedas, es mejor realizar una llamada “gorda” que varias pequeñas
  • Usa preferiblemente IDs en vez de nombres de clase cuando realices búsquedas
  • Realiza la captura de eventos correctamente, muchas capturas suele ser ineficiente
  • Usa los nombres de clase para guardar el estado de un objeto
  • Incluso mejor que el anterior, usa el método data() para guardar datos en un objeto
  • Aprende a crear tus propios selectores
  • Usa noConflict() para renombrar el objeto jQuery y no tener problemas con otras librerías
  • Aprende a controlar cuando se cargan las imágenes
  • Usa .lenght en un selector para saber si un objeto existe
  • Añade una clase al objeto HTML para modificar elementos por CSS cuando el documento se haya cargado

Improve your jQuery – 25 excellent tips

Vía / Intenta

Groogle: revisor de código web

Groogle es una aplicación web que permite revisar código de varios lenguajes y que además se permite conectar con Subversion.

Entre las opciones que ofrece nos encontramos con:

  • Resaltar código de varios lenguajes
  • Comparación de ramas enteras del repositorio para encontrar ficheros y directorios añadidos, borrados o modificados.
  • Representación gráfica de ficheros
  • Notificaciones por email cuando el estado de una revisión cambia

Groogle

Native Client: tecnología de Google para ejecutar código nativo en tu navegador

Google está trabajando en una tecnología que permitirá a los desarrolladores web ejecutar código nativo en el propio ordenador del cliente, pudiendo así aprovechar toda la capacidad de la cpu del cliente, la cual está ahora limitada por el navegador. Lógicamente no se trataría de algo permisivo, sino que tendría limitaciones para evitar ejecutar código maligno.
Es necesario instalar un plugin para que funcione el cliente en nuestro navegador (yo lo he hecho para Firefox, ni idea de si funciona para otro navegador). Si tenéis instalado Firefox en otro directorio distinto al “por defecto”, deberéis modificar el archivo firefoxinstall.py e indicar la ruta correcta en la variable PLUGINDIR (línea 203 para Windows).
Los ejemplos que se ven son bastante atractivos: quake, mandelbrot, … Veremos a ver qué éxito tiene esta tecnología, aunque sinceramente, a veces se pretenden hacer muchas cosas vía web. Además, Java ya permite más o menos lo que pretenden, ¿no?, ¿es esto su propia versión de los Java applets y de Adobe Air?
Native Client

Uso correcto de los selectores en jQuery

Quien dice en jQuery dice en cualquier otro framework de javascript o lenguaje de programación, el tema es no malgastar recursos. jQuery permite encontrar elementos mediante la clase, por ejemplo:

$('.boton')

Esto es muy cómodo, pero también tiene mal rendimiento, ya que el script debe buscar en todos los elementos HTML y encontrar aquél que tenga class=”boton”. ¿Cómo deberíamos usar los selectores?.:

  • Si el elemento tiene un ID, hay que usar el ID, pero tampoco es plan de añadir ids a todos los elementos.
  • Indica el tipo de elemento, por ejemplo $(‘input.boton’), así limitaremos la búsqueda a los elementos input. Si no solo hay un tipo de elemento, sino varios, los indicaremos todos: $(‘input.boton, a.boton’)
  • Guía a jQuery por la ruta de elementos que puede seguir: $(‘#formulario .boton’)
  • Usa otro elemento para limitar la búsqueda: $(‘#formulario’).find(‘.boton’)

Avoid Bare Class Selectors In jQuery

Yii: framework PHP

Yii es un framework PHP desarrollado por el creador de Prado que está centrado en el desarrollo de aplicaciones web2.0 (integrando jQuery) y presume de ser una de las más rápidas y con mejor rendimiento (sobre todo usando APC).

Al igual que muchos otros frameworks, viene con las siguientes características:

  • MVC
  • ADO y Active Record
  • Validación de formularios
  • Widgets web2.0
  • Autenticación
  • Themes
  • Web Services
  • Internacionalización
  • Cache
  • Control de errores y logs
  • Seguridad
  • Generacion automática de código
  • OOP

Las pruebas de rendimiento indican que es muy rápido, sobre todo usando APC, pero bueno, las pruebas siempre las tiene que hacer alguien externo.

Yii Framework