Midiendo la performance de un website

Hace tiempo que no escribía y ha sido principalmente más por falta de tiempo que por desánimo o carencia de temas. El mundo al parecer se vuelve más interesante cada día y resulta muy difícil aburrirse o pensar que un día se parece al siguiente. En parte por eso también no he escrito, por que cualquier cosa que comente a la vuelta de un par de días estaría completamente desactualizado.

Explicada ya la ausencia de posts de las últimas semanas entraré en materia sobre como poder evaluar, que tan bien o mal se comporta nuestro website. Existen dos tipos de herramientas que podemos usar, aquellas que debemos ejecutar desde nuestra PC o aquellas que están hosteadas como servicios en línea. Comencemos por las primeras.

Yahoo! YSlow plugin

Es un plugin de Firefox que extiende las funcionalidades de Firebug, que permite analizar las páginas web y recomienda formas de mejorar la perfomance basado en un conjunto de reglas propuestas por el mismo Yahoo! para acelerar la velocidad de carga de un website (detalles aquí). Lo he probado tanto en Linux como en Windows y funciona bastante bien.

Google PageSpeed

Éste es otro plugin de Firefox que extiende las funcionalidades de Firebug, forma parte de la familia "Page Speed" de Google que incluye un módulo para Apache 2 llamado mod_pagespeed que permite optimización al vuelo sin necesidad de modificar el código HTML de las páginas. El plugin de Firefox que he probado tanto en Windows como en Linux funciona muy bien y ofrece casi el mismo tipo de información que YSlow, por lo tanto bastaría con instalar uno. Ya depende de las preferencias personales.

HTTP Server Benchmarking Tool

Es una herramienta Open Source desarrollada por HP para medir la perfomance de servidores web. El enfoque de httperf no está en la aplicación de una medida de desempeño en particular, sino en proporcionar una herramienta robusta, de alto rendimiento que facilite la construcción de medidas de desempeño de micro y macro nivel. Las tres características distintivas de httperf son su robustez, que incluye la capacidad de generar y sostener la stress test del servidor, soporte para los protocolos SSL y HTTP/1.1, y su extensibilidad para poder ser integrado con los nuevos generadores de carga de trabajo y medidas de desempeño.

Finalmente para aquellos que están amarrados a la plataforma Internet Explorer y Windows, hay una herramienta llamada PageTest que corre como una extensión para IE6 e IE7, según la página del proyecto, desafortunadamente no lo he probado. Ahora veamos las herramientas ofrecidas como un servicio web.

Pingdom

Éste es un servicio que nos permite medir el tiempo de carga de una página web, además de indicarnos que parte de la página demora más de lo usual en cargar. El resultado que muestra es un diagrama que nos indica una escala de tiempo contra cada uno de los elementos de una página web (imagenes, CSS, JavaScript, Flash, iFrames, etc.), al simular como éstos son cargados por un navegador. He encontrado que esta herramienta es bastante útil en lo personal, ya que me ha ayudado a indentificar y resolver algunos de los puntos débiles de este blog.

Load Impact

Éste es un servicio que nos permite medir el impacto de la carga (número de visitas) sobre la forma cómo reacciona nuestro website, en el caso ideal el tiempo de carga apenas debe de cambiar con la carga, aunque es aceptable incluso que haya una leve pendiente entre el tiempo de carga y el número de conexiones. Sin embargo este servicio sigue el modelo freemium, es decir la funcionalidad básica (prueba el website contra 10, 20, 30, 40 y 50 conexiones simultáneas) es gratuito, pero si se desea acceso a más detalle en los reportes y sobre todo a muchas más conexiones simultáneas para probar la resistencia del website a un repentino pico en el número de visitas, se debe de pagar. Los precios oscilan entre los $9 diarios por el servicio llamado BASIC a los $99 diarios por el servicio llamado ADVANCED.

El problema del azar

En los días pasados no he tenido el tiempo suficiente para escibir, a pesar de que he encontrado infinidad de temas interesates sobre los que comentar. Es más había pensado escribir un extenso post detallando la gran cantidad de señales que indican un inminente cambio de dirección en los mercados. Pero en parte me parece que ha sido mejor así, he tenido tiempo de encontrar cosas mucho más interesantes aún.

La primera de esas cosas ha sido el video de una conferencia de Nassim Taleb en FORA.tv, sobre la impredictibilidad de los eventos importantes y la humana necesidad de explicar los eventos luego de que estos ocurren. Como consecuencia de ver ese video y de no escribir sobre cosas que sé, sino pensar sobre las implicaciones del mismo y sobre la importacia de las cosas que no sé, es que para clarificar mis ideas comienzo a escribir el presente post.

Una de las críticas más importantes que hace Taleb al "establishment" de la ciencia es que en lugar de almacenar "hechos" lo que hace es almacenar "teorías", que no son más que visiones simplificadas y resumidas de la realidad, obtenidas la mayor parte de las veces a través de la "inducción". O para ser más especifíco, de la extrapolación de una regla basado en un conjunto finito de datos, de los cuales se han extraído convenientemente los valores extremos que pudieran hacer difícil la formulación de dicha regla.

El problema básico como explica Nassim en una entrevista dada a Charlie Rose, en agosto del 2007, es que psicológicamente los humanos no estamos preparados para lidiar con la complejidad del mundo que nos rodea. Además propone que a diferencia de como nos vemos a nosotros mismos como humanos, estamos hechos por selección natural para "hacer cosas" y no para "entender cosas". Sin embargo debido a que tenemos un profundo temor por la incertidumbre hemos invertido la forma natural en que debemos operar, por ello hemos creado este conjunto de "conocimientos" que luego tratamos de "aplicar".

Contradictoriamente, la idea que nos propone Nassim, es obtenida por "inducción" también. Pero eso no le resta validez, por el contrario es como un momento de inspiración, de esos que nos han permitido pasar de un nivel a otro. Básicamente la idea que nos propone Nassim tiene consecuencias en un mundo de Exabytes.

Dejenme explicarles mi conclusión, en el mundo pre-digital o el mundo de la escasez, almacenar y transmitir información a lo largo del tiempo era costoso. Por lo tanto con la finalidad de ahorrar recursos, sólo almacenábamos y transmitíamos de una generación a otra aquellos que era "relevante", mejor dicho sólo se almacenaba y transmitían los "casos de éxito", aunque hubieran miles de millones de "casos de fracaso", por simple economía del mundo pre-digital, todos los errores se olvidaban por pura eficiencia. Nuestros cerebros operan de esa manera también, ya que somos criatura analógicas.

Sin embargo nos encontramos ahora al principio de la era digital, la escasez de medios para almacenar y transmtir información es cosa del pasado, lo irrelevante, lo cotidiano puede ahora ser almacenado y compartido con el mundo entero si queremos. Una prueba de ello son las redes sociales que nos ofrecen petabytes de "irrelevancia".

Por favor,  no me tomen a mal, uso el término "irrelevancia" no en un sentido despectivo, sino en un sentido descriptivo del impacto que tiene en la sociedad en su conjunto esta información. Por ejemplo el día de mañana el Sr. Juan Pérez puede decidir subir fotos de la vecina en ropa interior a Facebook, y esto tan sólo afectará a lo mucho la vida de un puñado de personas. En contraste la famosa fórmula de Einstein E=mc2 es relevante porque afectó y afecta la vida de millones.

Nassim nos habla de dos dominios "Mediocristán" y "Extremistán", el primero dominado por la ley de los grandes números, el segundo dominado por las excepciones, describiendolo como el dominio en el cual un cambio en una pequeña parte del conjunto, produce un gran impacto en el conjunto. Bajo esa premisa Nassim dice que somos buenos haciendo predicciones en "Mediocristán", pero al querer extender esos modelos a "Extremistán", fallamos terriblemente.

Me parece que Nassim está absolutamente en lo correcto con respecto a eso y muestra a los científicos sociales (especialmente, aunque también refleja a la comunidad científica en general) como aquella persona buscando algo cerca de un poste de alumbrado público y al cuál un amigo se le acerca preguntándole: "¿Se te ha perdido algo?". A lo cual el sujeto que estaba buscando responde que busca su billetera, entonces el amigo pregunta: "¿Dónde se te cayó?". Entonces el sujeto señala un lugar oscuro más alla del alcance de la luz proporcionada por la lámpara. A lo cuál sorprendido el amigo cuestiona: "Entonces, ¿por qué estas buscando aquí?". El afligido sujeto responde: "Es que aquí hay más luz".

Los ingléses tienen un refrán que refleja lo mismo que la historia anterior: "Para aquel cuya única herramienta es un martillo, todo problema es un clavo". Estamos en la era digital usando herramientas de análisis de la era analógica.

El problema de la dicotomía Mediocristán/Extremistán, no parece tan insoluble si en lugar de continuar extendiendo nuestros modelos analógicos pasamos a modelos digitales. Pero ¿qué es un modelo digital?. Pues bien un modelo digital lo veo como un conjunto de datos en el orden los Exabytes o superior que son analizados estadísticamente en búsqueda de patrones cause/efecto.

Como dice Nassim, la historia de la ciencia y del hombre en general, es la historia del descubrimiento fortuito, de una sucesión de "Cisnes Negros". Hechos difíciles de predecir antes de que ocurrieran, pero que una vez ocurridos cambián completamente el mundo (hay un antes y un después), pero que luego de que pasan tratamos de buscarles una explicación racional y justificar su inevitabilidad.

En una gran población que juega a la lotería, debe haber al menos un ganador. El método científico hasta ahora, al menos para los economístas, consistía en explicar por qué ese ganador había tendido éxito, ignorando el hecho de que millones habían perdido. En un programa de PBS sobre las subprime llamado "Crisis y Credibilidad" uno de los involucrados en la crisis de las subprime dice que si bien es cierto los métodos usados para hacer las evaluaciones de riesgo eran "metodológicamente" correctos, estaban aplicados a un conjunto muy pequeño de datos. La clásica historia de buscar en donde hay luz y no donde está el objeto perdido.

Nuestra memoria es débil y limitada, producto de la selección natural y orientada a resolver problemas inmediatos (salir corriendo si vemos un leon). En la era digital la memoria puede crecer tanto como lo deseemos no sólo en capacidad, sino también en tiempo. A más data pongamos en el modelo, más precisas serán las predicciones.

Podemos predecir el clima de mañana o de la próxima semana porque tenemos un conjunto de datos de los últimos 100 años que nos permiten ser precisos respecto a los próximos 5 días. El problema es que usemos esos 100 años de datos para predecir el clima de los próximos 1000 años.

Ahora pongamonos las botas al revés cada vez que deseemos responder una pregunta sobre el futuro, no usemos la data existente para responderla. Hagámonos la pregunta, ¿cuánta data necesito colectar, para responder satisfactoriamente esta pregunta?

Básicamente por limitaciones económicas en el mundo pre-digital debíamos de usar el método inductivo, dado el alto costo del alamacenamiento y transmisión de todos los "hechos". En el mundo digital debemos de ir hacia una metodología deductiva, en la cuál debemos formular un conjunto de de reglas de inferencia que verifiquemos experimentalmente es cierta (el algoritmo, a más simple mucho más fácil de verificar su certeza) y luego aplicarlo a un universo de datos creciente en el tiempo.

La idea anterior no es nueva y tampoco es mía. Google ha tenido el éxito que tiene en el mercado de las búsquedas porque ha aplicado esta simple estrategia. Inventó un algoritmo (muy simple) que le permitía dar un cierto ranking a las páginas basado en una serie de palabras claves y enlaces entrantes. Pero adicionalmente alimentó una gran base datos (el universo de datos disponible) sobre la cual corría su algoritmo. A más grande sea la base de datos de Google, más difícil será derrotarlo y ellos lo saben, de alli el gran esfuerzo de la compañía por mantener esa base datos creciendo contínuamente.

Mi conclusión es que a lo que llamamos azar, no es más que a nuestra incapacidad de entender a la realidad en toda su complejidad. La mejor respuesta a esta sensación de frustación no es volvernos religiosos o aceptarla estóicamente. La mejor respuesta es continuar la recolección, almacenamiento y transmisión de datos a lo largo del tiempo, perfeccionando los algoritmos con los nuevos datos y esperando que los hombres del mañana tengan el suficiente universo de datos disponibles para hacer una proyección más ajustada a la realidad.

2011 un año de cambios

Este 2011 inicia con un CES (Consumer Electronics Show) lleno de novedades, primero Microsoft ha dejado luego de mucho tiempo de actuar a la defensiva (ha reconocido que el monopolio que ejercía sobre el mercado ha terminado) y ha pasado a la ofensiva para recuperar todo el terreno perdido, un buen ejemplo ha sido Kinect, pero por otro lado tenemos el anuncio oficial de que la próxima versión de Windows correrá sobre procesadores ARM, con lo cual acepta que la era PC está llegando a su fin y la nueva forma que tomarán las computadoras será la de una tablet o un teléfono celular. Pero las novedades no termina alli, Facebook romperá la barrerá de los 500 accionistas este año 2011 y a más tardar el 1 de mayo del 2012 tendrá que presentar de manera pública su balance contable, todo esto independientemente de que el trato realizado con Goldman Sachs sea observado por la SEC (Securities and Exchange Commission) o no, según me he enterado por Business Insiders. Ojo, el que tenga que presentar sus balances contables de manera pública no significa que tendrá que inciar una oferta pública de acciones en la bolsa de valores, de forma que cualquier pequeño inversionista pueda comprarlas, sólo significa que por fin sabremos realmente cuánto es el monto de dinero que le reporta a Mark Zuckerberg el colectar y vender a anunciantes nuestra información privada.

En el mismo CES, Google nos ha presentado a Honeycomb (aka Android 3.0), el primer sistema operativo orientado a tables y Motorola aprovechando la atención generada nos ha mostrado el primer supertablet con procesador de dos núcleos y la nueva versión de Android llamado Xoom. Amazon prepara el lanzamiento de su propio App Store, y ya está invitando a los desarrolladores a que se unan al mismo a través de una suscripción de $99 anuales (el primer año es gratis). Me pregunto por qué tendría que pagar $99 al año para que mis aplicaciones aparezcan en el Amazon App Store, si pagando $35 por única vez, se pueden publicar aplicaciones en el Android Market de Google y mis aplicaciones aparecerían tambien en Amazon, además no tendrían que pasar por el proceso de aprobación de Amazon, sino que inmediatamente estarían disponibles. En fin veamos que se les ocurre a los marketeros de Amazon para convencernos que que compartir nuestra ganacias con ellos es mejor.

Lo único malo de este 2011 para mi por lo menos, es que aún los usuarios de Nexus One no tenemos el Android 2.3 en nuestros celulares, parce que Google está prestando más atención a quitarle el mercado de las tablets a Apple que a seguir actualizando su propio celular introducido hace apenas 1 año.

Aquí les dejo un videito que encontré sobre como luce Gmail en Android 3.0, realmente sorprendente:

 

 

25 laptops se dañaron haciendo este video, afortunadamente ningún dato se perdió

Me enteré por slashdot.org que un grupo de hackers europeos se ganaron una laptop Cr-48, al resolver un acertijo incluído en el video que trata de demostrar las ventajas de tener nuestrs datos en la nube. La pregunta era encontrar del valor de X en una larga ecuación cuyos detalles pueden ser apreciados en esta fotografía.

Bueno ese es el detalle anecdótico, pero con lo que me quedo y he utilizado como título de este post es el hecho de que el nuevo paradigma computacional de las netbook con Chrome OS es poner todo en la nube, de esa forma no hay que temer por que algo ocurra con la computadora, ya que nuestros datos siempre estaran a salvo en la nube. No es necesario hacer back-up, re-instalar el sistema operativo si se estropea algo, recuperar los datos desde los back-up, sencillamente sólo debemos conectarnos a Internet, loguearnos en una computadora con Chrome OS y todo estará alli. Por supuesto que esto tiene efectos colaterales, el primero y más preocupante (al menos para mi) es que vuelve innecesarios a buena parte del personal del departamento técnico de muchas corporaciones, cuyo único propósito era dar el soporte técnico a los usuarios finales. El segundo efecto colateral importante es que vuelve al acceso a Internet de alta velocidad en un servicio tan necesario como la electricidad o el agua potable.

Supongo que algunos se preguntaran porque no incluyo dentro de los efectos colaterales la pérdida de la privacidad, pues basicamente porque desde que Facebook ha crecido y se ha convertido en el coloso que es gracias a que 500 millones de seres humanos conciente o inconcientemente decidieron que la conveniencia de contactar a un viejo amigo es más importante que nuestro derecho a la privacidad, la frontera entre los privado y lo público ha desaparecido en la era de la nube.

Aquí el video de promoción de Chrome OS, en donde Google trata de demostrar que no importa que le ocurra a la computadora, mientras se use Chrome OS los datos siempre estarán a salvo.

 

 

Google Chrome OS

El día martes pasado (7 de diciembre), Google lanzó una gran ofensiva en el frente de los sistemas operativos. Lo primero que hizo fue presentar una nueva versión del intérprete de JavaScript incluído en Google Chrome, V8 llamada crankshaft, que mejora según algunos analistas en un 100% el rendimiento de la anterior versión que ya era bastante rápida de por sí. Adicionalmente Google ha presentado al público el Chrome Web Store, que para todo fin práctico es como el Android Market pero orientado a Google Chrome.

La cereza sobre el pastel, fue la presentación del Chrome OS y el lanzamiento de un programa piloto de sistema operativo que según una nota del digitimes constará de 60,000 laptops equipadas con el nuevo OS y que serán distribuidas gratuitamente a los participantes de dicho programa. Puede solicitar formar parte de la prueba en este URL, sólo se puede palicar hasta el 21 de diciembre.

La laptop que se distribuirá lleva el nombre de Cr-48, y tiene unas características bastante comunes:

  • Pantalla de 12.1 pulgadas
  • Teclado de tamaño completo, pero sin la tecla "Caps Lock" que ha sido reemplazada por una nueva tecla "Search".
  • Un clickpad de tamaño superior al estándar.
  • Conexión Wifi y 3G (En U.S.A. proveída por Verizon).
  • En teoría 8 horas de uso contínuo y 8 días en modo stand by.
  • Webcam
  • Almacenamiento Flash (no hay disco duro mecánico).
  • Procesador Intel Atom (probablemente el N450).

La similaridad del diseño con la Macbook salta a la vista viendo las fotografías proveídas por Google en el website del proyecto, aunque el Cr-48 es de color negro (la Macbook es de color blanco) y no lleva ningun logo o marca asociado. Pero si nadie le dice a uno que es el Cr-48, fácil cualquiera cree que es un Macbook, aquí un par de fotos del Cr-48 que ayudan a clarificar esta idea:

 

Habrá que esperar a ver que resulta de todo esto, pero definitivamente Google se ha sacado los guantes y ha decidido atacar con todo el sector que constituye la principal fuente de ingresos de Microsoft, el sistema operativo y la suite de oficina. De tener éxito Google en este proyecto, los días de Microsoft están contados, por lo pronto sólo sabemos que Acer y Samsung preparan laptops de este tipo para ser lanzadas al mercado a mediados del 2011, si el resto de fabricantes seguiran esta iniciativa dandole la masa crítica que necesita para poder ser la tercera opción a nivel corporativo es aún algo incierto, pero definitivamente luego de ver el éxito de Android en el mercado de smartphones, es una posibilidad que debe ser considerada.