jueves, 29 de octubre de 2009

Las webs y la televisión

Por variar un poco, una entrada de opinión

Siempre he tenido la idea de que una campaña de televisión sobre una web lo que consigue es montones de visitas mientras que se emite el anuncio y al desaparecer el anuncio, desaparecen las visitas. Si el producto es bueno, lo que conseguirá tráfico continuo es el boca a boca, entradas de blog, noticias online, comentarios de usuarios satisfechos con el producto....

Y hace poco he visto la confirmación de mi teoría. Zonzoo hizo una campaña en televisión este verano en la que se debió gastar una millonada, luego ha estado un par de meses sin campaña y ha vuelto a hacer otra.

Mirando el ranking en Alexa de zoonzo se ve que tal como subió desapareció y con la nueva campaña ha vuelto a aparecer.



Aunque el ranking Alexa no es fiable 100%, porque se basa principalmente en los datos de los usuarios que tienen la Toolbar Alexa, es un buen indicativo del tráfico y importancia de una web.

La idea es buena, y es probable que tengan éxito, pero en mi opinión habría sido mucho mejor hacer una buena campaña online y ofrecer mejores tarifas por los móviles, que les habría salido infinitamente más barato, y habrían crecido ordenadamente, consiguiendo tráfico y ingresos poco a poco

Y además, para soportar esa campaña habrán tenido que montar una buena infraestructura de servidores y logística que no habría sido necesaria inicialmente si hubieran apostado por el crecimiento lento y ordenado.

Bueno, no tengo ni idea de marketing y igual me equivoco, pero para eso están las opiniones, para equivocarse :)

martes, 20 de octubre de 2009

Evictions en memcached

En la aplicación en la que estoy trabajando tenemos memcached distribuido entre varias máquinas. Normalmente voy comprobando periódicamente que el tamaño usado sea menor al máximo tamaño disponible y lo teniamos configurado a 64 MB por máquina, ya que parecía suficiente.

En la traza se puede ver como tiene algo más de 40 MB (bytes) ocupados de los 64MB disponibles (limit_maxbtyes). El estado se puede consultar utilizando el método stats de la gema memcache-client o directamente haciendo un telnet al puerto donde está levantado tal y como contaba Jacobo hace unos meses en su blog:

bytes: 44140784
pid: 27269
connection_structures: 223
threads: 1
evictions: 215279
time: 1255950371
pointer_size: 32
limit_maxbytes: 67108864
cmd_get: 12315783
version: 1.2.2
bytes_written: 48564944477
cmd_set: 1505495
get_misses: 563019
total_connections: 643702
curr_connections: 61
curr_items: 15957
uptime: 9589358
get_hits: 11752764
total_items: 582809
rusage_system: 172.8108
rusage_user: 67.872241
bytes_read: 19210833034


Pero leyendo lo que significa cada uno de los parámetros de memcached en la web de escalabilidad de MySQL, me he dado cuenta de que el parámetro importante a comprobar es evictions. Eviction (que se puede traducir como desalojo), indica el número de elementos válidos de la caché borrados para liberar memoria para nuevos elementos y que debería ser cero o un número muy pequeño.

Así que hemos ampliado la memoria de memcached en todos los servidores a 128MB y efectivamente, nos habiamos quedado muy cortos.... ahora están ocupando sobre 90MB cada uno y a partir de ahora el parámetro a monitorizar es evictions :-)

Actualizacion 30/10/2009: Acabo de leer en Building Scalable Web Sites una forma alternativa de ver el status de memcached utilizando netcat. Suponiendo que está instalado en localhost en el puerto 11211

echo -ne "stats\r\n" | nc -i1 localhost 11211

Otra opción es utilizar memcache-top para ver las estadísticas en formato top (gracias a Paco por el enlace)

Actualizacion 16/10/2013:  Y cuatro años despues actualizo con otra forma de consultar los stats

/usr/share/memcached/scripts/memcached-tool localhost:11211 stats


miércoles, 7 de octubre de 2009

IE7 y IE8 con VirtualBox - Duplicar discos virtuales

Para probar las aplicaciones con Internet Explorer, hasta ahora tenía IE6 con ie4linux y IE7 con una máquina virtual de XP con VirtualBox

La instalación por defecto en Ubuntu es VirtualBox OSE (Open Source Edition) que no tiene soporte para USB, así que la que utilizo es la versión estándar tal y como explican en TuxGuides, para poder utilizar el software original de algunos perifericos en Windows.

El tema es que IE8 ya tiene una cuota de mercado lo suficientemente alta para probarlo todo tambien en IE8, por lo que me hacía falta otra máquina virtual. Claramente la opción crearla desde cero instalando de nuevo Windows, instalando n mil parches y reiniciando otras n mil veces no es buena opción, así que he investigado un poco como duplicar el disco ya existente.

Por defecto, los discos virtuales se crean en el directorio ~/.VirtualBox/HardDisks y tienen extensión .vdi, y desde línea de comando se pueden duplicar (en mi caso el disco anterior era WindowsXP y el nuevo es WindowsXP_IE8)

cd ~/.VirtualBox/HardDisks
diego@diego-laptop:~/.VirtualBox/HardDisks$ VBoxManage clonehd WindowsXP.vdi WindowsXP_IE8.vdi
VirtualBox Command Line Management Interface Version 2.2.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8545bc77-6aa4-4594-b1a1-d1aa886abd40


Se toma su tiempo, pero una vez duplicado, simplemente creamos una nueva máquina virtual y en lugar de crear un nuevo disco seleccionamos el disco que acabamos de crear. Y una vez arrancado Windows simplemente actualizamos IE a la nueva versión y listo, ya tenemos las dos versiones para probar.

La configuración de la máquina virtual no se copia (memoria, usb, audio, ...), pero como es algo que se hace en 1 minuto no he perdido tiempo en ver como se haría automáticamente.