¡No al SQL!

Al parecer ese es el grito de guerra de un conjunto de proyectos Open Source que desean liberarce de la presencia casi ineludible de las bases de datos relacionales como soporte de almacenamiento de datos en los proyectos web 2.0. Al menos ese fue el espiritu de la reunion que tuvo la comunidad NoSQL hace poco menos de un mes en San Francisco.

En el evento que ha pasado casi desapercibido por los principales medios TIC, hasta hace poco cuando ComputerWorld publicó un artículo sobre la comunidad NoSQL, se presentaron los representantes de 10 proyectos Open Source que nos ofrecen escalabilidad y confiabilidad, a una facción del costo de las alternativas DBMS, como pueden ser MySQL, PostgreSQL u Oracle. Como punto de comparación hay que mencionar que uno de estos proyectos NoSQL llamado Cassandra, ofrece la capacidad de poder escribir hasta 50GB de datos en tan sólo 0.12 milisegundos, esto es 2500 veces más rápido que la perfomance ofrecida por MySQL (la DB relacional más rápida).

El romper con el pasado no es fácil, dejar atras viejos paradigmas que han demostrado sus limitaciones en la era del Petabyte en la cual nos encontramos, será una decisión difícil para los gerentes de los departamentos TIC, mientras no exista una empresa que respalde la nueva tecnología, o inclusive un estándar único para los proyectos de almacenamientos de datos de alta disponiblidiad clave-valor. Hay que tener en cuenta que ninguno de estos proyectos NoSQL se llama a sí mismos "base de datos", sino sistemas de "almacenamiento valor-clave" distribuido.

Todos estos proyectos NoSQL comparten las siguientes características:

  • Los datos son automáticamente replicados en múltiples servidores.
  • La falla de algún servidor es manejada de forma transparente y sin interrupción del servicio.
  • Todos los nodos que constituyen el sistema son independientes y no existe un único punto de falla.
  • El sistema maneja internamenta la consistencia de los datos.
  • La escalabilidad es prácticamente infita.
  • Utilizan como bloques de construcción PCs baratos con grandes discos duros.
  • Son proyectos Open Source.

Parecería un sueño, pero es cierto. Son proyetos Open Source que ofrecen hacer por una fracción del costo, aquello que Oracle cobraría millones de dólares por implementar, configurar y afinar a nuestras necesidades de alta disponibilidad y escalabilidad.

Aquí la lista de los proyectos que fueron presentados en la conferencia de la comunidad NoSQL, los videos de las presentaciones y las presentaciones en formato PDF donde ha sido posible obtenerlos.

Proyecto
Expositor
Empresa Presentación
Videos
 Introducción a la Reunión

 Todd Lipcon Cloudera  PDF
 Voldemort  Jay Kreps LinkedIn  PDF
 Video1,
 Cassandra  Avinash Lakshman Facebook  PDF  Video
 Dynomite  Cliff Moon Powerset  PDF  Video
 HBase  Ryan Rawson StumbleUpon  PDF  Video
 Hypertable  Doug Judd Zvents  PDF  Video1,
Video2
 CouchDB  Chris Anderson couch.io  PDF  Video1,
Video2
 VPork  Jon Travis Springsource  PDF  Video
 MongoDb  Dwight Merriman 10gen    Video
 Google BigTable  Jonas S Karlsson  Google    Video

 
Es bastante fácil de entender por qué en una web donde el contenido multimedia se multiplica a una velocidad jamas vista antes, el seguir almacenando datos en bases de datos relacionales, es una forma ineficiente y costosa de hacerlo, es por ello que los proyectos NoSQL son definitivamente la forma como deberíamos manejar la información en el futuro. Estos proyectos son ideales, donde la estructura de datos es simple, pero se necesitan manejar grandes volúmenes de datos y es importante el tiempo de respuesta del sistema.

Luego de haber visto los videos de las conferencias, estoy convencido de que el futuro del almacenamiento en grandes volúmenes, esta en los sistemas NoSQL. Así que si alguien está buscando donde estará la siguiente revolución en la industria TIC, este es definitivamente un campo al cuál prestarle mucha atención.

Twitter amenaza pública.

Jeff GoldblumOtra vez el problema de las historias falsas que se propagan rápidamente a través de Twitter ha hecho su aparición, según ha reportado el blog Technologizer, al parecer alguien, el día de ayer (25 de junio de 2009) decidió hacer circular la noticia de que el actor Jeff Goldblum, quien es recordado por películas como "La Mosca",  "Jurasic Park" o "Independence Day" había muerto en Nueva Zelanda. Dado el particular momento que se vivía por el fallecimiento ese mismo día de Michael Jackson y Farrah Fawcett, algunos twitteros dieron la noticia por verdaera y comenzaron a retwittearla, aunque otros se mostraron más cautelosos.

Lo cierto era que la noticia había sido fabricada usando una herramienta para crear noticias falsas sobre famosos que se llama "fake A wish.com". Aunque Twitter es un buen lugar para saber lo que sucede, una de las razones por las cuales esto pasa es porque nadie verifica la veracidad de la información, es por eso recomendable que antes de dar por cierto una noticia recibida a través de Twitter, revisar sitios como CNN o NYTimes, si los medios tradicionales no recogen la novedad propagada por Twitter lo más seguro es que sea falsa.

Esta no es la primera vez que este tipo de noticias falsas son esparcidas rápidamente a través de Twitter, en este blog hace poco más de un mes en un post titulado "Redes sociales o rebaño de ovejas", comentaba lo mismo cuando la supuesta muerta de Patrick Swayze, fue la "novedad" en Twitter. Sin embargo hoy se me ocurre darle una dimensión extra, el potencial peligro para la seguridad pública. Permitanme describirles el escenario.

Suponga que un grupo terrorista crea miles de cuentas en Twitter, y usando herramientas de spam consiguen unos cuantos cientos de seguidores por cada cuenta, esto no un escenario imposible, es más dichas redes de twitteros fantasmas existen. Supongamos que logran hackear exitosamente la página web de un medio masivo, digamos NYTimes, CNN, FoxNews, MSNBC, etc.; ahora en un momento de máximo tráfico, cuando las personas estan saliendo a su trabajo o volviendo del mismo, lanzan una campaña masiva enviando retweets de una noticia falsa inyectada en uno o más websites y esta coge rebote. Dado que es tan alta la penetración de smartphones en cuanto la noticia del "ataque bacteriológico" en una estación de metro se comience a esparcir, el pánico hara el resto, fotos de gente corriendo fuera de las estaciones llegaran a twitter y se multiplicaran con retweets, los medios cubriran la noticia del pánico y poco a poco el caos se propagará.

El escenario anteriormente descrito sería posible, debido a que las personas tienden a actuar de manera irreflexiva cuando se sienten amenazadas, aquí la palabra clave es "sentirse", el ataque no tiene por que ser real, ni tampoco tiene que ser lanzado desde el país al cual va dirigido. La única condición para que este tipo de ataques funcione es que debe ser una noticia creíble y debe ser propagada masivamente cuando el acceso a otras fuentes para contrastar dicha información sea difícil.

El escenario anterior no es nuevo, ya en el Perú durante los recientes eventos de Bagua se ha vivido. Recordemos que las noticias del "genocidio" contra los nativos con "cientos de muertos" reportado desde las radios locales generaron un efecto multiplicador en el caos de un evento que debió haber sido focalizado, el desalojo de manifestantes de una carretera.

Claro, que este tipo de ataques sirven sólo como distractores. Tarde o temprano la verdad emerge y la calma llega, pero durante el pánico, todas las medidas de seguridad quedan desbordadas y es el momento ideal para montar un ataque real.

En lo personal, este escenario me parece posible. Es más estas noticias falsas son sencillamente una advertencia de que esta forma de ataque es posible y se deben tomar medidas para evitarlo. Creo que Twitter haría bien al incluir algún sistema de ponderación, de tal forma que noticias publicadas por twittteros con baja "reputación" no alcancen una rápida propagación.

Google nos propone hacer la web más rápida

Google ha creado un website dedicado a promover la mejora del rendimiento de la web, el site ubicado en esta URL http://code.google.com/speed/, nos presenta información diversa sobre como de una manera comunitaria, los webmaster podemos hacer la web más rápida. Google no solo propone la adopción de nuevos estándares, pues los actuales fueron desarrollados en una época en que la web aún estaba en su infancia, sino que además recomienda algunas prácticas de programación que permiten hacer las aplicaciones web más rápidas.

De esas mejores prácticas recomendadas por Google, me he permitido traducir/resumir estos tips para hacer las aplicaciones desarrolladas con PHP, lenguaje que uso principalmente para desarrollar mis proyectos web, mucho más eficientes en el uso de los recursos del webserver y como consecuencia más rápidas. El artículo original se llama "PHP performance tips", y ha sido escrito por Eric Higgins uno de los webmasters de Google.

Aquí las recomendadiones:

No copiar variables, si no es necesario.

Algunas veces los novatos en su afan de hacer el código más legible copian variables predefinidas para tener nombres más cortos, esto es malo pues necesitaremos el doble de memoria. Por ejemplo:

MAL: $descripcion = $_POST[‘descripcion’]; echo $descripcion;

BIEN: echo $_POST[‘descripcion’];

Usar comillas simples para las cadenas de texto.

Los interpretes PHP permiten mostrar cadenas de texto con comillas simples o dobles, pero tienen un significado distinto. Las comillas dobles le indican al interprete que revise el contenido y reemplace el valor de las variables, así que si una cadena no contiene ninguna variable es mejor usar comillas simples. Una buena practica es usar concatenación en lugar de comillas dobles. Por ejemplo:

MAL: $output = "Esta es una cadena de texto plano";

BIEN: $output = ‘Esta es una cadena de texto plano‘;

MAL: $type = "mixta"; $output = "Esta es una cadena $type";

BIEN: $type = ‘mixta’; $output = ‘Esta es una cadena ‘ . $type;

Usar echo en lugar de print.

Usar la función echo en lugar de print ofrece más confiabilidad al código y en el siguiente código de ejemplo una mayor performance:

MAL: <?php print($myVariable); ?>

BIEN: <?php echo $myVariable; ?>

No utilizar concatenación dentro de echo.

Muchos programadores novatos no estan concientes de que se puede pasar varias variables a echo separandolas por comas, en lugar de concatenarlas. Usar el punto para concatenar cadenas en el ejemplo a continuación resulta en un pobre prerformance, porque el intérprete PHP debe primero concatenar todas las variables juntas y entonces imprimir el resultado, sin embargo en el segundo ejemplo, el intérprete las imprime todas en el orden dado.

MAL: echo ‘Hola, mi nombre es ‘ . $firstName . $lastName . ‘ y yo vivo en ‘ . $city;

BIEN: echo ‘Hola, mi nombre es ‘ , $firstName , $lastName , ‘ y yo vivo en ‘ , $city;

Utilizar switch/case en lugar del if/else.

Utilice la sentencia switch/case en lugar de la sentencia if/else para una comprobación que involucre una sola variable, esto resultará en una mejor performance y hara el código más fácil de mantener.

BAD: if($_POST[‘action’] == ‘add’) { addUser(); } elseif ($_POST[‘action’] == ‘delete’) { deleteUser(); } elseif ($_POST[‘action’] == ‘edit’) { editUser(); } else { defaultAction(); }

GOOD: switch($_POST[‘action’]) { case ‘add’: addUser(); break; case ‘delete’: deleteUser(); break; case ‘edit’: editUser(); break; default: defaultAction(); break; }

Signos de debilidad en AdSense

El modelo de negocio de las web 2.0 ha sido simple, construir un website con contenido generado por el usuario, atraer suficiente tráfico y monetizar las visitas a través de publicidad. Los pequeños bloggers han contado con AdSense para poder conseguir algun "sencillo" con los anuncios publicitarios que el widget de AdSense muestra en los websites que utilizan el servicio para monetizar su contenido, pero según un interesante análisis que he leído en ReadWriteWeb, los tres elementos claves del éxito de Google, los anunciantes, los productores de contenido y los usuarios están comenzando a experimentar problemas con el modelo que hasta ahora ha representado el 30% de los ingresos totales de Google.

De acuerdo al análisis de ReadWriteWeb, la caída de 3% en los ingresos por AdSense en Google durante el primer trimestre del 2009, esta debida no sólo en parte a la presente recesión, sino también a otros factores como son el hecho de que importantes anunciantes están saliendo de AdSense debido a la poca efectividad de poder convertir clicks en ventas reales. De esa forma sólo los anunciantes menos hábiles en la promoción de productos y servicios a través de la web, aún están usando AdSense para conseguir clicks.

Por otro lado, los websites business to business (B2B), que utilizaban AdSense para monetizar su contenido están abandonando el uso del mismo debido a que los ingresos generados por este servicio de Google no son de consideración, según un artículo publicado en Business to Business Online.

Como si lo anterior fuera poco, Google se ha visto involucrado en una serie de procesos legales donde empresas que utilizan AdSense para monetizar contenidos han iniciado demandas legales contra Google alegando terminación injusta del contraro por parte de Google, la historia de Aaron Greeenspan y su website ThinkLink, ha generado suficiente mala prensa a Google que la obligó a contra demandar. En HuffingtonPost, podrán encontrar la crónica del juicio de demanda a Google y la contra demanda planteada. Luego de leer ambos artículos llegue a la conclusión de que Google no tiene un departamento de servicio al cliente para AdSense lo cual es una pésima idea y lo segundo que concluí es que Google hace mucho dejó atras su lema "Don’t be evil".

Finalmente los usuarios que visitan websites con anuncios AdSense, de acuerdo al artículo de ReadWriteWeb, tienden a ignorar los anuncios de Google, debido a que estos son cada vez menos trascendentes para ellos, a la vez que son visualmente pobres, si los comparamos con otras opciones actuales de publicidad en la web, que tienen por misión capturar la atención del usuario para poder concretar la venta de un producto o servicio, ya que después de todo, ese es el objetivo de un anunciante.

Por el momento las redes sociales no han podido desarrollar un modelo de negocio que pueda competir con AdSense, que sigue dominando el mercado de los contenidos generados por bloggers y pequeñas compañías, pero queda claro que es cuestión de tiempo para que alguien llegue con una mejor solución que satisfaga a estos tres elementos, anunciantes, productores de contenido y usuarios, para que la actual posición de dominio de AdSense sea comprometida.

Los blogs sirven para muchas cosas, pero hacer dinero no es una de ellas.

El día de ayer Dan Lyons, el falso Steve Jobs del blog "The Secret Diary of Steve Jobs" envio un post que más asemejaba un tweet "Me siento extaño ¿Estoy en el cielo?". Ayer también leí en TechCrunch que Blogger, en este agosto próximo cumplirá 10 años, sigue siendo el líder en lo que a plataformas blogs se refiere, aunque Twitter surge amenazante ya habiendo desplazado a los blogs de Six Apart del tercer lugar y aproximandose peligrosamente al segundo puesto WordPress.com, según estadísticas recolectadas por comScore.

Y me vino a la memoria un artículo aparecido en Newsweek a principios de este año, escrito por Lyons titulado "Es tiempo de colgar las pijamas", cuyo subtítulo sintetizaba su experiencia tras haber sido blogger a tiempo completo por dos años, "He aprendido de la forma más difícil que mientras los blogs pueden servir para muchas cosas maravillosas, hacer mucho dinero no es una de ellas". Por experiencia propia como blogger ocacional desde el 2005 y más disciplinadamente desde el 2007, doy fé que lo que no te dará un blog será dinero. Es más en junio del año pasado, en el post titulado "Interesante, pero aburrido" hice una declaración tal vez egoísta con mis lectores pero no por eso falsa, "yo no blogueo por popularidad o dinero, yo blogueo porque quiero, es mi hobby".

Ciertamente aquellos que son bloggers por dinero están abandonando la blogosfera, según Technorati en su informe sobre la blogosfera del 2008, sólo el 5.56% de los blogs que contabiliza se actualizan con una frecuencia menor a los 4 meses. Pero si esas estadísticas son desalentadoras, también lo son las de Twitter que comenté en este mismo blog bajo el título "El espejismo de la web 2.0". Lo cierto es que la mayoría de personas lo que buscan es una forma fácil de hacer dinero, es por eso que funcionan las estáfas tipo pirámide, sino echen una mirada a este "Kit de hacer dinero en Twitter" de TwitterProfitHouse.com, que ofrece ingresos de hasta más de $850 diarios. Lo cuál no deja de ser interesante, ya que los creadores de Twitter hasta ahora no saben como hacer dinero con él.

La misma fiebre del oro ocurrió con la blogosfera a finales del 2006 y principios del 2007, todos corrian a crear sus blogs tratando de llegar a ser ricos o bloguear en el intento (Get rich or blog trying). La gran mayoría simplemente abandonaron sus blogs, los periodístas o comunicadores profesionales que tuvieron cierta aceptación del público, tuvieron que volver a los medios tradicionales para poder recibir un ingreso que les permita vivir, y es que tratar de vivir de los anuncios no es fácil como fue probado por el equipo de NewJerseyNewsroom.com. Y es que según las estadísticas que se manejan, los pocos "blogs" que generan buenos ingresos están formados por equipos de periodistas profesionales, es decir son en realidad periódicos o revistas que publican en la web en lugar de en papel.

Algo que he descubierto experimentando con blogs es que aquellos que tocan temas de humanidades suelen tener mucho más tráfico y desarrollan una audiencia mucho más leal y participativa. Lo cuál no debe de sorprender a nadie, sencillamente las personas odian la ciencia y las matemáticas, algo por lo cual estoy agradecido, de no ser así tendría demasiada competencia al momento de buscar trabajo. Así que si quiere bloguear y que lo lean, hagalo sobre temas relacionados a humanidades y si quiere hacer un blog "informático", en realidad toque temas meramente informativos y generales, si toca algún tema en profundidad no lo leeran.

Por otra lado, una forma de hacer dinero con una web es ciertamente tener tráfico y poner publicidad en ella, eso no es un misterio. Pero hacerlo generando contenido suele ser tedioso, costoso y de pocas recompensas. La mejor forma es hacer dinero es con el trabajo de otros, como lo hemos venido haciendo los seres humanos por milenios, un ejemplo de esto es Google. Google no genera contenido propio, ordena el contenido generado por otros. Blogger, MySpace, Facebook, Twitter, etc., ninguno de esos sites genera contenido por sí mismo, son servicios que millones usan y generan contenido queriendo hacer dinero en el intento.

Siguiendo el ejemplo de los que tienen éxito inicié un proyecto llamado flv2amv.com, que es una herramienta web que convierte videos de YouTube al formato AMV, muy utilizado en los clones de iPod chinos llamados ChiPod. Los resultados han sido más que sorprendentes, sin producir contenido propio, este website que no es más que un mashup del API de YouTube con algunos scripts de shell que corren la herramienta de conversión de formatos en el servidor, tiene unas métricas web envidiables. En primer lugar promedia 100 visitas únicas diarias, tras estar en la web hace sólo 5 meses, con una media de 8 impresiones por visitante, un tiempo promedio en el site de 15 minutos y una lealtad del 50% (es decir de cada 2 visitantes, uno vuelve al menos una vez más al mes) y un porcentaje de rebote de menos del 20%, todo esto según Google Analytics. Por otro lado este blog al cual le dedico varias horas a la semana para producir contenido, apenas exhibe un pobre 1.4 páginas vistas por visitante y el tiempo promedio en el site es apenas superior a un minuto.

Debo admitir sin embargo que tal vez una de las razones por las cuales este blog no es popular, se debe en parte a que no soy una persona muy popular, no se como serlo y tampoco aspiro a serlo. Tal vez una persona más social pueda hacer que su blog sea muy visitado y con ello obtener ingresos por el contenido que produce, esto no creo que ocurra con este blog, eso no significa que lo cerraré, por el contrario planeo conservarlo mientras tenga vida. Pero ya se que debo invertir más de mi tiempo en hacer "herramientas" y no "contenido". Como dice el viejo refran "zapatero a tus zapatos".