sábado, enero 30, 2010

Information Appliances (iPad, iPhone y iPod)

iPhone, iPods, iPads... estos dispositivos están en boca de todo mundo por lo innovadores que son... lo que no saben, es que estos "Information Appliances" (dispositivos de información) tienen años de esperar el momento ideal para llegar la palma de nuestras manos.


Hace algunos dias Apple mostro su nuevo aparato milagroso, un nuevo "iHardware" que viene a llenar el nicho (aun existente) entre las laptops y los smartphones. Si no lo han visto, este es uno de los anuncios (en Ingles):



"iPad"


Muchos diran que el iPad es un iPhone con esteroides o glorificado. Eso pense al principio, pero ahora creo que es un poco erroneo tener esa idea de este nuevo aparatito. Veran, todos estos dispositivos, que son realmente buenos solo haciendo "una cosa a la vez" (y se mantendrán asi), son producto de un visionario diseñador llamado: Jef Raskin.


 Raskin trabajo como el experto en interfaces que lidero el proyecto Macintosh (hasta que Steve Jobs lo saco de ahi). Durante su tiempo en Apple, Raskin trabajo en una IDEA de interfaz de usuario llamada "information appliance". En la mente de Raskin, un dispositivo de información seria un "aparato con capacidades de computo con un solo propósito". Eso no suena muy interesante, pero esperen, porque Raskin propone que este aparato sea tan facil de usar que cualquier persona pueda tomarlo y comenzar a jugar con el, sin ningun tipo de entrenamiento. Hmmmm, eso me suena familiar:



"Niñas de 2 años usando un iPhone."


Este dispositivo deberia tener la cantidad ideal de botones, en los lugares adecuados, con el software adecuado. Y seria tan facil de usar, que se convertiria "invisible" para el usuario, al que es simplemente parte de su vida cotidiana.

Años mas tarde, Raskin llego a la conclusion de que si bien su idea era buena, las personas NO estarian dispuestas a usar otro aparato mas, porque ya tenian un telefono, una camara, un "walkman" o una computadora.
Pero Raskin vio las "interfaces tactiles", y llego a la conclusion de que si, quizas, los botones y la informacion estuviera todo en el software, se podría crear un "morphing information appliance". Un aparato que cambie, para hacer cada tarea (una tarea a la vez) a la perfeccion, cambiando su "modo" de acuerdo a TUS objetivos...

La idea siempre fue, crear la interfaz perfecta en la pantalla, especialmente para una tarea especifica, de una forma tan fácil que la gente lo entienda perfectamente.



Como ven, la idea de los "iProducts", no es nueva, pero cada uno de estos aparatos, es revolucionario en si mismo, porque llevan a los usuarios (consumidores) a la realización de las predicciones de Raskin.

Ahora regresando al punto, porque el iPad NO es un iPhone es simple:
Un iPhone es un "hand-held-device", es algo que usas con una mano, y que es personal, lo podes llevar a cualquier lado, es TU information appliance.
Un iPad es un dispositivo familiar, es un instrumento social, es algo que dejaras en tu oficina o en la mesa de tu sala, con software que compartiras con tus amigos. Yo me puedo imaginar un iPad con Risk, "No te enojes" o ajedrez. Es un aparato de INVOLUCRA. No es para ti unicamente, es un aparato para compartir.

Y como punto adicional, la ganancia de Apple, no esta en hacer un iPhone multi tarea o sacar una nueva version del OS cada 3 meses, ni hacer un nuevo dispositivo milagroso (por el momento)... la ganancia de Apple radica en hacer sus productos tan transparentes y normales, que simplemente sean tan comunes como lo son los reproductores de DVD's en tu sala.

¿Que harias tu con un iPad? Espero sus comentarios, hasta la proxima!

Information Appliances (iPad, iPhone y iPod)

iPhone, iPods, iPads... estos dispositivos están en boca de todo mundo por lo innovadores que son... lo que no saben, es que estos "Information Appliances" (dispositivos de información) tienen años de esperar el momento ideal para llegar la palma de nuestras manos.


Hace algunos dias Apple mostro su nuevo aparato milagroso, un nuevo "iHardware" que viene a llenar el nicho (aun existente) entre las laptops y los smartphones. Si no lo han visto, este es uno de los anuncios (en Ingles):



"iPad"


Muchos diran que el iPad es un iPhone con esteroides o glorificado. Eso pense al principio, pero ahora creo que es un poco erroneo tener esa idea de este nuevo aparatito. Veran, todos estos dispositivos, que son realmente buenos solo haciendo "una cosa a la vez" (y se mantendrán asi), son producto de un visionario diseñador llamado: Jef Raskin.


 Raskin trabajo como el experto en interfaces que lidero el proyecto Macintosh (hasta que Steve Jobs lo saco de ahi). Durante su tiempo en Apple, Raskin trabajo en una IDEA de interfaz de usuario llamada "information appliance". En la mente de Raskin, un dispositivo de información seria un "aparato con capacidades de computo con un solo propósito". Eso no suena muy interesante, pero esperen, porque Raskin propone que este aparato sea tan facil de usar que cualquier persona pueda tomarlo y comenzar a jugar con el, sin ningun tipo de entrenamiento. Hmmmm, eso me suena familiar:



"Niñas de 2 años usando un iPhone."


Este dispositivo deberia tener la cantidad ideal de botones, en los lugares adecuados, con el software adecuado. Y seria tan facil de usar, que se convertiria "invisible" para el usuario, al que es simplemente parte de su vida cotidiana.

Años mas tarde, Raskin llego a la conclusion de que si bien su idea era buena, las personas NO estarian dispuestas a usar otro aparato mas, porque ya tenian un telefono, una camara, un "walkman" o una computadora.
Pero Raskin vio las "interfaces tactiles", y llego a la conclusion de que si, quizas, los botones y la informacion estuviera todo en el software, se podría crear un "morphing information appliance". Un aparato que cambie, para hacer cada tarea (una tarea a la vez) a la perfeccion, cambiando su "modo" de acuerdo a TUS objetivos...

La idea siempre fue, crear la interfaz perfecta en la pantalla, especialmente para una tarea especifica, de una forma tan fácil que la gente lo entienda perfectamente.



Como ven, la idea de los "iProducts", no es nueva, pero cada uno de estos aparatos, es revolucionario en si mismo, porque llevan a los usuarios (consumidores) a la realización de las predicciones de Raskin.

Ahora regresando al punto, porque el iPad NO es un iPhone es simple:
Un iPhone es un "hand-held-device", es algo que usas con una mano, y que es personal, lo podes llevar a cualquier lado, es TU information appliance.
Un iPad es un dispositivo familiar, es un instrumento social, es algo que dejaras en tu oficina o en la mesa de tu sala, con software que compartiras con tus amigos. Yo me puedo imaginar un iPad con Risk, "No te enojes" o ajedrez. Es un aparato de INVOLUCRA. No es para ti unicamente, es un aparato para compartir.

Y como punto adicional, la ganancia de Apple, no esta en hacer un iPhone multi tarea o sacar una nueva version del OS cada 3 meses, ni hacer un nuevo dispositivo milagroso (por el momento)... la ganancia de Apple radica en hacer sus productos tan transparentes y normales, que simplemente sean tan comunes como lo son los reproductores de DVD's en tu sala.

¿Que harias tu con un iPad? Espero sus comentarios, hasta la proxima!

martes, enero 26, 2010

Adaptando tu Sitio Para Móviles - Parte 1

Para nadie es sorpresa que cada vez son más las personas que poseen un smartphone o un dispositivo (no necesariamente un celular) con capacidades de navegación por la World Wide Web como por ejemplo un iPhone o un iPod touch. Estos dispositivos son muy prácticos para cuando deseas revisar tu correo electrónico, los feeds de tus blogs o simplemente entretenerte navegando en el mar de páginas web que se pueden encontrar hoy en día y de casualidad te encuentras fuera de tu casa, en alguna cafetería o centro comercial donde encontraste una red WiFi disponible.

Sabiendo esto, las empresas y organizaciones deben tomar en cuenta que muchos de sus clientes / usuarios ahora tienen la alternativa de acceder desde un dispositivo móvil a los servicios web (o simplemente el contenido web) que estos ofrecen pero existe un inconveniente: Dichos sitios web fueron diseñados para ser vistos desde una computadora con una resolución como mínimo de 1024x768. Esto significa que cuando intentas ver uno de estos sitios en tu dispositivo móvil, puede lucir como en la siguiente imagen:


"Google Code - Uno de los sitios de Google que a diferencia de GMail, GReader y Google Calendar, aun no tiene una version para móviles. Screenshot tomado desde un iPod touch (izquierda) y desde un móvil con Android (derecha). Captura de pantalla desde el Android cortesia de @jainux"

Como puedes notar, el sitio no está adecuado para ser visualizado desde un dispositivo móvil. Esto dificulta la navegación en el mismo, teniendo que hacer zoom in para poder leer el texto y también zoom out para luego ver la página completa y dirigirse a otras secciones de esta.


El primer framework que conocí, el cual realmente es un plugin para Wordpress, fué WPTouch. Al agregar este plugin a tu blog de Wordpress, este identifica automáticamente cuando estás visitando el blog desde un iPhone o iPod touch y modifica la plantilla adaptándolo a las dimensiones y paleta de colores de dicho dispositivo para que la lectura del blog sea lo más adecuada.


"Soda Caustica, blog de Virginia Lemus. Uno de los primeros blogs donde observe el uso del plugin WPTouch para blogs de Wordpress."

Existen servicios que te automatizan la tarea de crear una versión móvil de tu sitio, adaptando las dimensiones de la plantilla y eliminando contenido que posiblemente no funcionará en tu dispositivo o retrasará innecesariamente la carga del mismo. Entre estos sitios se encuentran MoFuse, dotMobi y mobifyMe.

MoFuse (link) Este es el más sencillo de todos los servicios. Te permite crear una versión móvil en tan solo un par de clicks con un mínimo de personalización del mismo pero ofreciéndote a cambio un dominio .mofuse.com para tu sitio creado el cual luego puedes asociar con tu propio dominio. Ofrece diferentes planes de pago y entre ellos, un plan gratuito orientado a blogs. Para empezar, debes escribir la URL de tu blog o de los feeds generados a partir de tu blog.

DotMobi (link) Es en forma general, un conjunto de servicios orientados a promover los sitios móviles y la movilización de sitios actuales, así como todo lo relacionado con sitios web para móviles, ofreciéndote muy valiosas herramientas, documentación y referencias. Entre estas herramientas posee una denominada Instant Mobilizer, la cual genera casi automáticamente una versión móvil de tu sitio web. Las features que más llaman la atencion son Click to call que agrega un vínculo con el número telefónico de tu empresa y Google Map Autogeneration que agrega un vínculo de Google Maps apuntando a la dirección de tu empresa. La desventaja es que no posee un dominio propio para asignarle a tus sitios sino que tienes que conseguir un dominio con uno de sus partners.

MobifyMe (link) También te permite crear una versión móvil de tu sitio pero a diferencia de DotMobi y MoFuse, este no te lo hace de forma instantánea generando una plantilla automáticamente. Sacrificas esta feature obteniendo un mayor control sobre el contenido de tu nuevo sitio permitiéndote seleccionar los elementos que deseas mostrar tomándolos directamente de tu sitio original y adaptándolos a las dimensiones de un dispositivo móvil usando además hojas de estilo personalizadas.

"Editando el layout una página de ejemplo en mobify.me"

Estos tres servicios te generan un sitio con su propio hosting y un domain customizable (también asociable a tu propio dominio) además de ofrecerte plugins y scripts para autodetección de tipos de dispositivos, el cual, al agregarlo a tu sitio original, puedes hacer que te redireccione automáticamente a tu versión móvil cuando este detecta que el usuario está navegando desde uno de estos dispositivos. Aunque parezca que este no es tan sencillo como los otros dos, este es el más profesional de todos y el que más opciones te ofrece para la personalización de tu nuevo sitio móvil. Además, entre los planes de pago te ofrece un plan gratuito con el que puedes hacer más que suficiente para montar la versión móvil de un sitio sencillo o un blog.

Acá puedes ver una versión del sr byte generada com MoFuse y acá una generada con MobifyMe. Esta última es la que mejor me ha parecido así que esperamos pronto se convertirá en la versión oficial del Sr Byte para móviles. Pronto habilitaremos su respectivo subdominio y la redirección automática.

Debido a la gran cantidad de contenido que deseaba postear sobre este tema, he dividido el post en dos partes. En el siguiente post continuaré con la segunda parte: "Adaptando tu Sitio Para Móviles - Parte 2: Do It Yourself"

Adaptando tu Sitio Para Móviles - Parte 1

Para nadie es sorpresa que cada vez son más las personas que poseen un smartphone o un dispositivo (no necesariamente un celular) con capacidades de navegación por la World Wide Web como por ejemplo un iPhone o un iPod touch. Estos dispositivos son muy prácticos para cuando deseas revisar tu correo electrónico, los feeds de tus blogs o simplemente entretenerte navegando en el mar de páginas web que se pueden encontrar hoy en día y de casualidad te encuentras fuera de tu casa, en alguna cafetería o centro comercial donde encontraste una red WiFi disponible.

Sabiendo esto, las empresas y organizaciones deben tomar en cuenta que muchos de sus clientes / usuarios ahora tienen la alternativa de acceder desde un dispositivo móvil a los servicios web (o simplemente el contenido web) que estos ofrecen pero existe un inconveniente: Dichos sitios web fueron diseñados para ser vistos desde una computadora con una resolución como mínimo de 1024x768. Esto significa que cuando intentas ver uno de estos sitios en tu dispositivo móvil, puede lucir como en la siguiente imagen:


"Google Code - Uno de los sitios de Google que a diferencia de GMail, GReader y Google Calendar, aun no tiene una version para móviles. Screenshot tomado desde un iPod touch (izquierda) y desde un móvil con Android (derecha). Captura de pantalla desde el Android cortesia de @jainux"

Como puedes notar, el sitio no está adecuado para ser visualizado desde un dispositivo móvil. Esto dificulta la navegación en el mismo, teniendo que hacer zoom in para poder leer el texto y también zoom out para luego ver la página completa y dirigirse a otras secciones de esta.


El primer framework que conocí, el cual realmente es un plugin para Wordpress, fué WPTouch. Al agregar este plugin a tu blog de Wordpress, este identifica automáticamente cuando estás visitando el blog desde un iPhone o iPod touch y modifica la plantilla adaptándolo a las dimensiones y paleta de colores de dicho dispositivo para que la lectura del blog sea lo más adecuada.


"Soda Caustica, blog de Virginia Lemus. Uno de los primeros blogs donde observe el uso del plugin WPTouch para blogs de Wordpress."

Existen servicios que te automatizan la tarea de crear una versión móvil de tu sitio, adaptando las dimensiones de la plantilla y eliminando contenido que posiblemente no funcionará en tu dispositivo o retrasará innecesariamente la carga del mismo. Entre estos sitios se encuentran MoFuse, dotMobi y mobifyMe.

MoFuse (link) Este es el más sencillo de todos los servicios. Te permite crear una versión móvil en tan solo un par de clicks con un mínimo de personalización del mismo pero ofreciéndote a cambio un dominio .mofuse.com para tu sitio creado el cual luego puedes asociar con tu propio dominio. Ofrece diferentes planes de pago y entre ellos, un plan gratuito orientado a blogs. Para empezar, debes escribir la URL de tu blog o de los feeds generados a partir de tu blog.

DotMobi (link) Es en forma general, un conjunto de servicios orientados a promover los sitios móviles y la movilización de sitios actuales, así como todo lo relacionado con sitios web para móviles, ofreciéndote muy valiosas herramientas, documentación y referencias. Entre estas herramientas posee una denominada Instant Mobilizer, la cual genera casi automáticamente una versión móvil de tu sitio web. Las features que más llaman la atencion son Click to call que agrega un vínculo con el número telefónico de tu empresa y Google Map Autogeneration que agrega un vínculo de Google Maps apuntando a la dirección de tu empresa. La desventaja es que no posee un dominio propio para asignarle a tus sitios sino que tienes que conseguir un dominio con uno de sus partners.

MobifyMe (link) También te permite crear una versión móvil de tu sitio pero a diferencia de DotMobi y MoFuse, este no te lo hace de forma instantánea generando una plantilla automáticamente. Sacrificas esta feature obteniendo un mayor control sobre el contenido de tu nuevo sitio permitiéndote seleccionar los elementos que deseas mostrar tomándolos directamente de tu sitio original y adaptándolos a las dimensiones de un dispositivo móvil usando además hojas de estilo personalizadas.

"Editando el layout una página de ejemplo en mobify.me"

Estos tres servicios te generan un sitio con su propio hosting y un domain customizable (también asociable a tu propio dominio) además de ofrecerte plugins y scripts para autodetección de tipos de dispositivos, el cual, al agregarlo a tu sitio original, puedes hacer que te redireccione automáticamente a tu versión móvil cuando este detecta que el usuario está navegando desde uno de estos dispositivos. Aunque parezca que este no es tan sencillo como los otros dos, este es el más profesional de todos y el que más opciones te ofrece para la personalización de tu nuevo sitio móvil. Además, entre los planes de pago te ofrece un plan gratuito con el que puedes hacer más que suficiente para montar la versión móvil de un sitio sencillo o un blog.

Acá puedes ver una versión del sr byte generada com MoFuse y acá una generada con MobifyMe. Esta última es la que mejor me ha parecido así que esperamos pronto se convertirá en la versión oficial del Sr Byte para móviles. Pronto habilitaremos su respectivo subdominio y la redirección automática.

Debido a la gran cantidad de contenido que deseaba postear sobre este tema, he dividido el post en dos partes. En el siguiente post continuaré con la segunda parte: "Adaptando tu Sitio Para Móviles - Parte 2: Do It Yourself"

jueves, enero 21, 2010

Escenarios de uso de Cloud Computing

En este breve articulo, se pretende mostrar tres casos puntuales de escenarios de uso de Cloud Computing y sus ventajas sobre el alojamiento web tradicional. Las aplicaciones web siempre se han instalado en servidores conectados a lo que ahora se denomina "la nube". Sin embargo, las demandas y tecnologías utilizadas en esos servidores, ha cambiado substancialmente en años recientes, especialmente con la entrada de proveedores de servicios como Amazon, Google y Microsoft.

Estas compañías ya tienen largo rato de proveer una infraestructura (hardware) flexible para aplicaciones web, de manera que esta se adapte y escale a diversos escenarios.

Escenarios de Uso...
Paga por lo que consumes
La instalación de aplicaciones web, hasta hace algunos años, era similar a la cuenta de tu teléfono fijo. Tenes que pagar una cuota de teléfono, consumas o no tiempo de llamadas.  Asi mismo, cuando compras alojamiento tradicional, compras espacio y pagas una "cuota fija", lleguen visitantes a tu sitio o no.
Cloud Computing cambia la idea del consumo fijo. Los varios recursos consumidos por una aplicación web (CPU, memoria, ancho de banda) se contabilizan por unidad (comenzando desde cero), como los contadores de agua de tu casa, y se paga de acuerdo al consumo de cada uno.


"... paga por lo que consumes(CPU, espacio, ancho de banda)."

Ejemplo: Supongamos que estas haciendo un sitio para hacerle competencia a Cherada.com, y supones que llegaran al menos 100,000 Salvadoreños a registrarse en el primer año, y como quieres estar preparado, compras el
mejor plan de alojamiento viendo la demanda futura que tendrá tu sitio por ese lapso de tiempo. Pero por cosas del destino (digamos mala publicidad, plataforma y mercadeo del sitio) casi nadie llega en ese año, a lo sumo, recibiste 1,000 visitas.
Si este penoso escenario se cumpliera, terminarías pagando el año completo con el mejor plan, independientemente de que lleguen 10,000 o 1,000 visitas. Con un proveedor de servicios, solo pagas lo que consumes, y si bien tenes que pagar una cuota por el servicio, en el escenario anteriormente mencionado, sera significativamente menos que el del alojamiento tradicional.

Suministro para eventos momentáneo (One time event provisioning)
Las aplicaciones web a veces sufren de "picos" de trafico debido a la cobertura de los medios, como comerciales de TV, apariciones en artículos periodísticos, eventos sociales (elecciones) y naturales (sismos), etc. Para poder soportar este tipo de carga en el sistema, sin que este se vuelva inestable o se convierta en un "servidor de excusas", muchas personas creen que necesitan comprar infraestructura o "arrendar equipo" para solventar la demanda de las visitas.
Si tu aplicación esta apoyada sobre una plataforma de servicio de un proveedor de Cloud Computing, este será el que se adaptará dinamicamente para proveer el recurso (CPU, memoria, ancho de banda) para que tu aplicación web supla la demanda de información por los visitantes que llegan repentinamente a tu sitio, sin que gastes ni un centavo en equipo físico.


"... no inviertas en equipo innecesario."

Ejemplo: ¿Cual fue el sitio web salvadoreño que mas sufrió el año pasado por las elecciones? Exacto, http://www.tse.gob.sv . Con Cloud Computing, el TSE podría haber suplido a la perfección la demanda de clientes al sitio, sin la necesidad de comprar o prestar equipo para un evento que sucede cada cinco años.

Crecimiento automatizado y tecnologías escalables
Si se tiene la capacidad de soportar eventos momentáneos, entonces las plataformas de Cloud Computing también facilitan el crecimiento gradual de curvas que presentan las aplicaciones web exitosas. En los escenarios usuales de crecimiento para aplicación web necesitan equipo especial (balanceadores de carga y clusters), que al emplear Cloud Computing, queda en la abstracción de la plataforma de nuestro proveedor de servicio. Y adicionalmente, muchas plataformas de Cloud Computing, proveen soporte para un "tier" de datos que excede el rendimiento de RDBMS (Relational Database Systems), como: Map Reduce, Big Table, etc.


"... crece sobre una infraestructura escalable."

Ejemplo: Supongamos una aplicación web, en donde se almacena los artículos de todos los blogs Salvadoreños, Twitts, fotos en Flicker, videos de YouTube, y noticias de los periódicos mas importantes de El Salvador, y lo hace de manera DIARIA. De manera que esta aplicación nos permite "ver el estado de El Salvador, en un día especifico" (¿buena idea no?). ¿A lo largo de 5 años, cuanta información (en TB) creen que tendríamos almacenada? ¿dos o tres TB? La idea es que la velocidad de búsqueda de la información debe ser la misma a lo largo del tiempo. Cloud computing nos permite: no solo almacenar toda esta información en la nube, sino que también buscarla con eficiencia y velocidad, para que sin importar la cantidad de información almacenada, la experiencia de nuestra aplicación web sea la misma siempre.

Espero que estos tres sencillos ejemplos, ayuden en alguna medida a comprender los escenarios de uso de Cloud Computing. Saludos!

Escenarios de uso de Cloud Computing

En este breve articulo, se pretende mostrar tres casos puntuales de escenarios de uso de Cloud Computing y sus ventajas sobre el alojamiento web tradicional. Las aplicaciones web siempre se han instalado en servidores conectados a lo que ahora se denomina "la nube". Sin embargo, las demandas y tecnologías utilizadas en esos servidores, ha cambiado substancialmente en años recientes, especialmente con la entrada de proveedores de servicios como Amazon, Google y Microsoft.

Estas compañías ya tienen largo rato de proveer una infraestructura (hardware) flexible para aplicaciones web, de manera que esta se adapte y escale a diversos escenarios.

Escenarios de Uso...
Paga por lo que consumes
La instalación de aplicaciones web, hasta hace algunos años, era similar a la cuenta de tu teléfono fijo. Tenes que pagar una cuota de teléfono, consumas o no tiempo de llamadas.  Asi mismo, cuando compras alojamiento tradicional, compras espacio y pagas una "cuota fija", lleguen visitantes a tu sitio o no.
Cloud Computing cambia la idea del consumo fijo. Los varios recursos consumidos por una aplicación web (CPU, memoria, ancho de banda) se contabilizan por unidad (comenzando desde cero), como los contadores de agua de tu casa, y se paga de acuerdo al consumo de cada uno.


"... paga por lo que consumes(CPU, espacio, ancho de banda)."

Ejemplo: Supongamos que estas haciendo un sitio para hacerle competencia a Cherada.com, y supones que llegaran al menos 100,000 Salvadoreños a registrarse en el primer año, y como quieres estar preparado, compras el
mejor plan de alojamiento viendo la demanda futura que tendrá tu sitio por ese lapso de tiempo. Pero por cosas del destino (digamos mala publicidad, plataforma y mercadeo del sitio) casi nadie llega en ese año, a lo sumo, recibiste 1,000 visitas.
Si este penoso escenario se cumpliera, terminarías pagando el año completo con el mejor plan, independientemente de que lleguen 10,000 o 1,000 visitas. Con un proveedor de servicios, solo pagas lo que consumes, y si bien tenes que pagar una cuota por el servicio, en el escenario anteriormente mencionado, sera significativamente menos que el del alojamiento tradicional.

Suministro para eventos momentáneo (One time event provisioning)
Las aplicaciones web a veces sufren de "picos" de trafico debido a la cobertura de los medios, como comerciales de TV, apariciones en artículos periodísticos, eventos sociales (elecciones) y naturales (sismos), etc. Para poder soportar este tipo de carga en el sistema, sin que este se vuelva inestable o se convierta en un "servidor de excusas", muchas personas creen que necesitan comprar infraestructura o "arrendar equipo" para solventar la demanda de las visitas.
Si tu aplicación esta apoyada sobre una plataforma de servicio de un proveedor de Cloud Computing, este será el que se adaptará dinamicamente para proveer el recurso (CPU, memoria, ancho de banda) para que tu aplicación web supla la demanda de información por los visitantes que llegan repentinamente a tu sitio, sin que gastes ni un centavo en equipo físico.


"... no inviertas en equipo innecesario."

Ejemplo: ¿Cual fue el sitio web salvadoreño que mas sufrió el año pasado por las elecciones? Exacto, http://www.tse.gob.sv . Con Cloud Computing, el TSE podría haber suplido a la perfección la demanda de clientes al sitio, sin la necesidad de comprar o prestar equipo para un evento que sucede cada cinco años.

Crecimiento automatizado y tecnologías escalables
Si se tiene la capacidad de soportar eventos momentáneos, entonces las plataformas de Cloud Computing también facilitan el crecimiento gradual de curvas que presentan las aplicaciones web exitosas. En los escenarios usuales de crecimiento para aplicación web necesitan equipo especial (balanceadores de carga y clusters), que al emplear Cloud Computing, queda en la abstracción de la plataforma de nuestro proveedor de servicio. Y adicionalmente, muchas plataformas de Cloud Computing, proveen soporte para un "tier" de datos que excede el rendimiento de RDBMS (Relational Database Systems), como: Map Reduce, Big Table, etc.


"... crece sobre una infraestructura escalable."

Ejemplo: Supongamos una aplicación web, en donde se almacena los artículos de todos los blogs Salvadoreños, Twitts, fotos en Flicker, videos de YouTube, y noticias de los periódicos mas importantes de El Salvador, y lo hace de manera DIARIA. De manera que esta aplicación nos permite "ver el estado de El Salvador, en un día especifico" (¿buena idea no?). ¿A lo largo de 5 años, cuanta información (en TB) creen que tendríamos almacenada? ¿dos o tres TB? La idea es que la velocidad de búsqueda de la información debe ser la misma a lo largo del tiempo. Cloud computing nos permite: no solo almacenar toda esta información en la nube, sino que también buscarla con eficiencia y velocidad, para que sin importar la cantidad de información almacenada, la experiencia de nuestra aplicación web sea la misma siempre.

Espero que estos tres sencillos ejemplos, ayuden en alguna medida a comprender los escenarios de uso de Cloud Computing. Saludos!

martes, enero 19, 2010

Explotando Firebug



Esta es la continuación del post de herramientas de desarrollo que puedes utilizar usando add-ons de Firefox.

Firebug (link) es uno de los add-ons para Firefox mas complejos y mas populares en los círculos de desarrolladores. Te permite modificar a tu antojo la estructura del DOM de cualquier pagina en la que estés navegando, modificar sus clases CSS y depurar sus scripts, monitorear http requests, ejecutar scripts sobre las paginas web, perfilar los tiempos de carga/ejecución de scripts, etc. aplicando todos los cambios realizados en caliente, visualizándolos al muy estilo WYSIWYG aunque obviamente todos estos cambios que se realizan no se aplican en el servidor. Entre sus usos mas comunes es depurar código javascript o aplicar cambios en el HTML/CSS asegurándose que se verán correctamente ya que estas realizando estos cambios directamente en el navegador.

"Editando en caliente las propiedades CSS de la pagina de google.com desde Firebug"


La característica especial que distingue a este add-on es la posibilidad de ser extendido mediante mas add-ons (sub add-ons) los cuales le permiten hacer muchas mas tareas de las que actualmente permite.

CodeBurner for Firebug (link) Este add-on te muestra una nueva pestaña después de la pestaña DOM, con la palabra "Code Example" en la cual, cuando estas inspeccionando el HTML de un sitio y tienes dudas sobre algún tag, este te muestra una pequeña referencia con la descripción de dicho tag y un sencillo ejemplo.


"Visualizando una referencia sobre el tag desde Code burner, el tag se encuentra en la pagina principal de flickr.com, como se puede ver en la imagen"

FireFinder for Firebug (link) Este add-on te permite hacer búsquedas de cualquier elemento HTML dentro del sitio que estas visitando. Esta búsqueda puede ser del texto contenido dentro de alguna etiqueta o mediante el uso de selectores similares a los usados en prototype o jquery. Una vez encontrado el elemento, te lo remarca dentro de la pagina web con lineas punteadas rojas y te muestra un vinculo llamado "inspect" el cual te permite ubicar este elemento dentro de la pestaña "HTML" de Firebug. Como bonus también te permite generar un vinculo para FriendlyFire usando jsbin, con el cual compartes el código HTML mediante una URL para poder ser visaulizado y editado por otros, muy al estilo de pastebin.


"FireFinder, remarcando el logotipo de twitter en la pagina de twitter.com, el cual fue buscado usando el selector #header2>a.logo"


Firecookie (link) Este add-on de brinda la capacidad de monitorear y modificar las cookies que están siendo ocupadas en los sitios que visitas.


"FireCookie, mostrando las cookies que se almacenan localmente al entrar al sitio delicious.com"


Firiepicker (link) Es un sencillo add-on que te muestra un selector de color (color picker) cuando dentro de una pagina web estas inspeccionando las propiedades css relacionadas con el color de un elemento. De esta forma puedes seleccionar el color de manera visual y este te escribe su respectivo codigo RGB.

"Seleccionando un nuevo color usando FirePicker para la propiedad CSS background-color, en uno de los elementos del sitio deviantart.com"


Fireunit (link) Con Fireunit puedes escribir Unit Tests para Javascript y ejecutar/visualizar sus resultados desde una pestaña en Firebug. Esto lo haces desde la nueva pestaña llamada "Tests" que te aparece en Firebug al instalar este add-on. El modelo de código para estos unit tests aparece en el mismísimo código fuente del sitio de fireunit, cuando lo inspeccionas con Firebug. Dicho código se muestra a continuación:

 // Some examples of using FireUnit
if ( typeof fireunit === "object" ) {
// Simple true-like/false-like testing
fireunit.ok( true, "I'm going to pass!" );
fireunit.ok( false, "I'm going to fail!" );
// Compare two strings - shows a diff of the
// results if they're different
fireunit.compare(
"The lazy fox jumped over the log.",
"The lazy brown fox jumped the log.",
"Are these two strings the same?"
);
// Compare a string using a regular expression
fireunit.reCompare(
"The .* fox jumped the log.",
"The lazy brown fox jumped the log.",
"Compare a string using a RegExp."
);
// Display the total results
fireunit.testDone();
}


"Visualizando con FireUnit el resultado de los unit tests de ejemplo que vienen en el sitio fireunit.org"


Explotando Firebug



Esta es la continuación del post de herramientas de desarrollo que puedes utilizar usando add-ons de Firefox.

Firebug (link) es uno de los add-ons para Firefox mas complejos y mas populares en los círculos de desarrolladores. Te permite modificar a tu antojo la estructura del DOM de cualquier pagina en la que estés navegando, modificar sus clases CSS y depurar sus scripts, monitorear http requests, ejecutar scripts sobre las paginas web, perfilar los tiempos de carga/ejecución de scripts, etc. aplicando todos los cambios realizados en caliente, visualizándolos al muy estilo WYSIWYG aunque obviamente todos estos cambios que se realizan no se aplican en el servidor. Entre sus usos mas comunes es depurar código javascript o aplicar cambios en el HTML/CSS asegurándose que se verán correctamente ya que estas realizando estos cambios directamente en el navegador.

"Editando en caliente las propiedades CSS de la pagina de google.com desde Firebug"


La característica especial que distingue a este add-on es la posibilidad de ser extendido mediante mas add-ons (sub add-ons) los cuales le permiten hacer muchas mas tareas de las que actualmente permite.

CodeBurner for Firebug (link) Este add-on te muestra una nueva pestaña después de la pestaña DOM, con la palabra "Code Example" en la cual, cuando estas inspeccionando el HTML de un sitio y tienes dudas sobre algún tag, este te muestra una pequeña referencia con la descripción de dicho tag y un sencillo ejemplo.


"Visualizando una referencia sobre el tag desde Code burner, el tag se encuentra en la pagina principal de flickr.com, como se puede ver en la imagen"

FireFinder for Firebug (link) Este add-on te permite hacer búsquedas de cualquier elemento HTML dentro del sitio que estas visitando. Esta búsqueda puede ser del texto contenido dentro de alguna etiqueta o mediante el uso de selectores similares a los usados en prototype o jquery. Una vez encontrado el elemento, te lo remarca dentro de la pagina web con lineas punteadas rojas y te muestra un vinculo llamado "inspect" el cual te permite ubicar este elemento dentro de la pestaña "HTML" de Firebug. Como bonus también te permite generar un vinculo para FriendlyFire usando jsbin, con el cual compartes el código HTML mediante una URL para poder ser visaulizado y editado por otros, muy al estilo de pastebin.


"FireFinder, remarcando el logotipo de twitter en la pagina de twitter.com, el cual fue buscado usando el selector #header2>a.logo"


Firecookie (link) Este add-on de brinda la capacidad de monitorear y modificar las cookies que están siendo ocupadas en los sitios que visitas.


"FireCookie, mostrando las cookies que se almacenan localmente al entrar al sitio delicious.com"


Firiepicker (link) Es un sencillo add-on que te muestra un selector de color (color picker) cuando dentro de una pagina web estas inspeccionando las propiedades css relacionadas con el color de un elemento. De esta forma puedes seleccionar el color de manera visual y este te escribe su respectivo codigo RGB.

"Seleccionando un nuevo color usando FirePicker para la propiedad CSS background-color, en uno de los elementos del sitio deviantart.com"


Fireunit (link) Con Fireunit puedes escribir Unit Tests para Javascript y ejecutar/visualizar sus resultados desde una pestaña en Firebug. Esto lo haces desde la nueva pestaña llamada "Tests" que te aparece en Firebug al instalar este add-on. El modelo de código para estos unit tests aparece en el mismísimo código fuente del sitio de fireunit, cuando lo inspeccionas con Firebug. Dicho código se muestra a continuación:

 // Some examples of using FireUnit
if ( typeof fireunit === "object" ) {
// Simple true-like/false-like testing
fireunit.ok( true, "I'm going to pass!" );
fireunit.ok( false, "I'm going to fail!" );
// Compare two strings - shows a diff of the
// results if they're different
fireunit.compare(
"The lazy fox jumped over the log.",
"The lazy brown fox jumped the log.",
"Are these two strings the same?"
);
// Compare a string using a regular expression
fireunit.reCompare(
"The .* fox jumped the log.",
"The lazy brown fox jumped the log.",
"Compare a string using a RegExp."
);
// Display the total results
fireunit.testDone();
}


"Visualizando con FireUnit el resultado de los unit tests de ejemplo que vienen en el sitio fireunit.org"


lunes, enero 18, 2010

Review Nokia N97 (update)

Hace poco los amigos de Nokia nos dieron la oportunidad de probar su nuevo modelo N97 por una semana, como siempre gracias por la oportunidad. Este articulo es en resumen mi experiencia y opinión personal sobre el uso de este modelo durante ese tiempo.


UPDATE: Algunos lectores comentan que la experiencia del usuario mejora en el N97, al actualizar el Firmware del telefono...



ADVERTIMOS que el teléfono lo probamos sin actualizar, y muchas de las "quejas" encontradas en el articulo con respecto al software se corrigen al actualizar el teléfono asi que NO aplica el review al menos en el software.

Asi que, como la experiencia pueda ser que mejore al actualizar el firmware del telefono, este review no se debe tomar en cuenta como una guia de compra del mismo.


Como detalle adicional con respecto a la actualizacion: es que esta se puede realizar desde una maquina con Windows (empleando el software que trae el N97) y tambien OTA (gracias a @sansivar por el tip).


N97 es el intento de Nokia de ingresar agresivamente a un mercado que espera un iPhone para las masas. Como ya habíamos mencionado, Nokia es el fabricante numero uno de teléfonos celulares en el mundo, solo el año pasado vendieron 468 millones de unidades, y aun son dueños del 41.2 % del mercado de "SmartPhones". Un punto muy importante a recalcar siempre, es que el N97 es un SmartPhone, para los tecnófilos: acá están los detalles técnicos.





Hardware

Mencionamos primero lo más decente. El diseño, la pantalla y el teclado QWERTY completo son geniales. Quizás el mejor gusto del aparato es escuchar el "flip" que hace la pantalla cuando de desplaza para mostrar el teclado. El movil esta bien diseñado, se ve elegante y sobrio, es un poco grueso, pero pesa menos que un iPhone 3GS. Y en la mano, el N97 se siente solido, como una unidad diseñada para durar más de un año. La inclinación de la pantalla no se puede cambiar, lo que es lamentable pero comprensible (por el diseño) al mismo tiempo. El teclado que espera abajo de la pantalla es interesante: esta ligeramente iluminado, esta bien distribuido, ademas posee una agradable textura de goma, tecla "SHIFT" y "FUNC". Ademas de un "pad direccional", al lado izquierdo, en el que vas a terminar presionando equivocadamente más de lo que se esperan. Así que uno termina utilizando más la pantalla para desplazarte que las teclas de dirección. La molestia más grande del teclado es que no hay tecla "(" ni ")". En pocas palabras, con el teclado de goma, no podrás poner "caritas" :( Parece tonto, pero es un detalle interesante, no se cuantos de ustedes usan más "#" que el ")" en sus mensajes de texto, pero son detallitos que no se como rayos pasan por alto. El teléfono no pasa la prueba de "mandar mensajes de texto mientras conduces" (lo que personalmente me parece genial) ya que se necesitan ambas manos (dedos gordos) para escribir en el teclado.



La pantalla de 640x360 esta bien, es resistiva, y aclaremos desde ya que la pantalla del N97 funciona muchísimo mejor utilizando un stylus (que NO venia en la caja que me dieron, pero como menciona un lector, ya lo trae la caja), ya que se siente raro usar el dedo porque el teléfono no es muy exacto.
Recuerden siempre que las pantallas resistivas se sienten inferiores a las capacitiva (como la del iPhone, Palm Pre o BlackBerry Storm).



La decepción mas grande del N97 es el bajo rendimiento del procesador de apenas 424 MHz, lo único que no mencionan en TODO el empaque del teléfono, me imagino que les da vergüenza mencionarlo, y deben sentirla, porque ese procesador mata muchísima funcionalidad del telefono. No da abasto para lo que uno quiere hacer, y el sistema operativo no ayuda tampoco. El N97 tiene una profunda anemia de Megahertz, y eso lo vas a recordar constantemente si compras uno.

El N97 posee dos cámaras como el 5800. La principal posee también el mismo tipo de lente, pero el N97 tiene una resolución de 5 Mega-pixeles y ademas tiene autofocus, lo que hace del N97 una excelente buena cámara digital, porque las fotos parecen "lavadas", y se nota que se tomaron con un teléfono con cámara. El flash de diodos LED es fuerte y la captura de video de 640x480 (a 30 fps) también es bastante buena. La cámara secundaria es risible en términos de calidad, dejemoslo en eso.

Quizas la característica más interesante del teléfono es su transmisor FM de doble vía. Ademas de escuchar radio, también puedes transmitir tu librería musical por FM al radio de tu carro por ejemplo.

Un excelente bono es la inmensa capacidad del teléfono... 32 GB, que se pude expandir con tarjetas micro SDHC hasta a 48 GB, suficiente espacio para el más exigente. El telefono es "Plug and Play" igual que el 5800, y fue probado sin ningun software extra en Windows (con un rendimiento un poco bajo), Fedora 12 y Ubuntu 9.10 sin NINGUN problema. Solo pasas la musica a la carpeta de "sonido" y listo, cero complicaciones.

La batería dura mucho tiempo, es realmente buena, y se carga sumamente rápido. Tal y como el 5800, el N97 posee acelerometro, y ademas: un sensor de aproximación y un transmisor GPS.

Así que lo único de lamentar del N97 con respecto a hardware, es su anémico procesador (que repercute en todo el teléfono), y ese problema de color en las fotos.

Software (@deprecated)


El N97 trae la quinta edición del sistema Symbian OS (S60). Francamente, no se si es por el procesador, o porque es realmente malo, pero con lo que respecta al sistema, se siente lento, y aunque es multitareas, el procesador no da mucho abasto para soportar esa característica. Obtuve una amena pantalla de "El teléfono se recupero de un problema grave, reinicie el telefono" al menos tres veces el tiempo que lo use, solo por hacer la compleja tarea de cambiarle la apariencia al sistema, y habilitar la cámara, entre otras cosas "inesperadas" supongo. ¿Sera que el N97 que me dieron, tenia una versión beta del S60? Sinceramente no lo se, pero espero que lo arreglen. La sensación de la GUI es irregular e inconsistente. Lean el manual para saber que items necesita uno o dos Taps.

La pantalla principal del telefono tiene (dos) paginas, y muchos "widgets" configurables, que te dan accesos directos a Mapas, FaceBook, Reproductor de musica, Contactos favoritos, Gmail y hasta Hi5. La mayoria de aplicaciones se sienten solidas y funcionales. El navegador WebKit es bueno, pero NO es fácil de usar, practicamente es el mismo del 5800, pero con un panel de botones al lado derecho que roban espacio en la pantalla por tiempos caprichosamente aleatoreos (defecto corregido en actualizacon de Firmware).




Nokia Maps se ve interesante: navegación guiada por voz, información de trafico, puntos de interés, etc... pero esos datos para El Salvador no esta, así que no nos va a servir de mucho acá.
N97 trae preinstalado aplicaciones de otros proveedores como: Qik, RealPlayer, YouTube, JoikuSpot Premium, Accuweather, Facebook y Guitar World Tour. Una curiosidad fue la aplicación que te lee los mensajitos recibidos. Y el molesto detalle de siempre a la hora de conectarnos a una WiFi es la imposibilidad de configurar DNS alternativos.


 
"Si tan solo el N97 se comportara como lo anuncian..."


Conclusión
Personalmente siento que en términos de diseño y algunas características de hardware, el N97 es mejor que el 5800, pero en términos de software es prácticamente similar.
Lo mejor: es la capacidad de almacenamiento (32 GB!), el auto enfoque al tomar fotos, la potencia de las bocinas, duración de la batería, widgets en la pantalla principal y transmisor FM doble (estoy seguro que eso ni lo van a mencionar mucho).
Lo peor: experiencia de usuario igual de rara que el 5800, procesador ridícula e insoportablemente LENTO. Habría que ver si hay una actualización del sistema y que tal se comporta el teléfono luego de la misma. Lamentablemente, no empleamos el telefono con la ultima version del Firmware, y esta actualizacion arregla muchos incovenientes mencionados.
"Finalmente, solo puedo decir que si el 5800 es Windows XP, entonces el N97 es Vista (recién salido al mercado); y esa es la mejor analogía que se puede hacer."
Es un telefono que esta bien, pero no tiene ese factor que hace que pienses: Yo quiero ese teléfono, y mucho menos es un "iPhone Killer".

Review Nokia N97 (update)

Hace poco los amigos de Nokia nos dieron la oportunidad de probar su nuevo modelo N97 por una semana, como siempre gracias por la oportunidad. Este articulo es en resumen mi experiencia y opinión personal sobre el uso de este modelo durante ese tiempo.


UPDATE: Algunos lectores comentan que la experiencia del usuario mejora en el N97, al actualizar el Firmware del telefono...



ADVERTIMOS que el teléfono lo probamos sin actualizar, y muchas de las "quejas" encontradas en el articulo con respecto al software se corrigen al actualizar el teléfono asi que NO aplica el review al menos en el software.

Asi que, como la experiencia pueda ser que mejore al actualizar el firmware del telefono, este review no se debe tomar en cuenta como una guia de compra del mismo.


Como detalle adicional con respecto a la actualizacion: es que esta se puede realizar desde una maquina con Windows (empleando el software que trae el N97) y tambien OTA (gracias a @sansivar por el tip).


N97 es el intento de Nokia de ingresar agresivamente a un mercado que espera un iPhone para las masas. Como ya habíamos mencionado, Nokia es el fabricante numero uno de teléfonos celulares en el mundo, solo el año pasado vendieron 468 millones de unidades, y aun son dueños del 41.2 % del mercado de "SmartPhones". Un punto muy importante a recalcar siempre, es que el N97 es un SmartPhone, para los tecnófilos: acá están los detalles técnicos.





Hardware

Mencionamos primero lo más decente. El diseño, la pantalla y el teclado QWERTY completo son geniales. Quizás el mejor gusto del aparato es escuchar el "flip" que hace la pantalla cuando de desplaza para mostrar el teclado. El movil esta bien diseñado, se ve elegante y sobrio, es un poco grueso, pero pesa menos que un iPhone 3GS. Y en la mano, el N97 se siente solido, como una unidad diseñada para durar más de un año. La inclinación de la pantalla no se puede cambiar, lo que es lamentable pero comprensible (por el diseño) al mismo tiempo. El teclado que espera abajo de la pantalla es interesante: esta ligeramente iluminado, esta bien distribuido, ademas posee una agradable textura de goma, tecla "SHIFT" y "FUNC". Ademas de un "pad direccional", al lado izquierdo, en el que vas a terminar presionando equivocadamente más de lo que se esperan. Así que uno termina utilizando más la pantalla para desplazarte que las teclas de dirección. La molestia más grande del teclado es que no hay tecla "(" ni ")". En pocas palabras, con el teclado de goma, no podrás poner "caritas" :( Parece tonto, pero es un detalle interesante, no se cuantos de ustedes usan más "#" que el ")" en sus mensajes de texto, pero son detallitos que no se como rayos pasan por alto. El teléfono no pasa la prueba de "mandar mensajes de texto mientras conduces" (lo que personalmente me parece genial) ya que se necesitan ambas manos (dedos gordos) para escribir en el teclado.



La pantalla de 640x360 esta bien, es resistiva, y aclaremos desde ya que la pantalla del N97 funciona muchísimo mejor utilizando un stylus (que NO venia en la caja que me dieron, pero como menciona un lector, ya lo trae la caja), ya que se siente raro usar el dedo porque el teléfono no es muy exacto.
Recuerden siempre que las pantallas resistivas se sienten inferiores a las capacitiva (como la del iPhone, Palm Pre o BlackBerry Storm).



La decepción mas grande del N97 es el bajo rendimiento del procesador de apenas 424 MHz, lo único que no mencionan en TODO el empaque del teléfono, me imagino que les da vergüenza mencionarlo, y deben sentirla, porque ese procesador mata muchísima funcionalidad del telefono. No da abasto para lo que uno quiere hacer, y el sistema operativo no ayuda tampoco. El N97 tiene una profunda anemia de Megahertz, y eso lo vas a recordar constantemente si compras uno.

El N97 posee dos cámaras como el 5800. La principal posee también el mismo tipo de lente, pero el N97 tiene una resolución de 5 Mega-pixeles y ademas tiene autofocus, lo que hace del N97 una excelente buena cámara digital, porque las fotos parecen "lavadas", y se nota que se tomaron con un teléfono con cámara. El flash de diodos LED es fuerte y la captura de video de 640x480 (a 30 fps) también es bastante buena. La cámara secundaria es risible en términos de calidad, dejemoslo en eso.

Quizas la característica más interesante del teléfono es su transmisor FM de doble vía. Ademas de escuchar radio, también puedes transmitir tu librería musical por FM al radio de tu carro por ejemplo.

Un excelente bono es la inmensa capacidad del teléfono... 32 GB, que se pude expandir con tarjetas micro SDHC hasta a 48 GB, suficiente espacio para el más exigente. El telefono es "Plug and Play" igual que el 5800, y fue probado sin ningun software extra en Windows (con un rendimiento un poco bajo), Fedora 12 y Ubuntu 9.10 sin NINGUN problema. Solo pasas la musica a la carpeta de "sonido" y listo, cero complicaciones.

La batería dura mucho tiempo, es realmente buena, y se carga sumamente rápido. Tal y como el 5800, el N97 posee acelerometro, y ademas: un sensor de aproximación y un transmisor GPS.

Así que lo único de lamentar del N97 con respecto a hardware, es su anémico procesador (que repercute en todo el teléfono), y ese problema de color en las fotos.

Software (@deprecated)


El N97 trae la quinta edición del sistema Symbian OS (S60). Francamente, no se si es por el procesador, o porque es realmente malo, pero con lo que respecta al sistema, se siente lento, y aunque es multitareas, el procesador no da mucho abasto para soportar esa característica. Obtuve una amena pantalla de "El teléfono se recupero de un problema grave, reinicie el telefono" al menos tres veces el tiempo que lo use, solo por hacer la compleja tarea de cambiarle la apariencia al sistema, y habilitar la cámara, entre otras cosas "inesperadas" supongo. ¿Sera que el N97 que me dieron, tenia una versión beta del S60? Sinceramente no lo se, pero espero que lo arreglen. La sensación de la GUI es irregular e inconsistente. Lean el manual para saber que items necesita uno o dos Taps.

La pantalla principal del telefono tiene (dos) paginas, y muchos "widgets" configurables, que te dan accesos directos a Mapas, FaceBook, Reproductor de musica, Contactos favoritos, Gmail y hasta Hi5. La mayoria de aplicaciones se sienten solidas y funcionales. El navegador WebKit es bueno, pero NO es fácil de usar, practicamente es el mismo del 5800, pero con un panel de botones al lado derecho que roban espacio en la pantalla por tiempos caprichosamente aleatoreos (defecto corregido en actualizacon de Firmware).




Nokia Maps se ve interesante: navegación guiada por voz, información de trafico, puntos de interés, etc... pero esos datos para El Salvador no esta, así que no nos va a servir de mucho acá.
N97 trae preinstalado aplicaciones de otros proveedores como: Qik, RealPlayer, YouTube, JoikuSpot Premium, Accuweather, Facebook y Guitar World Tour. Una curiosidad fue la aplicación que te lee los mensajitos recibidos. Y el molesto detalle de siempre a la hora de conectarnos a una WiFi es la imposibilidad de configurar DNS alternativos.


 
"Si tan solo el N97 se comportara como lo anuncian..."


Conclusión
Personalmente siento que en términos de diseño y algunas características de hardware, el N97 es mejor que el 5800, pero en términos de software es prácticamente similar.
Lo mejor: es la capacidad de almacenamiento (32 GB!), el auto enfoque al tomar fotos, la potencia de las bocinas, duración de la batería, widgets en la pantalla principal y transmisor FM doble (estoy seguro que eso ni lo van a mencionar mucho).
Lo peor: experiencia de usuario igual de rara que el 5800, procesador ridícula e insoportablemente LENTO. Habría que ver si hay una actualización del sistema y que tal se comporta el teléfono luego de la misma. Lamentablemente, no empleamos el telefono con la ultima version del Firmware, y esta actualizacion arregla muchos incovenientes mencionados.
"Finalmente, solo puedo decir que si el 5800 es Windows XP, entonces el N97 es Vista (recién salido al mercado); y esa es la mejor analogía que se puede hacer."
Es un telefono que esta bien, pero no tiene ese factor que hace que pienses: Yo quiero ese teléfono, y mucho menos es un "iPhone Killer".

viernes, enero 15, 2010

JQuery Cumple 4 Años y lo Celebran con Muchos Releases

"Entre las novedades de jQuery presentan 14 días de releases continuos"

El día de ayer, 15 de Enero, jQuery celebró su cuarto cumpleaños de haber sido liberado y desde entonces los desarrolladores de este popular framework lo están celebrando a lo grande con la liberación de la verisón 1.4, un nuevo sitiopara la API, mejoras en el performance, QA en vivo, etc. En total serán 14 días durante los cuales tendremos nuevas sorpresas y releases relacionados con este framework, los cuales pueden consultar día a día en el sitio jquery14.com.

jQuery es un framework javascript open source que te ayuda principalmente a interactuar con el DOM de una página web de una forma muy práctica y con muy pocas líneas de código fuente. Además simplifica la comunicación vía ajax, el manejo de eventos, la creación y manipulación de controles para crear interfaces gráficas ricas, entre otras cosas.

Su gran popularidad y su capacidad de extensión mediante plugins ha permitido que muchos programadores lo hayan enriquecido con controles muy útiles como el datagrids, lightboxes, gráficos, skins, color pickers, por mencionar unos cuantos entre otros cientos de plugins que existen por ahí en la web.

"El plugin Flexigrid es de los más complejos y útiles que he utilizado con jQuery"

Lo que mas me encanta de usar jQuery es su facilidad para manipular el DOM. Como ejemplo, podemos ver el siguiente código fuente que utiliza sintaxis JSON de la nueva versión 1.4 para crear un DIV con id, propiedades CSS y una función para manejar su evento click para luego agregar este div al body de la página, todo de una sola vez:

 jQuery("<div/>", {
id: "foo",
css: {
height: "50px",
width: "50px",
color: "blue",
backgroundColor: "#ccc"
},
click: function() {
$(this).css("backgroundColor", "red");
}
}).appendTo("body");

Como muchos proyectos open source, jQuery sobrevive gracias a las donaciones altruistas hechas por los usuarios. Como parte de las sorpresas que los desarrolladores de jQuery nos han traido, también tienes la oportunidad de recibir un e-book gratuito por tu donación al proyecto.

JQuery Cumple 4 Años y lo Celebran con Muchos Releases

"Entre las novedades de jQuery presentan 14 días de releases continuos"

El día de ayer, 15 de Enero, jQuery celebró su cuarto cumpleaños de haber sido liberado y desde entonces los desarrolladores de este popular framework lo están celebrando a lo grande con la liberación de la verisón 1.4, un nuevo sitiopara la API, mejoras en el performance, QA en vivo, etc. En total serán 14 días durante los cuales tendremos nuevas sorpresas y releases relacionados con este framework, los cuales pueden consultar día a día en el sitio jquery14.com.

jQuery es un framework javascript open source que te ayuda principalmente a interactuar con el DOM de una página web de una forma muy práctica y con muy pocas líneas de código fuente. Además simplifica la comunicación vía ajax, el manejo de eventos, la creación y manipulación de controles para crear interfaces gráficas ricas, entre otras cosas.

Su gran popularidad y su capacidad de extensión mediante plugins ha permitido que muchos programadores lo hayan enriquecido con controles muy útiles como el datagrids, lightboxes, gráficos, skins, color pickers, por mencionar unos cuantos entre otros cientos de plugins que existen por ahí en la web.

"El plugin Flexigrid es de los más complejos y útiles que he utilizado con jQuery"

Lo que mas me encanta de usar jQuery es su facilidad para manipular el DOM. Como ejemplo, podemos ver el siguiente código fuente que utiliza sintaxis JSON de la nueva versión 1.4 para crear un DIV con id, propiedades CSS y una función para manejar su evento click para luego agregar este div al body de la página, todo de una sola vez:

 jQuery("<div/>", {
id: "foo",
css: {
height: "50px",
width: "50px",
color: "blue",
backgroundColor: "#ccc"
},
click: function() {
$(this).css("backgroundColor", "red");
}
}).appendTo("body");

Como muchos proyectos open source, jQuery sobrevive gracias a las donaciones altruistas hechas por los usuarios. Como parte de las sorpresas que los desarrolladores de jQuery nos han traido, también tienes la oportunidad de recibir un e-book gratuito por tu donación al proyecto.

miércoles, enero 13, 2010

Monitorea los Ajax HttpRequests con Fiddler

Como programador de sitios web basados en Ajax, tiendo a necesitar una herramienta que me permita verificar exactamente que le envió al server en un XmlHttpRequest vía Ajax. Los parámetros que van en el request, la URL a la que lo envió, la respuesta recibida etc. Así puedo determinar si un error se genero porque se enviaron datos erróneos al server desde el Ajax Request o si fue el server quien interpreto o proceso mal los datos.

Mi herramienta para realizar estos monitoreos fue Firebug, un add-on para Firefox que te permite depurar Javascript, inspeccionar/manipular el DOM y también inspeccionar/manipular los estilos de un sitio. Este además visualiza en su consola los diferentes HttpRequests que se hacen al server.

Como muchos sabrán, no siempre basta con realizar pruebas y depuraciones de tu sitio usando el browser Firefox ya que comúnmente los errores ser producen al navegar en tu sitio desde Internet Explorer o algún otro y como hasta donde he podido investigar, ningún otro navegador cuenta con un add-on como el de Firefox para visualizar estas peticiones de Ajax, no hay otra manera de hacerlo mas que con una herramienta externa al browser.

Buscando en la web encontré la herramienta llamada Fiddler. Este es un proxy web hecho con el framework Microsoft.Net para captura y depuración del trafico http que se genera en tu computadora. Este trafico es comúnmente generado por los browsers al navegar dentro de sitios web, dar click sobre algun hipervinculo de alguna pagina o cuando un evento javascript dispara un request XmlHttp.

"Captura de pantalla de Fiddler, monitoreando el trafico http local. Visualizando en la parte derecha el detalle de un Ajax Request de la pagina de twitter.com"

Como pueden ver en la captura de pantalla, Fiddler estomáticamente captura todos los requests http y los lista en la columna de la izquierda, mostrando los detalles de cada request en la columna de la izquierda, como por ejemplo los headers de la petición, parámetros y la respuesta obtenida.

Hay un pequeño problema con Fiddler cuando intentas monitorear el trafico de un server alojado en tu localhost. Esto es porque, como ellos mismos mencionan en su sitio: "Internet Explorer and the .NET Framework are hardcoded not to send requests for Localhost through any proxies" por lo cual, nos vemos en la necesidad de no utilizar la palabra "localhost" ni su IP equivalente 127.0.0.1 para acceder desde nuestro browser a los sitios alojados en nuestro server. Como alternativa podemos usar en su lugar, el nombre de nuestro equipo. Por ejemplo:

en lugar de:
http://localhost:8080/miSitioWeb/index.jsp

tenemos que escribir:
http://laptux:8080/miSitioWeb/index.jsp

Asumiendo que el nombre de mi equipo es "laptux".

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...