Eligiendo y Utilizando Caché – Parte I

Cuando una aplicación crece y empieza a recibir más tráfico, va a consumir más recursos y sus tiempos de respuesta se verán degradados. Una de las principales medidas a tomar es el aplicar una capa de caché en la aplicación.

Esta medida es muy tentadora, pero hay que saber bien que sistema de caché va a ser el más optimo para la aplicación en cuestión, donde aplicar esa capa y en que casos realmente hacerlo.

Primero daremos un vistazo a cuatro sistemas de caché, los más populares y clásicos que tenemos para PHP: Memcache, XCache, Disco y la Nube.

Sigue leyendo

Publicado en Miscelánea, Performance | Etiquetado , , , , , , | Deja un comentario

Geolocalización sencilla con PHP

La localización de nuestros usuarios es un dato muy importante para las aplicaciones que principalmente entregan contenido.

El conocer la ubicación del usuario nos permite mostrarle la interfase de la aplicación en su zona horaria, o dirigirlo a servidores que esten mas próximos; entregarle contenido mas apropiado a su ubicación o incluso restringirle el acceso a dicho contenido.

A continuación veremos como utilizar la geolocalización con PHP. Y por último como instalar el módulo de GeoIP.
Sigue leyendo

Publicado en Miscelánea, Snippets | Etiquetado , , , , | 2 comentarios

Detección de Virus con PHP y ClamAV

En nuestras aplicaciones web es muy frecuente brindar la funcionalidad de subir archivos, en especial imagenes, pero no es extraño que nos veamos con la necesidad de permitir otro tipo de archivos, como ser documentos (doc, xls, pdf), comprimidos (zip, tar) o incluso ejecutables; que son muchos más propensos a contener algún tipo de virus.

A continuación veremos como mediante PHP y el antivirus ClamAV podremos analizar los archivos publicados por los usuarios en búsqueda de virus y así poder prevenir que otros usuarios ante este riesgo; incluso avisarle al usuario que publico el archivo sobre el problema.

Sigue leyendo

Publicado en Miscelánea, Seguridad, Snippets, Testing & TDD | Etiquetado , , , , , , , , , , , | 1 comentario

Orchestra.io – Plataforma PHP como Servicio

OrchestraOrchestra es una plataforma construida sobre la nube de servicios de Amazon (Amazon Web Services) mediante la cual podemos publicar una aplicación PHP de forma muy sencilla y que la misma escale de manera automática según los recursos que vaya requiriendo la aplicación.

A continuación veremos como a partir de una aplicación bajo control de versión mediante GitHub podremos publicarla como una aplicación en Orchestra y conocer más a fondo las funcionalidades de esta novedosa plataforma y como orientar nuestras aplicaciones hacia una arquitectura escalable.

Sigue leyendo

Publicado en Desarrollo Ágil, Frameworks, Miscelánea, Performance | Etiquetado , , , , , , , , , , , , , , , , , , , , | 2 comentarios

Fuel – Framework simple y flexible para PHP 5.3

Fuel es un nuevo framework para PHP 5.3, orientado a que sea simple, flexible y gestionado por la comunidad. Su versión 1.0 fue lanzada hace unos pocos días (el pasado 30 de julio).

El equipo de más de 40 desarrolladores han tomado las mejores ideas de los principales frameworks, las simplificaron y reunieron en Fuel luego de nueve meses de trabajo. Hagamos una reseña de las principales funcionalidades de este nuevo framework.

Sigue leyendo

Publicado en Frameworks, PHP 5.3, Seguridad | Etiquetado , , , , , , , , , , , , | Deja un comentario

Detectando los distintos Navegadores

Conocer en que navegador se está ejecutando nuestra aplicación es vital para poder proveer al usuario de una buena experiencia. Si bien se ha avanzado mucho en poder independizarnos gracias frameworks com jQuery y en trucos de CSS, siempre nos vamos a encontrar con algún problema de corss-browsers. Desde el lado del servidor, es decir desde PHP, veremos como detectar desde que browser estamos recibiendo las peticiones y actuar en base a ello. Esto nos resultará muy útil para optimizar nuestras aplicaciones, especialmente si queremos que se desempeñen bien en smartphones y tablets. Sigue leyendo

Publicado en Miscelánea, Performance, Snippets | Etiquetado , , , , , , , , , , , | Deja un comentario

Depurar AJAX con FirePHP

Hoy en día las aplicaciones web modernas deben utilizar AJAX (en cualquiera de sus formas) para comunicar de forma fluida al usuario con la aplicación de backend (el lado del servidor) si quieren realmente ser consideradas modernas o 2.0. El potencial de AJAX se ve más claramente cuando las respuestas son paquetes XML o JSON para luego manipular el DOM a nuestro antojo; pero esto lleva a que si queremos depurar nuestra aplicación en línea, no podemos utilizar echos o var_dumps ya que malformarían nuestro XML o JSON. A continuación veremos como poder depurar nuestros ajaxs sin que afecte a nuestra aplicación mediante la utilización de FirePHP. Sigue leyendo

Publicado en Frameworks, Snippets, Testing & TDD | Etiquetado , , , , , , , , , | Deja un comentario

Métodos Abstractos y Estáticos

Posiblemente a unos cuantos desarrolladores les ha pasado que utilizando PHP 5.2 o superior en una clase abstracta han querido definir un método estático que además sea abstracto para que sea obligatoriamente implementado; y han obtenido un warrning del tipo E_STRICT.

Esto se debe a una incompatibilidad entre PHP 5.0, 5.1 y PHP 5.2. La siguiente es la justificación que figura en la documentación de cambios entre versiones de PHP

Sigue leyendo

Publicado en POO, Snippets | Etiquetado , , , , , , | Deja un comentario

Comprimir respuestas HTTP para mejorar la performance

Cuando los browsers realizan una petición a un servidor web, obtendrán una respuesta que contiene el código HTML de la página o código JavaScript o CSS, puede ser el contenido binario de una imagen o una película flash. Para el caso de los archivos de código el tamaño del mismo puede ser de varios kilobytes, a mayor tamaño más tardarán en ser descargados y más demorará la página en mostrarse en el navegador.

Afortunadamente los browsers modernos pueden aceptar este tipo de contenido en forma comprimida, solo es cuestión de que el servidor web lo envíe comprimido.

Veremos como poder configurar nuestros servidor web para que envíen comprimidos este tipo de archivos; veremos el ejemplo en Apache, Lighttpd y Nginx. Además veremos como poder realizar esto mismo desde PHP en el caso de que no podamos configurar nuestro servidor web.

Sigue leyendo

Publicado en Performance, Snippets | Etiquetado , , , , , , , , | 6 comentarios

Fat-Free Framework

Fat-Free Framework es un nuevo y ligero framework para PHP 5.3+ que tan solo pesa 55KB! El framework está enfocado en ser ligero, fácil de utilizar y de atender a las principales demandas de los desarrolladores, siempre con enfoque en las soluciones sencillas y ágiles.

Sigue leyendo

Publicado en Frameworks | Etiquetado , , , , , | 2 comentarios