jueves, 24 de diciembre de 2009

2009 un año de amigos

Estoy feliz de mirar atrás y ver que este año se acerca a su fin. Este 2009 que me dio tantas oportunidades, que me permitió aprender tantas cosas y conocer tantas personas. Quiero hacer una entrada simple para agradecer ante todo a Dios y a todas las personas maravillosas que ha puesto en mi camino.

Si bien he logrado varias de mis metas, habría sido imposible sin el apoyo de en primera instancia mi familia, mis amigos y todas aquellas personas que estuvieron dispuestas a ayudarme y compartir conmigo.

Estoy convencido de que si hay algo realmente milagroso es el amor, y probablemente será este el único capaz de transformar vidas. Gracias compañera, gracias parceros astrolabianos, gracias compañeros de la web, amigos y colegas. Que el otro año siga siendo de grandes triunfos.

¡Feliz Navidad!

jueves, 17 de septiembre de 2009

Detectar idioma del navegador del usuario con PHP

En sitios que manejan múltiples idiomas muchas veces es necesario redireccionar a los usuarios a la ubicación correspondiente de acuerdo al idioma con que naveguen.

Para esto, usando algo similar al script para detectar el navegador usando PHP podemos generar una sencilla función en que redirija al usuario a la ubicación deseada de acuerdo a su idioma. El script puede ser algo como lo siguiente:

1  
<?php 
2  
//Creamos una función que detecte el idioma del navegador del cliente.
3  
function getUserLanguage() { 
4       
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
5       return 
$idioma
6  }
7  
8  
//Almacenamos dicho idioma en una variable
9  
$user_language=getUserLanguage();
10  
11  
//De acuerdo al idioma hacemos una o varias redirecciones.
12  
if($user_language=='en'){
13       
header'Location: http://www.ejemplo.travel/en' );
14  }
15  elseif(
$user_language=='de'){
16       
header'Location: http://www.ejemplo.com/de' );
17  }
18  
?>



Sencillo y bastante ùtil. ¿Conoces otra formas de hacerlo?

jueves, 3 de septiembre de 2009

El Modelo Astrolabio

Es menos de un mes el tiempo que llevo haciendo parte de Astrolabio, es hoy para mí un orgullo dedicar un espacio de mi blog a hacer un breve comentario de la que considero la mejor compañía que he tenido la oportunidad de conocer.

Hacer parte de Astrolabio fué encontrarme con un increible grupo de personas, de gente no solo talentosa sino humana, llena de valores y virtudes. Gente que le sonríe a la vida, que sabe ponerle el corazón y el alma a lo que hacen.

Un sueño que se gesta con las ganas y el trabajo de muchas culturas, un grupo conciente de su importante papel como reconstructores de una sociedad y como parte del gran gremio de la web.

Más que una empresa, una verdadera familia, un ambiente de trabajo increible; siempre me logran sacar una sonrisa al día. Tomando el ejemplo de Astrolabio reafirmo mi tesis de que sin importar cuanto dinero o número de "empleados" tenga una compañía, el verdadero éxito es poder salir adelante con el orgullo de no haber pasado por encima de los demás y con la satisfacción que siempre genera el resultado logrado con esfuerzo y pasión.

Bendecido y orgulloso me siento hoy, al saber que pertenezco a este sueño denominado Astrolabio pero antetodo, al saber que tengo la oportunidad de crecer y aprender junto a gente de tan alta calidad humana.

domingo, 9 de agosto de 2009

Como hacer pruebas de rendimiento a servidores con Apache Benchmarking

Para elegir un proveedor de hosting (alojamiento) e incluso la configuración ideal para el servidor de una aplicación web, siempre viene bien tener una comparativa que nos permita tomar la decisión.

La herramienta Apache Benchmarking Tool permite simular peticiones al servidor, lo que en teoría nos permite saber que tantos usuarios podrán estár conectados simultaneamente.

Su instalación en un entorno linux es bastante sencilla, y solo basta con instalar el paquete apache-tools. Una vez instalado podemos ejecutarlo en una sesión como administrador de la siguiente manera.

ab -k -n 1000 -c 400 http://www.example.com

Donde:

  • -n indica el número de peticiones que queremos hacer (en este caso 1000)
  • -c indica el número de peticiones simultaneas que queremos hacer (en este caso 400)
  • -k es un parámetro que simula conexiones de larga duración
  • http://www.example.com Sería la URL de nuestro sitio web.

Al final del proceso tendremos una lista que nos dirá el tiempo que tardó la operación, así como el tiempo promedio por petición.

Más información en: http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html (En Ingles)

domingo, 31 de mayo de 2009

Arquitectura de información (II). Documento Guía, no salgas a la Web sin el.

Continuando la entrada anterior me encuentro aquí, tratando de resumir en breves artículos un arte y una ciencia, La Arquitectura de Información. Si bien no hay una manera estándar o un escrito formal donde se encuentre información acerca de los pasos a seguir al realizar un buen proceso de arquitectura, se puede hacer una recopilación basada en la experiencia, prácticas e ideas de actores y autores de la Web.

Gran parte de los recursos en los que me basaré en adelante, fueron obtenidos de varias personas también conscientes de la necesidad de una Web Usable y de alta calidad en Colombia. Mario Carvajal escribió un interesante artículo en donde expone de manera rápida los mínimos pasos a tener en cuenta en un proceso de AI (Arquitectura de Información). También fué de gran ayuda la charla dirigida por Edwin Bernal acerca de arquitectura de Información y planeación de sitios Web, el material utilizado en la conferencia se puede hallar en SlideShare.

Después de los debidos reconocimientos, es hora de hablar de arquitectura de información. La mayoría de autores que han escrito al respecto concuerdan en el hecho de que es una parte esencial y primer paso para realizar un buen proceso de AI en un proyecto Web es comenzar por la definición del Documento Guía.

Si bien el documento guía es considerado el inicio del proceso de arquitectura, este es fruto de un análisis de los requerimientos del cliente, del entorno, de los futuros usuarios de la solución y de los objetivos que se quieren alcanzar. Desarrollar un sitio Web sin un documento guía es como tratar de llegar a Roma sin mapa y sin preguntarle a Nadie.

El Documento Guía es fundamental, este será como su nombre lo indica el punto de referencia de todo el proceso de desarrollo, de donde se desprenderan más adelante las diferentes fases de análisis y donde quedan plasmados los aspectos más fundamentales del sitio Objetivos, Usuarios y Contenidos.

Un buen punto a tener en cuenta para comprender que nivel de planeación tuvo su portal web es preguntarse si hubo o nó un Documento Guía del proyecto. Algunos puntos clave de este documento son:

Introducción: Suele ser una breve descripción del proyecto a desarrollar.

Antecedentes: Ya sea que se trate de un nuevo proyecto o la migración y optimización de uno existente, la evaluación de los antecedentes da una clara mirada sobre la situación previa a la implementación de la solución y los principales aspectos a mejorar. Es necesario ver el pasado para comenzar a pensar que queremos obtener en el futuro.

Objetivos: Es esencial para el posterior desarrollo tener claros los objetivos. Generalmente en esta fase se plantean preguntas como ¿ Porqué es necesario el desarrollo de este portal ?.

Los objetivos son precisamente la Meta, el futuro que se espera alcanzar, y los indicadores que determinaran el éxito del desarrollo. Los objetivos deben ser claros, tangibles y cuantificables. No es un objetivo apropiado "Aumentar la audiencia del sitio", con un solo usuario de más que ingrese se habrá cumplido el objetivo; es preferible "Duplicar el número de visitas".

Tampoco sería muy apropiado que el objetivo de su sitio sea "Estar en internet" probablemente es de las definiciones más ambiguas que pueden haber; de hecho en este preciso instante usted está en internet. Procure que los objetivos de su sitio sean directos, claros y posteriormente evaluables.


Usuarios (Metas y Tareas): Es uno de los componentes más importantes del documento guía. Solo por si alguna vez pudo pensar lo contrario, los sitios web están hechos para los usuarios, son ellos los que le dan sentido, posicionamiento y valor al desarrollo. Creame no hay nada más frustrante que ver un sitio que no fue pensado en el usuario, es como darle la espalda a una de las personas más importantes en una compañía, el cliente.

Así que cuando se hace el análisis de usuarios, se debe tener en cuenta que perfiles de usuario visitaran su sitio. A quien va dirigido, nivel de conocimientos en Web; que contenidos, recursos e información desean encontrar (Metas), que tareas querrán realizar. Una buena definición de esta sección le permitirá más adelante orientar su desarrollo a la satisfacción de los usuarios, inventariar correctamente los contenidos, crear una buena estructura de navegación e incluso ayudar con la definición de palabras clave para el posicionamiento.

Preguntas interesantes para hacerle a su proveedor de soluciones web podrían ser, "¿Cuanto es el tiempo promedio de estadía en el sitio por usuario?, ¿ Que secciones han sido las más accedidas?, ¿ Por qué palabras clave han encontrado el sitio ?".

Análisis de la competencia: Por lo general cuando se va a implementar una solución web, siempre podrá encontrar competencia. Sitios con buen posicionamiento, sitios de gran calidad en términos de usabilidad, sitios con muchas visitas, entre otros. El analizar la competencia le permite ampliar sus criterios de evaluación, además de hacer sitios que sean rentables en términos de visitas y posicionamiento.

Si el sector económico donde está ubicada su compañía no tiene mucha presencia en la web, incluso le vendría bien pensar que las grandes redes sociales como Facebook, Youtube, Twitter... son parte de su competencia. ¿ Ofrecerá al usuario algo lo suficientemente bueno como para que invierta cinco minutos menos en Youtube y visite su sitio ?

En esta sección del documento guía se analizan los posibles competidores sin entrar en detalles, solo datos generales como nombres, direcciones y breves razones de porque considerarlos competencia. Más adelante se ahonda más en el tema en otro proceso de análisis específico para este tema.

Definición de contenidos: En esta sección se hace una muy breve definición de los contenidos generales que tendría el portal. En el proceso de AI hay una fase dedicada exclusivamente a este punto El Inventario de Contenidos, sin embargo, viene bien empezar a dar enfoque y forma a esta parte esencial desde el inicio.

Inventario (Lluvia) de ideas: Por último viene bien una lluvia de ideas con todo aquello que debería haber en el sitio, ideas a considerar, funcionalidades, detalles importantes, sueños, locuras etc... Es una buena práctica sobretodo cuando se hace en compañía de un buen grupo de colaboradores. Ayuda a fortalecer el sitio y obtener puntos que marquen la diferencia con respecto a la competencia.

Cabe destacar que el documento guía no tiene un orden formal. Tampoco una estructura definida, según el tamaño y destinación del proyecto podría tener más o menos secciones. Lo importante es entender que este importante artefacto será el punto de referencia para el desarrollo. La base de lo que se construirá más adelante y el mapa que lo llevará a Roma (Está bien, tal vez tenga que preguntar también a una u otra persona).

¿ Cansado ?. Yo solo traté de resumir en breves frases un documento muy importante en el proceso de Arquitectura de Información de todo sitio. Si solo leerlo toma tiempo, aún más lo toma el desarrollarlo y formalizarlo. Un buen punto a tener en cuenta sobre todo si le ofrecieron "Página web en 48 Horas!!! "

Otro recurso interesante sobre arquitectura web:
http://www.imaginas.net/cursos/upm/

miércoles, 27 de mayo de 2009

Uniendo, organizando, filtrando y manipulando tus Feeds con Yahoo Pipes

Una de las funcionalidades que empleo en mi Facebook es el importar notas directamente desde un Blog o sitio web mediante RSS.

Un pequeño inconveniente es que Facebook únicamente te permite traer datos desde un RSS; pero en mi caso, escribo en varios blogs y me parece relevante poder mostrar tanto entradas del blog de Tery Software como de mi blog personal.

Por recomendaciones decidí emplear Yahoo Pipes una muy buena herramienta que te permite manipular datos traidos a través de protocolos de sindicación de una manera bastante agradable. Entre las funcionalidades que puedes aprovechar estan: unir feeds, ordenarlos, filtrarlos, separarlos; todo con una interfaz bastante amigable y gráfica.

Utilize una función de Join y Sort para crear un Pipe que uniera mis dos blogs. Luego pude tener actualizados mis posts de ambos sitios en mi perfil de Facebook.

Esta es la imagen del Pipe que construí.

http://pipes.yahoo.com/juansaab/myfeed




Ahora puedes seguir mi actividad vía Rss en el siguiente feed:
http://pipes.yahoo.com/pipes/pipe.run?_id=OABzNu5K3hGeI8FawjSbTQ&_render=rss


¿ Que opinas ?

domingo, 24 de mayo de 2009

Arquitectura de información (I), Un paso para el reconocimiento profesional del desarrollo Web.

Para nadie es un secreto el constante crecimiento de compañías y profesionales Colombianos cuyo modelo de negocio está orientado al desarrollo sobre Web. La no tan reciente explosión de internet en Colombia, la baja de precios en los costos de suscripción al hoy necesario servicio, así como el tan difundido "rentable" negocio del café Internet (Donde por cierto en la mayoría de casos no se ofrece café) han desatado en la población en general la percepción de lo necesario que es involucrarse en la Red.

La difusión acelerada del concepto, así como la falta de una política real de concienciación y alfabetización digital han causado que el concepto de portal, solución web o más llamada "página de internet" sea minimizado, tomado a la ligera y ofrecido como producto por cientos de compañías, aficionados y "profesionales".

La necesidad de "estar en internet, porque el que no está en internet no existe" ha desatado un preocupante índice de compañías que ofrecen portales web de los que se hacían en los orígenes de la red mundial, así como gran cantidad de desarrollos que pasan por modernos por tener despampanantes animaciones en "flash" pero que se encuentran probablemente a años luz de lo que hoy exige el usuario de internet.

Debido probablemente al fácil acceso a la información y al alto índice de desconocimiento de la tecnología por parte del común, resulta bastante sencillo creer que se es un profesional de la internet; al fín y al cabo se sabe html, Adobe Flash, Dreamweaver, se está listo para salir a vender "páginas" y solucionar la vida de la agobiada realidad de miles de empresarios que buscan tener una frase seguida de un www para poner en sus tarjetas, brochures etc...

Sin más rodeos y con solo observar un poco, Colombia se encuentra atestada, llena de un montón de empresas que ofrecen soluciones web, páginas, portales de bajo costo, corto desarrollo y porque no decirlo también poco crecimiento. Portales abandonados que se hicieron sin pensar en el usuario, por los cuales se cobró y se dejaron en el escritorio de un cliente que no sabía lo que compraba y que aprendió que la mejor web es aquella que se mueve, que es "dinámica" y que contiene los cuatro pilares básicos de la web (Quienes Somos, Que Queremos, Productos, Servicios). ¿Y que pasó con el posicionamiento?. ¿ Porqué no hay usuarios que visiten el sitio ?. ¿Porqué no aumenta el número de clientes ?. Y una pregunta aún más triste ¿ Porqué cobraron quinientos mil (500.000) cuando hay sitios de doscientos mil (200.000) ?

La respuesta a esas preguntas no es única, pero si puede partir de un hecho muy simple "NO se hizo un proceso de Arquitectura de información" su sitio fue subvalorado, usted es el poseedor de una copia casi identica de su brochure impreso y al igual que este último no está preparado para crecer, no está preparado para ser visto por cualquier usuario del mundo y muy seguramente puede resumirse todo en el hecho de que no está preparado para la web.

Del otro lado del escenario el panorama tampoco es el más agradable, su negocio que en algún momento fue rentable cada vez va peor, nace competencia que cobra la mitad de lo que usted cobra, sus sitios no se ven como los grandes portales de internet y peor aún, a su cliente le lavaron el cerebro y le dijeron que la web no debía ser en flash, que debía aparecer en Google y que debía ser pensada en el usuario.

Si usted se encuentra cercano a alguna de estas situaciones, espero más adelante unirme a la inciativa que ya emprendimos varios y mostrarle los beneficios que puede ofrecerle un sitio bien planeado, bien dirigido, y bien desarrollado. Lo que viene es un resumen de conceptos que han sido expuestos por actores y gestores de la buena web, una breve descripción de lo que es arquitectura de la información, lo que hace a un sitio realmente grande y bueno, y una buena razón para que por fín se pueda entender que el desarrollo web es una ciencia que exige planeación, preocupación por el usuario, integración de un buen y diverso equipo de profesionales, capacidad de crecimiento, seguimiento de estándares y seguramente una buena inversión.