Feedorss’s Weblog


¡Feedo ya está aquí!

Posted in Uncategorized by feedorss on the May 14, 2008

Por fin, ha sido publicada una versión beta del agregador RSS vocal Feedo.

A la espera de encontrar un servidor donde alojarlo,  se ha decidido publicar un paquete que permitirá a aquellos que lo deseen probar la aplicación desarrollada en PHP, utilizando como servidor su propio equipo.

Para ello será necesario disponer de un servidor web que soporte PHP, además del servidor de bases de datos MySQL. Este último se puede obtener de forma totalmente gratuita: MySQL. También existen alternativas gratuitas para obtener un servidor de páginas web, por ejemplo Apache. Aunque la solución más sencilla tal vez sea buscar un paquete con todo incluido. Algunos ejemplos son: XAMPP, AppServ, etc. Todos ellos incluyen Apache con PHP 5 y MySQL.

Esta versión beta de Feedo consiste en un paquete en formato tar.gz disponible en RedIris y en SourceForge. Dicho paquete contiene, además del código de la aplicación y su base de datos (en forma de script sql), instrucciones de instalación paso a paso, documentación HTML (generada con PHPDocumentor) y un conjunto de pruebas unitarias y funcionales. Ésto último está destinado a facilitar la creación de un entorno de desarrollo que permita modificar y/o ampliar el programa a aquellos que lo estimen oportuno. Para tal caso sería necesaria la instalación de symfony, framework PHP con el que se desarrolla Feedo.

Como se trata de una versión beta y por lo tanto no definitiva, se ha tomado la decisión de no incluir aún la parte de voz, que permitirá en versiones posteriores de Feedo acceder a él a través de un dispositivo con soporte para VozIP.

Registrarse en Feedo

Posted in Uncategorized by feedorss on the February 18, 2008

He decidido que los datos necesarios para crear una cuenta en Feedo sean solamente un correo electrónico y una contraseña.

El motivo que me lleva a tal decisión es sencillamente facilitar el registro a los usuarios. Últimamente están apareciendo opiniones a través de la red que ponen de manifiesto las múltiples ventajas de realizar este tipo de sistemas de registro. Entre ellas destacán la brevedad y sencillez del proceso y la garantía de un identificador único para todo internet dado que una dirección de correo electrónico así nos lo garantiza.

He encontrado este enlace, que trata sobre el tema, interesantísimo: TiRSO!Blog.

Internacionalización y localización en Symfony

Posted in Uncategorized by feedorss on the February 15, 2008

Como ya he dicho en un post anterior Symfony es un framework de PHP que ofrece soporte para internacionalización (i18n) y localización (l10n).

En primer lugar definiré brevemente ambos conceptos.

Por internacionalización se entiende el proceso de generación de distintas versiones de un mismo contenido en idiomas diferentes.

Por otra parte localización se refiere al proceso de adaptación de los contenidos a un determinado país o región del mundo.

 

El soporte que ofrece Symfony a dichos procesos se centra principalmente en tres aspectos:

 

Traducción de textos.

 

Estándares y formatos. Me refiero a fechas, unidades monetarias etc.

 

Localización de contenidos.

 

Para manejar todas estás cuestiones de una manera más sencilla Symfony trabaja con el concepto de “Cultura del Usuario”. Que no es más que una cadena de texto donde se indican el idioma y el país a los cuales se debe ajustar la interfaz y el contenido. Un ejemplo de cultura de usuario puede ser la cadena “en_US”. “en” es el código del ingles según el estándar ISO 639-1 y “US” es el código de los Estados Unidos de América según el estándar ISO 3166-1. El país también tiene su importancia en los procesos de internacionalización y localización puesto que países que comparten un idioma pueden por ejemplo tener distinto sistema métrico o monetario.

De esté modo cuando el usuario elige traducir la página a un idioma distinto al idioma por defecto el código PHP puede llegar a ser tan sencillo como cambiar la cultura del usuario, para lo que el framework ofrece métodos setter y getter.

Lo más habitual es que la cultura del usuario se obtenga de las preferencias del navegador en la primera petición http. Symfony obtiene la cultura por defecto de la aplicación de un archivo de configuración externo llamado i18n.yml.

 

Dentro del tema de estándares y formatos  Symfony ofrece principalmente dos herramientas. La primera es un amplio conjunto de helpers de internacionalización que facilitan la tarea de ofrecer y obtener información del usuario.

La segunda es la forma en que realiza Symfony el mapeo de la base de datos a través de Propel. Para llevar a cabo la localización de una aplicación la base de datos debe permitir almacenar distintas versiones de un mismo contenido. Cada tabla que ofrece información localizada se debe dividir en dos. Una sin ningún tipo de información localizada y otra con toda la información localizada. La segunda tendrá el mismo nombre que la primera pero con el sufijo “_i18n”. Si ambas tablas están relacionadas por una columna “id”, tras generar el modelo con Propel, las consultas realizadas devolverán solamente los resultados relacionados con la “cultura del usuario” actual.

 

En cuanto a la traducción de textos Symfony ofrece el uso de diccionarios. Un diccionario es un archivo en xml que almacena la traducción de las frases del interfaz a un determinado idioma. Para ello se emplea el formato XLIFF (XML Localization Interchange File Format). Este formato define parejas entrada-valor, donde la entrada se corresponde a la frase utilizada en el interfaz, normalmente en el idioma de la cultura por defecto, y el valor a su traducción en el idioma para el que se define el diccionario.  

Por cada nuevo idioma al que deseemos traducir la interfaz deberemos generar uno de estos diccionarios.

Para declarar una frase como traducible se utiliza el helper __(). Symfony sustituye cada frase dentro de este helper por la encontrada en el diccionario correspondiente al idioma indicado en la “cultura del usuario” actual. En el caso de que la cultura actual coincida con la cultura por defecto no se realiza ninguna sustitución.    

 

Esta información se obtuvo del manual de uso de Symfony, Capítulo 13.

Feedo elige Symfony

Posted in Uncategorized by feedorss on the December 14, 2007

He elegido Symfony como framework de trabajo.

Symfony es un framework de desarrollo web en php5 que facilita la creación aplicaciones acordes a la arquitectura MVC (Model View Controller). Entre otras características técnicas destacan: soporte para internacionalización (i18n), uso de helpers, herramientas para validación de formularios mediante archivos de configuración externos, gestión de caché, soporte para URLs limpias (Smart URLs) y scaffolding.

Entre los motivos que me llevaron a su elección frente a otros como Phrame o CakePHP cabe reseñar varios: facilidad para refactorizar el código (característica de mucha utilidad si se producen cambios en algún planteamiento del proyecto), soporte a técnicas como scaffolding que enlazan con las metodologías ágiles de desarrollo (se pretende que el proyecto sirva también para introducirme en el tema), la organización que demuestra la comunidad de software libre que hay detrás del proyecto y la cantidad de documentación disponible en varios idiomas.

Para más información sobre Symfony se pueden consultar los siguientes enlaces:
Ingles:www.symfony-project.org
Español:http://www.symfony.es/

¡Aceptado en el Segundo Concurso de SW Libre!

Posted in Uncategorized by feedorss on the November 16, 2007

Feedo, el agregador RSS vocal ha sido admitido en el Segundo Concurso Universitario de Software Libre.

Aquí podeís ver una lista con todos los participantes en el concurso: http://concursosoftwarelibre.org/node/43