Posts Tagged ‘desarrollo’

Soporte de OpenID desde php

diciembre 9, 2008

En estos últimos días estoy trabajando en dar soporte de autenticación para OpenID en comix2me, la librería que estoy utilizando para darle soporte en php se llama php-openid, esta librería permite usar la autenticación basada en Openid sobre cualquier site en php. Para el que no conozca OpenID es la iniciativa para la gestión unificada de identidades en la red, una de las consecuencias de esta tecnología será que no tengamos que manejar infinidad de usuarios y contraseñas para los diferentes servicios en internet sino que con un único par usuario, contraseña podamos acceder a todos nuestros servicios (siempre y cuando éstos soporten OpenID).

openid

Para más información se puede ver en la página del proyecto, por cierto existen versiones de Python y Ruby de la misma librería.

Anuncios

Mini comic blogs desde comix2me

noviembre 14, 2008

He incluido la funcionalidad de generar automaticamente miniblogs asociados a un usuario con sus tiras cómicas públicas, de esta forma aparte de poder compartir los contenidos utilizando RSS también se puede hacer mediante un mini blog que se genera de manera automática a partir de las tiras generadas por el usuarios.

comic-blog

Tag cloud y caches de objetos en php con mysql

noviembre 13, 2008

Como no era para menos comix2me ya tiene su propia tagcloud para poder encontrar los contenidos que sean de mayor interes.

cloud2

Para agilizar los accesos a la base de datos para extraer la tag cloud he usado un sistema de cache orientado a objetos sobre mysql y php, siguiendo la misma filosofia de WurlfDBCache.

Se trata de un diccionario cuyos indices son los identificadores de los objetos y que contiene una copia del objeto del tipo que se quiera para una entrada en particular, esa copia tiene un tiempo de vida en caso de expirar el acceso a la cache fallara y no devolverá ningún objeto. El incremento en el rendimiento es espectacular.

Las operaciones basicas que se pueden realizar con la cache son (uso sintaxis de php), getElement($key), setElement($key,$object) e invalidateElement($key) para forzar la eliminacion de un objeto de la cache.

Incluyo un trozo de codigo para abrir boca.


$cacheKey = "sample_key_image_1"
$c = new DBObjectCache();
$strips = $c->getItem($cacheKey);
if ($strips == "")
{
$strips = ... get the strips from somewhere
$c->setItem($cacheKey,$strips);
}
.... etc, etc.

Acelerando el rendimiento de internet movil (WURFL)

septiembre 4, 2008

Ayer me descarge WURFL, para quien no lo conozca es una base de datos con más de 2000 teléfonos, para hacer una página que soportara adaptación multidispositivo pero en php. Este proyecto cuenta con una librería que permite la manipulación de los datos en php, pero los tiempos de respuesta eran bastante elevados (cerca de 200 milisegundos) por cada acceso, además el consumo de memoria también era bastante elevado, puesto que la librería necesita unos 8 megas para ejecutarse, todo ello debe hacerse para cada página que se entrega al usuario, por lo que en un eventual acceso concurrente de varios usuarios el consumo de recursos y el tiempo de respuesta se degrada en exceso.

Para solucionarlo, en un ratito ayer por la noche desarrolle una capa que es una cache basada en Mysql que permite acelerar el proceso hasta 20 veces, los tiempos de respuesta de la nueva librería son de 10 milisegundos y el consumo de memoria es mínimo.

Mobile_portal

Mobile_portal

Wurfl es el repositorio de terminales más extendido, y sus librerías son usadas de forma extensiva por gran parte de la comunidad de desarrolladores de aplicaciones móviles, por eso he decidido crear un proyecto de código abierto en Sourceforge para compartirlo para cualquiera que la quiera utilizar, podeis acceder pinchando aquí.

Es cierto que existe otra librería que utiliza mysql para gestionar la información de wurfl, pero la que he desarrollado tiene el objetivo de ser muy sencilla de instalar (en 2 minutos está) y solamente ser una capa que acelera el acceso sin la necesidad de configurar prácticamente nada para poder usarla.

Espero que os guste!