Lista de funciones para las plantillas de WordPress

Alguna que otra vez he tenido que hacer una plantilla para WordPress (o un plugin) y la verdad es que la documentación que ofrece WP no me gusta demasiado.

Esta lista de funciones para plantillas nos puede ayudar a localizar lo que necesitamos para nuestro desarrollo, ya que agrupa las funciones en:

  • Autor
  • Categorías
  • Comentarios
  • Fecha y tiempo
  • Generales
  • Enlaces
  • Permalinks
  • Entradas
  • Etiquetas

WordPress Template Tags Reference Guide

Integrar Google Calendar en nuestras aplicaicones PHP

Un completísimo tutorial de la gente de IBM que nos muestra paso a paso cómo integrar en nuestras aplicaciones PHP los calendarios de eventos de Google Calendar.

Se nos va a indicar cómo realizar las siguientes funcionalidades, explicándonos también el API de Google Calendar:

  • Recuperar eventos de una lista pública
  • Añadir más eventos
  • Modificar o borrar eventos
  • Buscar eventos por palabra clave o rango de fechas

Integrate your PHP application with Google Calendar

5 consejos para reducir la carga de la página enfocado a imágenes

Una cosa es realizar una aplicación o tener un blog y otra es que el número de visitas aumenten y tengamos que optimizar la carga de la página. Hay que intentar ganar rendimiento de cualquier forma, y una de estas formas es mediante imágenes, por eso estos consejos (que quizás sean un poco obvios) no vienen mal:

  • Evita usar imágenes complejas o grandes: cuanto más ligeras sean antes cargarán.
  • Optimiza las imágenes: existe diferentes formatos, y cada cual es conveniente en un caso. Los más usados son GIF, PNG y JPEG. JPEG y PNG tienen un valor de calidad de la imagen, reducirlo puede hacernos ganar algunos Kb y no perder en calidad.
  • Indica el tamaño de las imágenes en el HTML: así el navegador sabrá como repartir el espacio para la imagen antes de que cargue por lo que el render de la página será más rápido.
  • Precarga imágenes: aquí el autor dice un consejo un tanto peculiar, no sé si bueno o malo, pero sí interesante. Se trata de cargar imágenes grandes en páginas anteriores y asignarle el tamaño 1×1 para que no se vean y así esté cargada anteriormente. Eso sí, forzaría a que tire de caché para que no te la cargue dos veces.
  • Animaciones flash: si tienes que usar una animación no uses GIFs animados (sí, algunos te encuentras aún), usa flash, pero tampoco te pases.

Top 5 tips to decrease the load time of your websites via images

SoundManager 2: controla el sonido desde Javascript

SoundManager 2 es un API de Javascript que permite controlar el sonido ofrecido por un control Flash. Disponible para la mayoría de los navegadores, es necesario tener instalado el plugin para Flash (logicamente) y no intrusivo.

Un ejemplo de uso sería:

soundManager.createSound({
id: 'mySound',
url: '/path/to/some.mp3',
autoPlay: true,
pan: -75,
volume: 50
});

La verdad es que los ejemplos que ofrecen son increíbles:

SoundManager 2

Consejos para crear URLs correctas

Las URLs es algo en lo que nos debemos fijar a la hora de crear nuestras aplicaciones, a parte de por temas de SEO, por temas de claridad en el desarrollo. Aquí os paso unos consejos que hay que tener en cuenta:

  • No uses el ID de sesión en la URL
  • Que no aparezcan caracteres especiales (%20)
  • Usa números cuando sea realmente necesario, por ejemplo, usar los ids de las anotaciones no es descriptivo
  • URLs únicas, evitar cosas como: www.example.com, example.com, example.com/, example.com/index.php, example.com/index.php?
  • Evitar el uso de demasiados parámetros y que puedan cambiar el orden o el valor y acceder al mismo sitio
  • No usar solo las heywords en las urls, es preferible usar textos explicativos
  • No usar demasiados subdirectorios (en esto ElPais.com se lleva la palma)
  • Evita usar parámetros en las URLs que sea solo entendibles por la aplicación.
  • No uses URLs basadas en fechas (2008/07/03), nadie suele acceder a esas URLs. [Yo personalmente no estoy muy de acuerdo con este consejo, porque en los blogs, cuando buscas algo, y en la URL viene la fecha, puedes ver si se trata de una anotación antigua y no acceder a ella porque seguro que ya no es útil o está anticuada].
  • No cambies la URL después de publicar, servicios como Bitacoras.com, Google Reader o Technorati, puede que no sepan que has cambiado la URL y luego haya problemas de indexación.

Top 10 Fatal URL Design Mistakes

Vía / CSS Globe

|

FUEL en Firefox 3

Ya hace tiempo hablamos de FUEL, un framework para desarrollar extensiones para Firefox. Ahora ya está disponible en Firefox 3, por lo que podemos ir aprendiendo y haciendo nuestras pruebas.

John Resig nos ofrece una serie de enlaces y ejemplos para empezar con FUEL:

Simple Extensions in Firefox 3

Comparativa de velocidades de frameworks PHP

Interesante estudio que muestra la velocidad de tres frameworks PHP (Cake PHP, CodeIgniter y Zend Framework).
Realiza diferentes pruebas: sin usar caché, usando caché propio, usando caché externo, acceso a BD, acceso mediante Active Records, … Los resultados demuestran que CodeIgniter es el más rápido y Cake PHP el más lento.
Es también destacable los datos sobre número de peticiones por segundo cuando se usa un framework a cuando se usa HTML estático. Por eso es recomendable realizar un caché para servir HTML estático.
El autor también realiza una comparativa de funcionalidades entre CodeIgniter y Zend Framework, aunque lo miraría con cuidado, porque dice que CI no admite internacionalización y no es cierto.
PHP framework comparison benchmarks

MemProxy: proxy con PHP y memcached

MemProxy es un script PHP sencillo pero potente, que nos permite tener un servidor proxy de peticiones web y cachea los contenidos en memcached. Tan solo es necesario PHP5.2, la extensión PECL para memcache, servidor web con capacidad de re-escritura y memcached.

En el siguiente ejemplo:

$backend_array = array(
"www.example.com" =>
array(
array("app1.example.com", 80),
array("app2.example.com", 80),
array("app3.example.com", 80),
),
"another.example.com" =>
array(
array("app1.example.com", 8080),
array("app2.example.com", 8080),
array("app3.example.com", 8080),
),
);

las claves de los arrays (www.example.com y another.example.com) son los host names de los sitios en los que se quiere hacer proxy. MemProxy usará el valor de HTTP_HOST para determinar la clave. Esto sería como un hosting virtual basado en nombres.

MemProxy