Introducción a Split Testing

El otro día Rodrigo se quejaba de que no explicaba lo que era Split Testing y que puede que hubiese gente que no lo supiera. De forma que si queréis saber qué es y para que vale, he publicado una introducción en Veldu.net.

Para los impacientes, os dejo aquí un resumen y, si os sigue interesando, podeís visitar el link de antes para leer algo más.

“Split Testing pretende proporcionar herramientas que permitan evolucionar un sitio o aplicación web de forma "controlada", midiendo los resultados de los diferentes cambios realizados. La idea es ir realizando pequeñas modificaciones al sitio y ver cuál es su impacto en el comportamiento de los usuarios.

El proceso a seguir sería el que se enumera a continuación:

  • Antes de hacer un cambio, diseño dos versiones, normalmente manteniendo la versión antigua y una versión nueva.
  • Se ponen las dos versiones a funcionar en paralelo. De forma aleatoria, unos usuarios verán una versión y otros usuarios verán la alternativa. Una vez se muestra a un usuario una de las versiones, si vuelve seguirá viendo la misma.
  • Se mide el resultado de esas dos versiones.
  • Después de un tiempo, dependiendo de los resultados se selecciona qué versión me ha funcionado mejor y se descarta la otra. La versión "ganadora" será la que verán todos los usuarios en el futuro.

Para completar ese proceso, se hacen necesarias ciertas herramientas que lo faciliten ya que implica realizar un buen seguimiento de los usuarios, estableciendo objetivos claros de qué se quiere conseguir con cada modificación y comparando resultados de igual a igual, de forma que se pueda entender el impacto de las modificaciones que se vayan haciendo.

Tupply para Windows Phone 7

La versión de Windows Phone 7 de Tupply se ha presentado hace unos días al Imagine Mobile 2010 y estará en breve disponible en el Market de Windows Phone 7, espero que os guste…

EDIT: Incluyo algunas capturas de pantalla que no tenía…

 

Lista de anuncios recientes

 

 

Lista de muros

 

 

Búsqueda de anuncios

 

 

Detalles de un muro

 

 

Su localización

 

¿Te han fastidiado tus compras de Navidad? ¡Quéjate!

Desde finales de Diciembre he habilitado un nuevo sitio web (http://www.nocompresen.com). Está orientado a reflejar quejas sobre el trato que nos dan algunos comercios o sus empleados. Si os han tratado mal en algún momento os animo a que dejéis reflejadas vuestras quejas ahí, o que comentéis sobre las existentes. Quizá dejando las quejas en un sitio público consigamos que poco a poco el trato mejore.

Alucino con los niños; o cómo el paradigma del iPhone lo cambia todo…

Actualmente tengo dos niñas (la luz de mi vida, las perlas de mis ojos, etc, etc, bla, bla, bla, … eso no viene al caso…) una de 5 años y otra que acaba de cumplir dos… Ayer y antesdeayer he estado en el hospital con la más pequeña para hacerle unas pruebas de alergia; yo acojonado, y ella encantada, pero ese no es el tema de este post…

El caso es que las pruebas de alergia que le han hecho constan de 2 mañanas competas, de 9.00 am a 14.00 pm, esperando a ver si lo que le dan para tomar reacciona o no. Mientras tanto, pues hay que esperar.

Así, mientras esperaba ayer, mi pequeña y las demás que había por allí se divertían, a la vez que los padres que estábamos con ellos/as hacíamos lo que podíamos por llevarnos bien; que para eso en nuestra generación nos enseñaron algo de educación.

El caso es que para pasar el rato yo le dejaba el iPhone para jugar (que lo maneja mejor que mis hermanos, que son unos bandarras, todo hay que decirlo) y ha abierto entre otras cosas la aplicación de Seadragon, que, si no la conocéis, y tenéis un iPhone o iPod Touch, pues no sé a qué esperáis a descargarla… (por cierto, los cutres de Windows Mobile criticaron a la gente que publicó la aplicación por favorecer al iPhone; a ver si ellos sacan de una p…ta vez algo que mi niña de 2 años pueda usar sin que yo la tenga que enseñar… pero ese es otro tema…)

El caso es que abrió la aplicación y estuvo viendo las fotos, zoom para arriba, zoom para abajo, con el gesto de abrir y cerrar los dedos típico, como se espera en esa aplicación y en otras del iPhone.

Yo, tan listo como soy, le dejé el iPhone para que me dejara en paz  se divirtiera y me cogí el último número de Sky& Telescope, que me había llegado la noche anterior.

Mientras ella jugaba, pues yo me leía la revista… Y ahí llega lo que me deja alucinado… Yo le he enseñado a la pequeña que con el gesto de "pinch" puede hacer zoom alejando y acercando la imagen… y luego, cuando se aburrió del teléfono pues me quitó la revista que estaba leyendo, como no podía ser de otra manera y …

¿qué es lo que se le ocurre hacer sobre las fotos de las galaxías que se ven en la revista?

Exactamente!!!!, quería, con el gesto de pinch de los dedos, hacer un "zoom" sobre la foto en el papel….

 

Pues eso, ahí os lo dejo la duda a todos los que estáis estudiando temas de UX, que yo me voy a tomar unas cañas… (yo seguiré con mis cajas de texto hasta extinguirme, que es cosa de evolución…)

La ciencia española no necesita tijeras

"Los científicos no estudian la naturaleza porque sea útil; la estudian porque les place, y les place porque es bella. Si la naturaleza no fuese bella, no valdría la pena conocerla, no valdría la pena vivir la vida" (Henri Poincaré)

“La verdadera ciencia enseña, sobre todo, a dudar y a ser ignorante.” (Miguel de Unamuno)

“Mientras los hombres sean libres para preguntar lo que deben; libres para decir lo que piensan; libres para pensar lo que quieran; la libertad nunca se perderá y la ciencia nunca retrocederá.” (Julius Robert Oppenheimer)

“En la vejez la ciencia es para nosotros un cómodo refugio; y si no la plantamos de jóvenes, no nos dará sombra cuando seremos viejos” (Conde de Chesterfield)

“La ciencia que la humanidad tiene en un momento dado depende de lo que es la humanidad en ese momento.” (Georg Simmel)

“Y sobre este tema no tengo más que decir." (Forest Gump)

Nota:
Esta entrada se suma a la iniciativa LA CIENCIA ESPAÑOLA NO NECESITA TIJERAS, promovida desde La Aldea Irreductible.

Microsoft Pre-Incubation Program y Barcelona Activa. Un modelo a seguir.

La semana pasada y parte de la anterior he estado realizando una serie de entrevistas con emprendedores (11 en total) para conocer y ayudar en la arquitectura de sus aplicaciones. Esta tarea forma parte de los servicios que se ofrecen dentro del programa “Microsoft Pre-Incubation Program”, un programa impulsado en este caso por Microsoft, Barcelona Activa y Osborne Clark.

Barcelona Activa es una iniciativa del ayuntamiento de Barcelona para impulsar la creación de empresas de todo tipo. Disponen de espacios de encuentro de libre uso, formación y asesoramiento gratuito en todos los ámbitos de creación de empresa y espacio de oficinas a costes MUY competitivos durante los primeros años de funcionamiento de la empresa. Las oficinas se encuentran dentro de la ciudad con muy buen acceso de transporte público.

Microsoft Pre-Incubation Program es un programa que ofrece diferentes servicios de tutorías, formación y consultoría tecnológica (donde yo entro), así como la integración en el programa BizSpark para aquellos emprendedores cuyo foco de empresa sea más tecnológico.

Dentro de estos programas, una vez que un emprendedor dispone de un plan de negocio viable, se le ofrece la posibilidad de ponerse en contacto con inversores para que intenten conseguir la financiación necesaria para arrancar su proyecto.

En mi opinión, esta combinación de iniciativas promueve muy claramente la creación de empresas y de empleo potencialmente de calidad. Por un lado, el propio centro de Barcelona Activa da trabajo a un buen número de personas, personal administrativo y técnicos en diversos campos. Luego, personal externo ofrece formación y consultoría de manera temporal muy concreta. Finalmente, aquellas empresas que consiguen arrancar, emplean inicialmente a sus fundadores y, si funcionan, ofrecerán trabajo a un número indeterminado de personas. Además, aunque las empresas no funcionen o no consigan arrancar, la formación que los emprendedores adquieren es muy válida para comenzar otros proyectos empresariales teniendo gran parte del camino ya andado.

Ahora que estamos inundados todo el día con noticias sobre la crisis, creo que se debería gastar dinero público en la creación de centros de este estilo, uno por provincia no estaría mal, para potenciar las economías locales con empleos y formación de calidad, poniendo la vista en proyectos de larga duración con un gran potencial de crecimiento.

IEMobile 6

Ya es oficial. Desde hace un tiempo se vienen oyendo rumores de que se estaba desarrollando un nuevo navegador para Windows Mobile; ayer se anunció en el TechEd en Barcelona.

El nuevo navegador se llama “Internet Eexplorer Mobile 6” y estará disponible en los nuevos dispositivos que vayan saliendo a la venta (según los fabricantes vayan actualizando la plataforma). Desgraciadamente no se puede descargar e instalar sin más, como nos gustaría que pasase a muchos.

Como novedades a destacar, han sustituido completamente el núcleo de la aplicación y es capaz de “pintar” las páginas de forma completa, con capacidad de zoom y de desplazamiento con el dedo. Se ha incluido JScript 5.7 (heredado de IE 8) y dispone de Adobe Flash Lite 3.1 (toma ya iPhone!! ;-)) para poder ver clips de Flash incrustados en las páginas.

Aunque que yo sepa todavía no hay terminales con esta versión cargados, ya están disponibles los emuladores para probarlo.

Yo por mi parte quiero probar cómo funciona, o si es del todo posible que funcione, alojado en una aplicación .NET Compact Framework…

Cómo acceder a las cabeceras de HTTP de la respuesta de un servicio WCF en .NET Compact Framework

Si has programado algún cliente WCF en .NET Compact Framework, habrás visto que, por el momento, el único binding admitido es el básico (basicHttpBinding) con lo que se están tratando esencialmente servicios Web.

Para usarlos desde .NET Compact Framework lo habitual es crear una clase proxy que facilite el acceso al servicio. Para ello se utiliza la herramienta “netcfsvcutil.exe” que funciona de manera similar a la utilidad de “Agregar referencia web” de Visual Studio. Se apunta la herramienta al WSDL del servicio y ésta genera el código necesario para utilizarlo.

En este caso, “netcfsvcutil” generará dos ficheros que hay que incluir en los proyectos. Uno llamado CFClientBase y otro con el nombre del servicio, que será la clase proxy a usar y que a su vez hereda de CFClientBase.

Al usarlos en el código, habrá que crear una instancia de la clase generada como proxy que incorpora todas las operaciones disponibles en el servicio que serán los métodos marcados en el servicio WCF como “OperationContract” y los datos exportados, marcados como “DataContract”.

Su uso final es muy simple ya que sólo hay que crear un objeto del tipo del proxy y llamar a la función generada correspondiente, pero de tan sencillo que es, se oculta mucha funcionalidad que puede ser necesaria en algún momento y no está accesible.

En un caso reciente quise obtener la cabecera “Date” de la respuesta HTTP del servicio WCF, pero esta información no está presente en el proxy en ningún sitio. Después de indagar bastante di con la solución. En la clase CFClientBase generada hay un método llamado “getReply“. Este método devuelve un objeto de tipo System.ServiceModel.Channels.Message, que contiene el mensaje devuelto por el servicio WCF. Este mensaje a su vez incluye una colección llamada “Properties“. Dentro de estas propiedades hay una llamada “httpResponse” (accesible como message.Properties[“httpResponse”]) que es de tipo HttpResponseMessageProperty. Una vez ahí se dispone de toda la respuesta http y, en concreto, están accesibles las cabeceras HTTP como una colección llamada “Headers“.

En mi caso, modifiqué la clase CFClientBase para exponer el mensaje de respuesta como una propiedad y tenerlo accesible así desde mi código de una forma cómoda. Hay que recordar que si se vuelve a generar el proxy mediante netcfsvcutil se perderán esos cambios y habrá que volver a incorporarlos.

Mi código final para acceder a la fecha de la respuesta HTTP queda algo así (una vez he expuesto la propiedad ReplyMessage en el proxy y sin control de errores):

string fechaHeader = 
 ((HttpResponseMessageProperty)
 proxy.ReplyMessage.Properties["httpResponse"]).Headers["Date"];
 
DateTime fecha = DateTime.Parse(fechaHeader);

 

El problema que le veo a todo esto es que la respuesta Http venga como una propiedad indexada de esa forma, lo que no me da mucha confianza en que esta funcionalidad se pueda perder en futuras versiones de .NET Compact Framework, ya veremos…