miércoles, noviembre 24, 2010

Gtug El Salvador sobre Herramientas Webs

El GTUG (Google Technology User Group) de El Salvador, los invita este Martes 30 de Noviembre a la segunda reunión/evento oficial de este grupo, enfocada en el uso de algunas herramientas web de Google, como Analytics y Adsense.
La charla se llevara a cabo en la Escuela Superior de Economía y Negocios (ESEN), a las 6:00pm en el aula 14. Entre los presentadores tenemos a los amigos: Jose Ricardo (@Josterricardo) Eduardo Aguilar (@luchoedu), Rafael Monge (@rafaelmonge) y Felipe Torres (docente ESEN).

Los dejo con el afiche oficial del evento:

La reunión anterior fue un éxito, y con su ayuda y asistencia, esperamos que esta tambien lo sea. Recuerden que no hay costo de participación ni lugares de inscripción, solo lleguen, escuchen, pregunten y hagamos networking :)

No olviden visitar el GTUG El Salvador en:
Grupo Oficial: http://groups.google.com/group/gtugelsalvador
Pagina Oficial: http://gtug-elsalvador.blogspot.com/
Facebook: http://www.facebook.com/gtugelsalvador

¡Saludos!

Gtug El Salvador sobre Herramientas Webs

El GTUG (Google Technology User Group) de El Salvador, los invita este Martes 30 de Noviembre a la segunda reunión/evento oficial de este grupo, enfocada en el uso de algunas herramientas web de Google, como Analytics y Adsense.
La charla se llevara a cabo en la Escuela Superior de Economía y Negocios (ESEN), a las 6:00pm en el aula 14. Entre los presentadores tenemos a los amigos: Jose Ricardo (@Josterricardo) Eduardo Aguilar (@luchoedu), Rafael Monge (@rafaelmonge) y Felipe Torres (docente ESEN).

Los dejo con el afiche oficial del evento:

La reunión anterior fue un éxito, y con su ayuda y asistencia, esperamos que esta tambien lo sea. Recuerden que no hay costo de participación ni lugares de inscripción, solo lleguen, escuchen, pregunten y hagamos networking :)

No olviden visitar el GTUG El Salvador en:
Grupo Oficial: http://groups.google.com/group/gtugelsalvador
Pagina Oficial: http://gtug-elsalvador.blogspot.com/
Facebook: http://www.facebook.com/gtugelsalvador

¡Saludos!

jueves, noviembre 18, 2010

Las entrañas de "Social Messaging"

Hace apenas tres días (15 Nov 2010), Facebook lanzo (por invitación) su nuevo servicio de "Social Messaging System", un servicio innovador y que inclusive nos proveerá con una dirección "@facebook.com" en su debido tiempo.

Social Messaging (solo Messaging de ahora en adelante) integra SMS (mensajes de celular), chat (de Facebook) y correo electrónico en una interfaz transparente, que gira en torno a la plataforma "Chat (de Facebook)" rediseñada para loas nuevos retos que Messaging presenta.

Messaging, más que una competencia al correo electrónico "tradicional", parece más el próximo paso lógico de Facebook para "acaparar el mercado de la comunicación escrita", sin cambiarte de pestaña, ventana o dispositivo.


Todo esta en un solo lugar (el poder del "default"), uno solo busca a al contacto a la que le quiere enviar un mensaje, le dispara caracteres e independientemente del dispositivo o tecnología que use esta persona (SMS, email), el o ella recibirá el mensaje, y cuando te contesten, vas a recibir las respuestas como "una conversación" y siempre todo, en el mismo lugar: Facebook.



Pueda que a ustedes no le guste Facebook o sus políticas de privacidad, pero ignorando estas (políticas) y siendo totalmente objetivos, NO se puede negar que con Messaging:
  • Facebook ganara mucho más uso y "adeptos" al centralizar la interfaz para interactuar con los contactos que se tengan agregados a una cuenta.
  • Los retos para diseñar y producir una solución informática así no son nada sencillos.

Lo que a mi más me interesa es saber como todo esto funciona detrás de la pantalla blanca con azul, quiero saber como va a funcionar y que va a utilizar internamente Messaging, y a precisamente eso es a lo que vamos...

Entrañas digitales

Actualmente la infraestructura de mensajería de Facebook (Chat e Inbox) maneja más de 350 millones de usuarios enviando 15,000 millones (billones para los gringos anglopartlantes) de mensajes de persona a persona al mes. Cuando los ingenieros de Facebook monitorearon el uso de esta infraestructura, encontraron dos patrones (de uso):
  1. Datos temporales y volátiles (Chat)
  2. Datos que no dejan de "crecer" y de bajo acceso (Inbox).

El reto para los Ingenieros de Facebook, era elegir un sistema de almacenamiento (una base de datos) que sirviera para almacenar la información que se diluye de estos dos patrones de uso detectados. Ya que Messaging es una combinación de concepto y diseño de Inbox y Chat, nada tiene más sentido que buscar dicha solución. Así que lo que hicieron por "un par de semanas" fue hacer pruebas de rendimiento a diversos motores de base de datos: MySQL, Cassandra, HBase y otros. El ganador eventual fue HBase

HBase es una base de datos distribuida, versionable, orientada a columnas clave-valor, open source e inspirada en el modelo de BigTable (de Google). HBase se puede utilizar en escenarios en donde se necesita escritura/lectura aleatoria en tiempo real de muchos datos. Cuando hablamos de "muchos datos", hablamos por ejemplo de:
"Mil millones de filas multiplicado por millones de columnas"
Como ya imaginan, son cantidades enormes de información. Y todo esto ejecutándose en agrupaciones de servidores baratos o "comodity hardware clusters" como se les conoce, para mantener bajos los costos. Algunas de las características que impulsaron a Facebook a elegir HBase son:
  • Modelo de consistencia más simple que el de Cassandra.
  • Buena escalabilidad y rendimiento para los patrones de datos de Facebook.
  • Riqueza de características: auto balanceo de carga, failover, soporte de compresión de datos, múltiples "shards" (fragmentos) por servidor, etc.
  • Utiliza HDFS (que Facebook ya usa con los sistemas que usan Hadoop), el sistema de ficheros distribuido con soporte para replicarse, validaciones de checksum end-to-end y balanceo de datos automático.
¡Y eso, es solo la base de datos! Messaging tiene varios aspectos interesantes y claves que lo hacen un proyecto sumamente interesante, por ejemplo:
  • Los archivos adjuntos se almacenaran en HayStack
  • Están usando un servidor de aplicaciones escrito desde cero
  • Usan ZooKeeper para los servicios de "Discovery".
  • Integración con servicios de "email account verificacion", relación de amistad, decisiones de privacidad y decisiones de envío (¿un mensaje se deberá enviar por chat o SMS?)
Y finalmente, el detalle que más me sorprende es que Facebook va a liberar 20 servicios nuevos, que utilizará Messaging hechos por solo 15 Ingenieros en tan solo un año.

Con la elección de HBase como capa de almacenamiento, este proyecto esta "ungido" por Facebook, y que después de leer un poco sobre el funcionamiento interno de Messaging, me atrevería decir que sí estoy esperando ver pronto los resultados de tan interesante proyecto en mi cuenta de Facebook, y en especial ¡las estadísticas de uso! :)

Si les interesa el tema, les recomiendo estos tres sitios donde pueden encontrar más información sobre este interesante proyecto: The Underlying Technology of Messages , Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month y Facebook Messages Walkthrough Pics.

¡Saludos!

Las entrañas de "Social Messaging"

Hace apenas tres días (15 Nov 2010), Facebook lanzo (por invitación) su nuevo servicio de "Social Messaging System", un servicio innovador y que inclusive nos proveerá con una dirección "@facebook.com" en su debido tiempo.

Social Messaging (solo Messaging de ahora en adelante) integra SMS (mensajes de celular), chat (de Facebook) y correo electrónico en una interfaz transparente, que gira en torno a la plataforma "Chat (de Facebook)" rediseñada para loas nuevos retos que Messaging presenta.

Messaging, más que una competencia al correo electrónico "tradicional", parece más el próximo paso lógico de Facebook para "acaparar el mercado de la comunicación escrita", sin cambiarte de pestaña, ventana o dispositivo.


Todo esta en un solo lugar (el poder del "default"), uno solo busca a al contacto a la que le quiere enviar un mensaje, le dispara caracteres e independientemente del dispositivo o tecnología que use esta persona (SMS, email), el o ella recibirá el mensaje, y cuando te contesten, vas a recibir las respuestas como "una conversación" y siempre todo, en el mismo lugar: Facebook.



Pueda que a ustedes no le guste Facebook o sus políticas de privacidad, pero ignorando estas (políticas) y siendo totalmente objetivos, NO se puede negar que con Messaging:
  • Facebook ganara mucho más uso y "adeptos" al centralizar la interfaz para interactuar con los contactos que se tengan agregados a una cuenta.
  • Los retos para diseñar y producir una solución informática así no son nada sencillos.

Lo que a mi más me interesa es saber como todo esto funciona detrás de la pantalla blanca con azul, quiero saber como va a funcionar y que va a utilizar internamente Messaging, y a precisamente eso es a lo que vamos...

Entrañas digitales

Actualmente la infraestructura de mensajería de Facebook (Chat e Inbox) maneja más de 350 millones de usuarios enviando 15,000 millones (billones para los gringos anglopartlantes) de mensajes de persona a persona al mes. Cuando los ingenieros de Facebook monitorearon el uso de esta infraestructura, encontraron dos patrones (de uso):
  1. Datos temporales y volátiles (Chat)
  2. Datos que no dejan de "crecer" y de bajo acceso (Inbox).

El reto para los Ingenieros de Facebook, era elegir un sistema de almacenamiento (una base de datos) que sirviera para almacenar la información que se diluye de estos dos patrones de uso detectados. Ya que Messaging es una combinación de concepto y diseño de Inbox y Chat, nada tiene más sentido que buscar dicha solución. Así que lo que hicieron por "un par de semanas" fue hacer pruebas de rendimiento a diversos motores de base de datos: MySQL, Cassandra, HBase y otros. El ganador eventual fue HBase

HBase es una base de datos distribuida, versionable, orientada a columnas clave-valor, open source e inspirada en el modelo de BigTable (de Google). HBase se puede utilizar en escenarios en donde se necesita escritura/lectura aleatoria en tiempo real de muchos datos. Cuando hablamos de "muchos datos", hablamos por ejemplo de:
"Mil millones de filas multiplicado por millones de columnas"
Como ya imaginan, son cantidades enormes de información. Y todo esto ejecutándose en agrupaciones de servidores baratos o "comodity hardware clusters" como se les conoce, para mantener bajos los costos. Algunas de las características que impulsaron a Facebook a elegir HBase son:
  • Modelo de consistencia más simple que el de Cassandra.
  • Buena escalabilidad y rendimiento para los patrones de datos de Facebook.
  • Riqueza de características: auto balanceo de carga, failover, soporte de compresión de datos, múltiples "shards" (fragmentos) por servidor, etc.
  • Utiliza HDFS (que Facebook ya usa con los sistemas que usan Hadoop), el sistema de ficheros distribuido con soporte para replicarse, validaciones de checksum end-to-end y balanceo de datos automático.
¡Y eso, es solo la base de datos! Messaging tiene varios aspectos interesantes y claves que lo hacen un proyecto sumamente interesante, por ejemplo:
  • Los archivos adjuntos se almacenaran en HayStack
  • Están usando un servidor de aplicaciones escrito desde cero
  • Usan ZooKeeper para los servicios de "Discovery".
  • Integración con servicios de "email account verificacion", relación de amistad, decisiones de privacidad y decisiones de envío (¿un mensaje se deberá enviar por chat o SMS?)
Y finalmente, el detalle que más me sorprende es que Facebook va a liberar 20 servicios nuevos, que utilizará Messaging hechos por solo 15 Ingenieros en tan solo un año.

Con la elección de HBase como capa de almacenamiento, este proyecto esta "ungido" por Facebook, y que después de leer un poco sobre el funcionamiento interno de Messaging, me atrevería decir que sí estoy esperando ver pronto los resultados de tan interesante proyecto en mi cuenta de Facebook, y en especial ¡las estadísticas de uso! :)

Si les interesa el tema, les recomiendo estos tres sitios donde pueden encontrar más información sobre este interesante proyecto: The Underlying Technology of Messages , Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month y Facebook Messages Walkthrough Pics.

¡Saludos!

miércoles, noviembre 17, 2010

Aplicaciones web de 10K

"10K Apart Challenge" es un concurso con una premisa sencilla: ¿Se puede construir una aplicación web completa en tan solo 10 Kilobytes? ¡Claro que si!

Mini aplicaciones Web

Quizás una de las cosas que mas impactan al revisar las entradas participantes, es como muchas de ellas no se ven como sitios web. Usando tecnologías web "recientes" (para IE al menos) como Canvas, SVG, CSS3 y muuuuucho JavaScript, los concursantes fueron capaces de crear aplicaciones web que bien pueden pasar por aplicaciones nativas, flash o de iPhone.

La creatividad y la energía demostrada en este concurso, recuerda al DemoScene, cuando habilidosos programadores competían para hacer los mejores "demos" para Amiga y Commodore 64. Solo que en este caso, en vez de apuntar a una sola plataforma, estas pequeñas obras de arte web, se ejecutan en cualquier SO y navegador (decente). Algunas de las entradas mas relevantes son:

Sinuous



Sinious fue el gran ganador, un pequeño juego casual y entretenido.

Graph10k


Gráfica ecuaciones de ejemplo o digita las tuyas.

Racer 10K


¿No te recuerda V.R. o Mario Kart (SNES)?

The Smallest 3D Maker


No será la competencia de Blender, pero esta pequeña aplicación te permite dibujar curvas de Bézier y convertirlas a objetos 3D que podes "explorar".

Como ven, son cosas "sencillas", pero con gran potencial y ejecutandoce en 10 miserables Kilobytes. Bien dicen que la necesidad hace al artista. El concurso "10K Apart" esta para quedarse, visitenlo y a ver quien se anima para participar en la proxima:
http://10k.aneventapart.com

Aplicaciones web de 10K

"10K Apart Challenge" es un concurso con una premisa sencilla: ¿Se puede construir una aplicación web completa en tan solo 10 Kilobytes? ¡Claro que si!

Mini aplicaciones Web

Quizás una de las cosas que mas impactan al revisar las entradas participantes, es como muchas de ellas no se ven como sitios web. Usando tecnologías web "recientes" (para IE al menos) como Canvas, SVG, CSS3 y muuuuucho JavaScript, los concursantes fueron capaces de crear aplicaciones web que bien pueden pasar por aplicaciones nativas, flash o de iPhone.

La creatividad y la energía demostrada en este concurso, recuerda al DemoScene, cuando habilidosos programadores competían para hacer los mejores "demos" para Amiga y Commodore 64. Solo que en este caso, en vez de apuntar a una sola plataforma, estas pequeñas obras de arte web, se ejecutan en cualquier SO y navegador (decente). Algunas de las entradas mas relevantes son:

Sinuous



Sinious fue el gran ganador, un pequeño juego casual y entretenido.

Graph10k


Gráfica ecuaciones de ejemplo o digita las tuyas.

Racer 10K


¿No te recuerda V.R. o Mario Kart (SNES)?

The Smallest 3D Maker


No será la competencia de Blender, pero esta pequeña aplicación te permite dibujar curvas de Bézier y convertirlas a objetos 3D que podes "explorar".

Como ven, son cosas "sencillas", pero con gran potencial y ejecutandoce en 10 miserables Kilobytes. Bien dicen que la necesidad hace al artista. El concurso "10K Apart" esta para quedarse, visitenlo y a ver quien se anima para participar en la proxima:
http://10k.aneventapart.com

martes, noviembre 16, 2010

iPhone App de la Semana: Dropbox



Categoría: Productividad
Precio: Gratuita
URL Compañía: http://www.dropbox.com
URL iTunes Download: http://bit.ly/38tJ6q

En mas de algún post les hemos hablado en el Sr Byte acerca de Dropbox, este genial servicio que te permite guadar hasta 2GB y medio en la nube de forma gratuita y hasta 100GB con una cuenta pro. La ventaja de este servicio es que permite sincronizar tus archivos en la nube con archivos en cualquiera de tus dispositivos, sin importar tu sistema operativo. Así es como estos han tenido a bien poner a disposición de todos su aplicación para iPhone.


Con esta aplicación para iPhone te ahorras el estar descargando aplicaciones para sincronizar archivos de tu computadora a tu iPhone ya que con esta app puedes hacerlo. No de forma directa, claro, sino que subiendo tus archivos a tu cuenta de dropbox para luego descargarlos en tu iPhone / ipod touch y almacenarlos localmente de manera que no tengas que estar conectado a internet para verlos. Para ello nada más hay que presionar la estrella (agregar a favoritos) cuando estás visualizando el archivo que deseas almacenar offline.

¿La segunda ventaja? te ahorras tener que andar cargando con iPhone Apps para visualizar PDFs y documentos de office. Además de archivos multimedia con muchos otros formatos. Dropbox es capaz de reconocer muchos formatos de archivos y tiene la capacidad de visualizarlos / reproducirlos según su tipo. Me sorprendió el pequeño detalle de poder reproducir vídeos en formato 3gp aunque luego me decepcionó cuando comprobé que no puede visualizar documentos de OpenOffice.org.

"Visualización de archivos multimedia. Galería de imágenes y reproducción de diferentes formatos de vídeo"

"Una pequeña decepción. No visualiza documentos con formato de OpenOffice.org"

Obviamente no podemos sustituirlo por nuestra app para lectura de ebooks ya que, aunque sí visualiza sin problemas documentos de word y PDFs, no ajusta automáticamente el texto para una agradable lectura y al hacer zoom a las páginas para ajustar el tamaño del texto, es necesario hacer scroll para recorrer todas las partes no visibles de estas páginas. Aun así, es capaz de visualizar estos y muchos otros formatos de documentos.

"Visualización de documentos de excel, rich text format (similar a un documento de word) y presentación de PowerPoint"

¿Otra ventaja mas? La aplicación es capaz de almacenar localmente hasta 1GB de los archivos que posees en la nube. Este espacio además lo puedes configurar si es que no tienes tanto espacio disponible.

"Personalización del espacio a ocupar para los archivos almacenados de forma offline"

Como últimos detalles que me han agradado de esta aplicación es poder ver en los settings el porcentaje de espacio disponible que tengo en mi cuenta dropbox en la nube y poder proteger el acceso a la aplicación por medio de una clave de cuatro dígitos.

Se los recomiendo a todos aquellos que tienen una cuenta dropbox y desean sacarle provecho, aún cuando en lugar de un iPhone tengan un teléfono con Android o Blackberry ya que dropbox posee también aplicaciones para estos dispositivos.

Si no poseen una cuenta de dropbox pueden adquirirla haciendo clic en su sitio web www.dropbox.com.

iPhone App de la Semana: Dropbox



Categoría: Productividad
Precio: Gratuita
URL Compañía: http://www.dropbox.com
URL iTunes Download: http://bit.ly/38tJ6q

En mas de algún post les hemos hablado en el Sr Byte acerca de Dropbox, este genial servicio que te permite guadar hasta 2GB y medio en la nube de forma gratuita y hasta 100GB con una cuenta pro. La ventaja de este servicio es que permite sincronizar tus archivos en la nube con archivos en cualquiera de tus dispositivos, sin importar tu sistema operativo. Así es como estos han tenido a bien poner a disposición de todos su aplicación para iPhone.


Con esta aplicación para iPhone te ahorras el estar descargando aplicaciones para sincronizar archivos de tu computadora a tu iPhone ya que con esta app puedes hacerlo. No de forma directa, claro, sino que subiendo tus archivos a tu cuenta de dropbox para luego descargarlos en tu iPhone / ipod touch y almacenarlos localmente de manera que no tengas que estar conectado a internet para verlos. Para ello nada más hay que presionar la estrella (agregar a favoritos) cuando estás visualizando el archivo que deseas almacenar offline.

¿La segunda ventaja? te ahorras tener que andar cargando con iPhone Apps para visualizar PDFs y documentos de office. Además de archivos multimedia con muchos otros formatos. Dropbox es capaz de reconocer muchos formatos de archivos y tiene la capacidad de visualizarlos / reproducirlos según su tipo. Me sorprendió el pequeño detalle de poder reproducir vídeos en formato 3gp aunque luego me decepcionó cuando comprobé que no puede visualizar documentos de OpenOffice.org.

"Visualización de archivos multimedia. Galería de imágenes y reproducción de diferentes formatos de vídeo"

"Una pequeña decepción. No visualiza documentos con formato de OpenOffice.org"

Obviamente no podemos sustituirlo por nuestra app para lectura de ebooks ya que, aunque sí visualiza sin problemas documentos de word y PDFs, no ajusta automáticamente el texto para una agradable lectura y al hacer zoom a las páginas para ajustar el tamaño del texto, es necesario hacer scroll para recorrer todas las partes no visibles de estas páginas. Aun así, es capaz de visualizar estos y muchos otros formatos de documentos.

"Visualización de documentos de excel, rich text format (similar a un documento de word) y presentación de PowerPoint"

¿Otra ventaja mas? La aplicación es capaz de almacenar localmente hasta 1GB de los archivos que posees en la nube. Este espacio además lo puedes configurar si es que no tienes tanto espacio disponible.

"Personalización del espacio a ocupar para los archivos almacenados de forma offline"

Como últimos detalles que me han agradado de esta aplicación es poder ver en los settings el porcentaje de espacio disponible que tengo en mi cuenta dropbox en la nube y poder proteger el acceso a la aplicación por medio de una clave de cuatro dígitos.

Se los recomiendo a todos aquellos que tienen una cuenta dropbox y desean sacarle provecho, aún cuando en lugar de un iPhone tengan un teléfono con Android o Blackberry ya que dropbox posee también aplicaciones para estos dispositivos.

Si no poseen una cuenta de dropbox pueden adquirirla haciendo clic en su sitio web www.dropbox.com.

sábado, noviembre 13, 2010

Hora de Ayudar a la Wikipedia

"Este es el mensaje que me aparece estos últimos días al entrar a la Wikipedia"

Todo el mundo que haga uso habitual de internet debe conocer la Wikipedia. Mas que conocerla, todo mundo se ha informado de algún tema o terminado una tarea escolar/universitaria gracias a un tópico encontrado en esta biblioteca virtual y colaborativa o muchos otros además les gusta incrementar su acervo intelectual paseando por entre los millones de artículos que este sitio contiene.

Cabe destacar que esta biblioteca colaborativa es gratuita y sin fines de lucro, tal como lo menciona Jimmy Wales en este link. Además de recalcar estos puntos, Wales menciona que sostener un sitio con tanta demanda como la Wikipedia no es gratuito, mucho menos barato y al no recibir ningún tipo de ganancias por la existencia del sitio, este se vale de donaciones hechas por todos aquellos que desean agradecer de esta manera desean retribuir al sitio donde muchos salen de dudas, aprenden y comparten sus conocimientos.

A partir de esta semana ha comenzado nuevamente la campaña anual que Wales lleva a cabo para recolectar los fondos de modo que Wikipedia siga funcionando como lo ha hecho hasta ahora y es por este medio que los invito a ser parte de este esfuerzo para mantener vivo este sitio que a todos nos ha sido de utilidad alguna vez. Si es que están en la capacidad económica y cuentan con una tarjeta de crédito o cuenta de Paypal pueden entrar al siguiente link para realizar su donativo:


Apoya Wikipedia

Puedes además colocar un banner como el anterior o escoger entre los demás banners disponibles tanto en inglés como en otros idiomas entrando a este enlace.

Si has sido uno de los que han donado o tienes pensado hacerlo, de mi parte como un usuario frecuente de la wikipedia, te doy las gracias.

Hora de Ayudar a la Wikipedia

"Este es el mensaje que me aparece estos últimos días al entrar a la Wikipedia"

Todo el mundo que haga uso habitual de internet debe conocer la Wikipedia. Mas que conocerla, todo mundo se ha informado de algún tema o terminado una tarea escolar/universitaria gracias a un tópico encontrado en esta biblioteca virtual y colaborativa o muchos otros además les gusta incrementar su acervo intelectual paseando por entre los millones de artículos que este sitio contiene.

Cabe destacar que esta biblioteca colaborativa es gratuita y sin fines de lucro, tal como lo menciona Jimmy Wales en este link. Además de recalcar estos puntos, Wales menciona que sostener un sitio con tanta demanda como la Wikipedia no es gratuito, mucho menos barato y al no recibir ningún tipo de ganancias por la existencia del sitio, este se vale de donaciones hechas por todos aquellos que desean agradecer de esta manera desean retribuir al sitio donde muchos salen de dudas, aprenden y comparten sus conocimientos.

A partir de esta semana ha comenzado nuevamente la campaña anual que Wales lleva a cabo para recolectar los fondos de modo que Wikipedia siga funcionando como lo ha hecho hasta ahora y es por este medio que los invito a ser parte de este esfuerzo para mantener vivo este sitio que a todos nos ha sido de utilidad alguna vez. Si es que están en la capacidad económica y cuentan con una tarjeta de crédito o cuenta de Paypal pueden entrar al siguiente link para realizar su donativo:


Apoya Wikipedia

Puedes además colocar un banner como el anterior o escoger entre los demás banners disponibles tanto en inglés como en otros idiomas entrando a este enlace.

Si has sido uno de los que han donado o tienes pensado hacerlo, de mi parte como un usuario frecuente de la wikipedia, te doy las gracias.

martes, noviembre 09, 2010

Internacionalización en tus Sitios Web con jQuery

"Si esperas recibir usuarios de países con otros idiomas, es una buena recomendación poder mostrar el contenido de tu sitio en diferentes idiomas, tal como lo hace last.fm"

Internacionalización o i18n es la característica de los sistemas que les permite adaptar su contenido a diferentes idiomas según las regiones donde se desee mostrar. Muchas veces no solamente te permiten traducir el idioma del contenido sino también monedas, fechas y ajustes de zonas horarias. Dependiendo del lenguaje de programación usado, pueda que este ya brinde soluciones para poder permitir la internacionalización de tu sitio web. Java EE por ejemplo ofrece los Message Bundles combinados con tags JSP para llevar a cabo este fin.

Así como es posible hacerlo desde server side, en esta ocasión les traigo un ejemplo realizado desde client side, usando el muy popular framework de javascript conocido como jQuery, al cual le he agregado un plugin denominado jQuery.i18n.properties el cual me permite implementar la internacionalización en un sitio web de una forma muy similar a como se realiza en java.

La ventaja de usar una solucion client side? me permite cambiar el idioma del contenido del sitio sin necesidad de salirme (logout) y volver a entrar(login), ni siquiera es necesario refrescar la pagina! todo se realiza en tiempo real a la velocidad de un Ajax Callback.

Para demostrarles lo mencionado anteriormente he desarrollado un ejemplo utilizando jquery, jquery.i18n.properties, un pequeño script de javascript y un par de servlets de java. Todo esto dentro de un proyecto web en eclipse y además no pueden faltar los Message Bundles. Los Message Bundles son archivos de texto con extensión .properties que contienen propiedades de tipo clave=valor en los cuales se almacenan los mensajes que se mostrarán en pantalla de acuerdo al idioma seleccionado. De tal manera que existe un archivo llamado locale_es.properties para los mensajes en español, otro llamado locale_en.properties para los mensajes en inglés y otro más denominado locale_fr.properties para los mensajes en francés.


"En el panel izquierdo pueden ver los archivos utilizados en este proyecto. Servlets, javascripts, css, html y Message Bundles. En el panel principal a la derecha pueden ver parte del código HTML escrito."

Se ha escrito una pequeña página de login. Para internacionalizar los elementos les he colocado la clase "i18n" y como id el nombre de la clave que en el Message Bundle contiene el mensaje a mostrar. Se han agregado tres links en la parte superior que invocan a la función javascript para cambiar de idioma. Esto llama al plugin i18n.properties quien mediante un ajax callback obtiene el Message Bundle según el idioma deseado y lo carga en un mapa con los datos en forma de clave=valor.


"Las funciones principales del archivo core.js con las cuales se lleva a cabo la internacionalización"

Luego de tener el mapa, se asignan los valores a cada elemento con la clase "i18n" y la clave según el ID del elemento. Luego de ello se escribió un Fake login test que devuelve respuestas random de manera que se prueben tanto mensajes de error como mensajes de éxito, ambos internacionalizados.

A continuación unas capturas de pantalla del sitio web en funcionamiento:

"Sitio web mostrando mensaje de error en el login, todo en idioma inglés"

"Sitio web mostrando mensaje de error en el login, todo en idioma español"

"Sitio web mostrando mensaje de éxito en el login, todo en francés"

En este link pueden descargar el código fuente del proyecto.

Internacionalización en tus Sitios Web con jQuery

"Si esperas recibir usuarios de países con otros idiomas, es una buena recomendación poder mostrar el contenido de tu sitio en diferentes idiomas, tal como lo hace last.fm"

Internacionalización o i18n es la característica de los sistemas que les permite adaptar su contenido a diferentes idiomas según las regiones donde se desee mostrar. Muchas veces no solamente te permiten traducir el idioma del contenido sino también monedas, fechas y ajustes de zonas horarias. Dependiendo del lenguaje de programación usado, pueda que este ya brinde soluciones para poder permitir la internacionalización de tu sitio web. Java EE por ejemplo ofrece los Message Bundles combinados con tags JSP para llevar a cabo este fin.

Así como es posible hacerlo desde server side, en esta ocasión les traigo un ejemplo realizado desde client side, usando el muy popular framework de javascript conocido como jQuery, al cual le he agregado un plugin denominado jQuery.i18n.properties el cual me permite implementar la internacionalización en un sitio web de una forma muy similar a como se realiza en java.

La ventaja de usar una solucion client side? me permite cambiar el idioma del contenido del sitio sin necesidad de salirme (logout) y volver a entrar(login), ni siquiera es necesario refrescar la pagina! todo se realiza en tiempo real a la velocidad de un Ajax Callback.

Para demostrarles lo mencionado anteriormente he desarrollado un ejemplo utilizando jquery, jquery.i18n.properties, un pequeño script de javascript y un par de servlets de java. Todo esto dentro de un proyecto web en eclipse y además no pueden faltar los Message Bundles. Los Message Bundles son archivos de texto con extensión .properties que contienen propiedades de tipo clave=valor en los cuales se almacenan los mensajes que se mostrarán en pantalla de acuerdo al idioma seleccionado. De tal manera que existe un archivo llamado locale_es.properties para los mensajes en español, otro llamado locale_en.properties para los mensajes en inglés y otro más denominado locale_fr.properties para los mensajes en francés.


"En el panel izquierdo pueden ver los archivos utilizados en este proyecto. Servlets, javascripts, css, html y Message Bundles. En el panel principal a la derecha pueden ver parte del código HTML escrito."

Se ha escrito una pequeña página de login. Para internacionalizar los elementos les he colocado la clase "i18n" y como id el nombre de la clave que en el Message Bundle contiene el mensaje a mostrar. Se han agregado tres links en la parte superior que invocan a la función javascript para cambiar de idioma. Esto llama al plugin i18n.properties quien mediante un ajax callback obtiene el Message Bundle según el idioma deseado y lo carga en un mapa con los datos en forma de clave=valor.


"Las funciones principales del archivo core.js con las cuales se lleva a cabo la internacionalización"

Luego de tener el mapa, se asignan los valores a cada elemento con la clase "i18n" y la clave según el ID del elemento. Luego de ello se escribió un Fake login test que devuelve respuestas random de manera que se prueben tanto mensajes de error como mensajes de éxito, ambos internacionalizados.

A continuación unas capturas de pantalla del sitio web en funcionamiento:

"Sitio web mostrando mensaje de error en el login, todo en idioma inglés"

"Sitio web mostrando mensaje de error en el login, todo en idioma español"

"Sitio web mostrando mensaje de éxito en el login, todo en francés"

En este link pueden descargar el código fuente del proyecto.

domingo, noviembre 07, 2010

¿Porqué Escribir en un Blog?

¿Escribir o no escribir en un blog? esa es la cuestión. Tuve la fortuna de formar parte de la comunidad de blogs salvadoreños justo en el momento cuando empezaba el boom de los blogs, cuando la rutina nocturna era andar visitando de blog en blog leyendo artículos (los cuales en ese entonces siempre superaban los cinco o seis párrafos. Hoy en día muchos blogs carecen de ello) dejando comentarios, escribiendo en los chatboxes y compartiendo links. Fué la época de oro de los blogs.
Hoy en día muchos blogs han menguado para dar paso a los microblogs(twitter, thumblr, posterous) y solamente quedan los que por los años tuvieron la dedicación y disciplina de seguir posteando. No digo que está mal hacer uso de las redes de microblogging pero se pierde esa disciplina de buscar temas para postear, profundizar más en un tema, verificar la ortografía, modificar y enriquecer un post que se va a compartir para que no sea un simple copy/paste, tener la dedicación de escribir posts frecuentemente, en fin, poder ganarse ese respetable título de Blogger.
Muchos en su momento dejaron por completo de escribir y se dedicaron a compartir ideas más simples y cortas (no necesariamente de menos valor) en los medios sociales. Es comprensible, al comparar la facilidad que conlleva compartir un link, hacer un comentario o subir una foto en otra red comparada con elaborar un post sobre algún tema. Muchos quizá dejaron de escribir en sus blogs porque no encontraron más una razón para ello, otros porque les dejó de ser rentable o no tuvieron más tiempo para seguir posteando. Cada quien tiene sus propias razones para escribir.
En lo personal, escribo en este blog por tres razones principales:
  • Compartir: Una de las mayores ventajas de la web y lo que ha permitido que se vuelvan realidad proyectos open source tan importantes es gracias a la capacidad de compartir conocimiento. Quizá alguna vez hayas descubierto como resolver un bug de IE por medio de hacks de javascript o te hayas topado con algún útil plugin para eclipse o tips de performance para servidores linux. Es bueno compartir este conocimiento en la web con otros que también les podría ser de utilidad. En lo personal han sido tantas las ocasiones que he encontrado soluciones útiles a mis bugs por medio de otros que igual que yo tuvieron los mismos problemas y al encontrar la solución la postearon en algún meido social, comúnmente un post en sus blogs. De igual manera cada vez que descubro algo que me pareció sumamente útil no dudo en compartirlo.
  • Aprender: Muchas veces no tienes que ser un gurú en un tema para escribir acerca de él. De hecho, al escribir un post acerca de un tema te comprometes a leer e investigar más acerca del mismo de manera que puedas elaborar un post decente. Esto a su vez conlleva a que aprendas más del tema mientras escribes el post y luego de publicarlo seguramente recibirás retroalimentación por parte de tus lectores en sus comentarios (lo cual me lleva a recalcar que hay que saber aceptar las críticas constructivas que nos puedan hacer en los comentarios de un post).
  • Desarrollar reputación: Quierase o no, hoy en día muchos especialistas de recursos humanos toman muy en cuenta la reputación que una persona posee en la web, desde las cosas que postea en su twitter hasta las fotos que postea en su facebook. Es importante que al buscar tu nombre (o seudónimo) encuentren proyectos importantes publicados en la web en los cuales hayas participado, charlas que hayas desarrollado o el soporte técnico que puedas haber brindado en sitios de preguntas / respuestas específicos de tu especialidad o carrera, o en todo caso, de lo que escribes al respecto en tu blog.
Y ustedes, ¿Porqué escriben (o no escriben) ustedes en un blog?

¿Porqué Escribir en un Blog?

¿Escribir o no escribir en un blog? esa es la cuestión. Tuve la fortuna de formar parte de la comunidad de blogs salvadoreños justo en el momento cuando empezaba el boom de los blogs, cuando la rutina nocturna era andar visitando de blog en blog leyendo artículos (los cuales en ese entonces siempre superaban los cinco o seis párrafos. Hoy en día muchos blogs carecen de ello) dejando comentarios, escribiendo en los chatboxes y compartiendo links. Fué la época de oro de los blogs.
Hoy en día muchos blogs han menguado para dar paso a los microblogs(twitter, thumblr, posterous) y solamente quedan los que por los años tuvieron la dedicación y disciplina de seguir posteando. No digo que está mal hacer uso de las redes de microblogging pero se pierde esa disciplina de buscar temas para postear, profundizar más en un tema, verificar la ortografía, modificar y enriquecer un post que se va a compartir para que no sea un simple copy/paste, tener la dedicación de escribir posts frecuentemente, en fin, poder ganarse ese respetable título de Blogger.
Muchos en su momento dejaron por completo de escribir y se dedicaron a compartir ideas más simples y cortas (no necesariamente de menos valor) en los medios sociales. Es comprensible, al comparar la facilidad que conlleva compartir un link, hacer un comentario o subir una foto en otra red comparada con elaborar un post sobre algún tema. Muchos quizá dejaron de escribir en sus blogs porque no encontraron más una razón para ello, otros porque les dejó de ser rentable o no tuvieron más tiempo para seguir posteando. Cada quien tiene sus propias razones para escribir.
En lo personal, escribo en este blog por tres razones principales:
  • Compartir: Una de las mayores ventajas de la web y lo que ha permitido que se vuelvan realidad proyectos open source tan importantes es gracias a la capacidad de compartir conocimiento. Quizá alguna vez hayas descubierto como resolver un bug de IE por medio de hacks de javascript o te hayas topado con algún útil plugin para eclipse o tips de performance para servidores linux. Es bueno compartir este conocimiento en la web con otros que también les podría ser de utilidad. En lo personal han sido tantas las ocasiones que he encontrado soluciones útiles a mis bugs por medio de otros que igual que yo tuvieron los mismos problemas y al encontrar la solución la postearon en algún meido social, comúnmente un post en sus blogs. De igual manera cada vez que descubro algo que me pareció sumamente útil no dudo en compartirlo.
  • Aprender: Muchas veces no tienes que ser un gurú en un tema para escribir acerca de él. De hecho, al escribir un post acerca de un tema te comprometes a leer e investigar más acerca del mismo de manera que puedas elaborar un post decente. Esto a su vez conlleva a que aprendas más del tema mientras escribes el post y luego de publicarlo seguramente recibirás retroalimentación por parte de tus lectores en sus comentarios (lo cual me lleva a recalcar que hay que saber aceptar las críticas constructivas que nos puedan hacer en los comentarios de un post).
  • Desarrollar reputación: Quierase o no, hoy en día muchos especialistas de recursos humanos toman muy en cuenta la reputación que una persona posee en la web, desde las cosas que postea en su twitter hasta las fotos que postea en su facebook. Es importante que al buscar tu nombre (o seudónimo) encuentren proyectos importantes publicados en la web en los cuales hayas participado, charlas que hayas desarrollado o el soporte técnico que puedas haber brindado en sitios de preguntas / respuestas específicos de tu especialidad o carrera, o en todo caso, de lo que escribes al respecto en tu blog.
Y ustedes, ¿Porqué escriben (o no escriben) ustedes en un blog?

miércoles, noviembre 03, 2010

iPhone App de la Semana: UnblockMe

Categoría: Juegos / Puzzles
Precio: $0 (Free Version) $0.99 (Full Version)
URL iTunes Download: http://bit.ly/9YEcfi

Esta es mi aplicación "de espera" predilecta. Ideal para entretenerse en la cola del banco, en la cola del súper, mientras esperas a alguien en un mall o mientras estás en una reunión improductiva (ojo que no los vea el jefe). A la vez que te entretienes un par de minutos que tengas libres, ejercitas tu mente resolviendo puzzles cuya variedad se extiende a 400 en la versión free y 1000 en la versión de pago agregando el nivel Expert.


Modo de juego? simple! mueve los bloques de madera de manera que puedas apartarlos para poder liberar la pieza roja pasándola por el agujero que está a la derecha. Las piezas horizontales sólo se mueven horizontalmente y las verticales de igual manera solamente verticalmente. A continuación un vídeo que demuestra lo que les acabo de explicar:



Si aun así no es suficiente reto para tu mente, puedes jugar el modo Challenge, en el cual la dificultad ya no solo radica en liberar la pieza roja sino que debes liberarla realizando la menor cantidad de movimientos posibles.

"Modo challenge. Liberar la pieza roja en la menor cantidad de movimientos. Además, dos temas de colores distintos disponibles para las piezas"

Dan fe de su calidad de entretenimiento todos los los que conozco que han tenido la oportunidad de probarla y la gran cantidad de ratings favorables que esta ha recibido en la App Store.

Como les mencionaba, no hay mucha diferencia entre la versión gratuita y la versión de pago excepto por los puzzles extra pero en lo personal les recomiendo la gratuita ya que pasará un buen tiempo antes que logren terminar siquiera los 400 puzzles iniciales del modo Beginner. Si eres un verdadero adicto a los puzzles y tienes mucho tiempo libre que dedicas a resolverlos entonces si te interesará la versión de pago y valdrá la pena invertir los $0.99 en los puzzles extra.

iPhone App de la Semana: UnblockMe

Categoría: Juegos / Puzzles
Precio: $0 (Free Version) $0.99 (Full Version)
URL iTunes Download: http://bit.ly/9YEcfi

Esta es mi aplicación "de espera" predilecta. Ideal para entretenerse en la cola del banco, en la cola del súper, mientras esperas a alguien en un mall o mientras estás en una reunión improductiva (ojo que no los vea el jefe). A la vez que te entretienes un par de minutos que tengas libres, ejercitas tu mente resolviendo puzzles cuya variedad se extiende a 400 en la versión free y 1000 en la versión de pago agregando el nivel Expert.


Modo de juego? simple! mueve los bloques de madera de manera que puedas apartarlos para poder liberar la pieza roja pasándola por el agujero que está a la derecha. Las piezas horizontales sólo se mueven horizontalmente y las verticales de igual manera solamente verticalmente. A continuación un vídeo que demuestra lo que les acabo de explicar:



Si aun así no es suficiente reto para tu mente, puedes jugar el modo Challenge, en el cual la dificultad ya no solo radica en liberar la pieza roja sino que debes liberarla realizando la menor cantidad de movimientos posibles.

"Modo challenge. Liberar la pieza roja en la menor cantidad de movimientos. Además, dos temas de colores distintos disponibles para las piezas"

Dan fe de su calidad de entretenimiento todos los los que conozco que han tenido la oportunidad de probarla y la gran cantidad de ratings favorables que esta ha recibido en la App Store.

Como les mencionaba, no hay mucha diferencia entre la versión gratuita y la versión de pago excepto por los puzzles extra pero en lo personal les recomiendo la gratuita ya que pasará un buen tiempo antes que logren terminar siquiera los 400 puzzles iniciales del modo Beginner. Si eres un verdadero adicto a los puzzles y tienes mucho tiempo libre que dedicas a resolverlos entonces si te interesará la versión de pago y valdrá la pena invertir los $0.99 en los puzzles extra.

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...