EnglishEnglishEspañolEspañol

Blog de Paradigma Tecnológico

Crónica del UX Spain 2012

publicado el Jueves, 17 de mayo de 2012 por: Equipo de Experiencia de Usuario
Etiquetas: - - - | 2 comentarios »

Mucho se ha contado ya (basta con revisar la lista abajo) acerca del primer UX Spain (Encuentro de profesionales de la Experiencia de Usuario en España) al que tuvimos ocasión de acudir el pasado 11 y 12 de mayo una representación de ocho Seres Paradigmáticos. A saber; @cvidal, @nacho_herranz, @vissit, @luiscalvodiaz, @jaucan, Óscar, Miguel y @davidmontalvo.

El evento deja algunos frentes de polémica que son, a nuestro parecer, el mejor legado que puede dejar algo de estas características (significa que seguimos vivos y cuestionamos lo que hacemos). El primero de ellos es la irregularidad en la calidad de las charlas, opinión que sí compartimos. Las mejores, desde nuestra humilde opinión, fueron las de Humberto Matas y Alberto Knapp por su capacidad inspiradora; Borja Delgado por su ritmo y rebeldía, la de Armando Fidalgo por su excelente preparación y contenido (sobre todo el arranque) y la de Javier Cañada por el punto de vista industrial con mensaje (esta se nos quedó un poco corta). Daniel Armengol compartió un tema sencillo pero supo contarlo y Nacho Madrid se arriesgó con un tema original, autocrítico y con visión propia (lo cual siempre es de agradecer). También destacó la mesa redonda de Nacho Puell, Álvaro Ortiz y Álvaro Varona moderada por Luis Villa que, partiendo de un tema jugoso pero poco enfocado, supieron lanzar media docena de ideas para guardar y meterse al público en el bolsillo.

La Universidad Pontificia de Salamanca, marco incomparable para la celebración del UX SpainLa organización (creo que ahí coincidimos todos) fue simplemente memorable, ¿un 9,5? :D El año que viene con el audio un poco más alto os lleváis un 10. No hemos visto exprimir 90 euros de semejante forma en ningún lugar de este universo: Hotel concertado con la organización a precio reducido, cafés y comidas más que suficientes, puntualidad, bolsa de recepción generosa, un wi-fi infatigable, un entorno privilegiado, las charlas de 15 minutos (un acierto) y una cena de gala que ya quisiera más de una boda ;) No podemos pedir más.

Otra cosa estupenda fue la cercanía. A diferencia de eventos como http://www.ux-lx.com (con ponentes internacionales de incuestionable renombre) el UX Spain fue muy “nuestro”. Casi todos pudimos charlar con algunos de los ponentes y organizadores sintiéndonos partícipes y dueños del evento.

La agria mesa redonda final nos pareció mucho más catártica y divertida que a la mayoría por lo que hemos leído. Con alguna torpeza de los invitados (en la forma pero no tantísimo en el fondo) fue triturada con más colmillo del necesario por la masa tuitera. No entendimos muy bien a aquellos que en el turno de preguntas decidieron hacer su propia “microponencia” (y no hemos encontrado a nadie que lo haya hecho).

Tampoco conviene tomarse demasiado en serio todo lo expelido en twitter; es más fácil conseguir cierto eco desde la acidez que desde la genialidad por lo que casi todos transitamos esa vía. Como ya hemos comentado algunos en el blog de Sergio, twitter fue un canal de entretenimiento, interacción e información genial; los tuits finales fueron de satisfacción y ganas de volver y nos queremos quedar con esa impresión. Queremos más y no nos conformamos.

Con respecto a Paradigma quedamos satisfechos con la acogida de nuestro regalo con el que además abrimos un concurso que permanecerá abierto hasta el 11 de junio. Nos sorprendió que pasara un poco desapercibida la ponencia de nuestro compañero @nacho_herranz porque fue de los pocos que dió una charla práctica; algo muy demandado por la concurrencia sobreponiéndose además a algunos problemas de audio y video. Aún nos preguntamos por qué sus diapositivas se vieron en blanco y negro . . .

En paralelo, y motivados por la repercusión del evento, lanzamos una app para seguir desde cualquier dispositivo el hashtag del evento #uxsp, y saber entre otras cosas quiénes han sido los más influyentes. Nuestro algoritmo Openinfluence ha dado más guerra de lo previsto desde el viernes, pero ahora sí podéis ver quien se lleva tan preciado reconocimiento.

Ya a modo de conclusión, un poco más emotiva, podríamos decir que arrancamos con la sensación de partir una fresca mañana de invierno para llegar en pleno verano. Hemos conocido a gente interesante, disfrutado de nuestras propias mesas redondas a la ida y a la vuelta con la buena compañia de @kremaster. La impresión final es que, sin lugar a dudas, habrá un UX Spain 2013 aún mejor.

Lista de crónicas en otros blogs:

 

Bases del premio del sketchbook en UXSpain 2012

publicado el Viernes, 11 de mayo de 2012 por:
Etiquetas: | No hay comentarios »

Desde @paradigmate queremos reconocer el impulso que la comunidad de UX está dando a muchas áreas de movilidad e innovación digital en España. Para ello proponemos un concurso después del “Encuentro de profesionales de la Experiencia de Usuario en España” que se celebra el 11 y 12 de mayo 2012 en Salamanca.

concurso sketchbook uxspain paradigmate

Queremos disfrutar con los trabajos originales que a los asistentes a #uxsp se les ocurra en el ambiente relajado y estimulante de UXSpain o en las semanas inmediatamente después.

Premiaremos el mejor material gráfico o audiovisual que use cuadernos de notas que Paradigma regala a los asistentes al evento. Cuanto mejor te lo pases preparando tu material para concursar, mayores probabilidades tendrás de ganar. El premio consiste en 300€ y una entrevista este mismo blog.

Plazo del concurso

Se abre el plazo el 11 de mayo y finaliza el 8 de junio de 2011.

Criterios de selección del ganador

Lo más importante es que lo pases bien con el sketchbook. Los trabajos presentados serán juzgados en base a uno o varios de los siguientes criterios:

  1. simplicidad
  2. creatividad
  3. complicidad con la comunidad de UX
  4. otros por determinar a juicio exclusivo y privado de Paradigma Tecnológico según la calidad de los trabajos sometidos al concurso

Bases del concurso

Como todo texto legal, las bases resultan tediosas y poco cívicas. Sin embargo, te recomendamos que te las leas porque hemos intentado reducirlas a lo mínimo para un concurso informal.

  • Sólo podemos considerar un trabajo por personas física inscrita en el UXSpain 2012
  • Asegúrate de que tu trabajo incluya como soporte físico el sketchbook que Paradigma regala en #UXSpain 2012. Por precisión, se puede enviar el material digital que quieras en cualquier formato de media compatible con software no propietario
  • Sólo se considerarán los trabajos publicados en twitter.com que incluyan ‘@paradigmate‘, ‘#uxsp’ y un enlace al material. Puedes alojar el material donde quieras siempre que sea de acceso libre y público, que sea descargable y de un tamaño máximo de 50 MB
  • La publicación de dicho tweet es la única manera de participar en este concurso y conlleva la aceptación de las presentes bases
  • La temática del trabajo es libre y la naturaleza y concepto del mismo también. Por precisión, el trabajo no tiene que consistir en un prototipado de UX.
  • Paradigma no se compromete a confirmar por correo la recepción de cada trabajo ni a responder preguntas o sugerencias.
  • La decisión de @paradigmate de otorgar el premio a un trabajo en concreto será inapelable. El premio puede ser declarado desierto dependiendo de la calidad de los trabajos recibidos.  Los participantes expresamente renuncian a recurrir a otras instancias en contra de la decisión del jurado y de los patrocinadores.
  • La dotación del premio será de 300€. Paradigma puede solicitar que el concursante pruebe su identidad como usuario de Twitter y su asistencia al UXSpain de una manera razonablemente documentada. Le pediremos que envíe sus datos a contacto [arroba] paradigmatecnologico [punto] com. Paradigma transferirá el premio a una cuenta bancaria española. El premio caduca en cualquier caso en diciembre 2012 si el premiado no se identifica ni reclama por email a contacto [arroba] paradigmatecnologico [punto] com antes de esa fecha.
  • La entrevista al premiado es opcional por su parte y Paradigma no se compromete a su publicación ni total ni parcialmente.
  • El premio será anunciado en la cuentas de @paradigmate en redes sociales en Internet y en el blog de Paradigma el miércoles 13 de junio.

Propiedad intelectual

El trabajo no puede haber sido registrado ni publicado previo a su envío a @paradigmate.

Quien participe en el concurso y observe todas sus bases conservará todos su derechos y propiedad de su trabajo y autoriza a su difusión pública durante y despúes de este concurso. El trabajo no debe contener propiedad intelectual, marcas, registros, patentes ni copyrights de terceros.

Difusión pública

Mediante la participación en este concurso, se autoriza a Paradigma Tecnológico S.L. a difundir y promocionar públicamente dicho trabajo y el nombre y apellidos de su autor sin recibir contra-prestación económica por dicha difusión y promoción.

Eso todo. Pásalo bien con el sketchbook y anímate a compartir lo que hagas con él con todos.

Web 4.0

publicado el Jueves, 27 de octubre de 2011 por: Paradigma
Etiquetas: - | 3 comentarios »

Es necesario un cambio de Paradigma, un nuevo modelo de Web.

La Web 4.0 propone un nuevo modelo de interacción con el usuario más completo y personalizado, no limitándose simplemente a mostrar información, sino comportandose como un espejo mágico que de soluciones concretas a las necesidades el usuario.

Web 4.0 es una capa de integración necesaria para la explotación de la Web semántica y sus enormes posibilidades.

La Web 4.0 es un nuevo modelo de Web que nace con el objetivo de resolver las limitaciones de la Web actual.

Actualmente las formas que tiene un usuario de interactuar con la Web son muy limitadas. Una parte fundamental de la Web tal como hoy la conocemos son los buscadores, con el tiempo hemos ido aprendiendo su funcionamiento y nos hemos adaptado a sus limitaciones. Su principal limitación es que no hablan el lenguaje del usuario, no son capaces de responder a preguntas del estilo ¿En qué año murió Kennedy? Y no las pueden responder por una sencilla razón, no son capaces de entenderla.

La Web semántica promete mejorar este problema aplicando técnicas de procesado del lenguaje natural, pero la solución que propone no es suficiente, la Web 3.0 será capaz de responder a la pregunta anterior, pero la novedad se limitará a obtener resultados de búsqueda más precisos. Nunca podrá responder consultas del tipo “Quiero que un taxi venga a buscarme”.

Web 4.0 es una capa de integración necesaria para la explotación de la Web semántica y sus enormes posibilidades.

Se fundamenta en 4 pilares fundamentales:

  • Comprensión del lenguaje natural (NLU) y técnicas de Speech-to-text
  • Nuevos modelos de comunicación máquina-máquina (M2M). La red estará formada por agentes inteligentes en la nube, que serán capaces de comunicarse entre si y delegar la respuesta al agente adecuado.
  • Uso de información de contexto del usuario. Sentiment análisis, geolocalización, sensores…
  • Nuevo modelo de interacción con el usuario. Para que la Web no se convierta en un mero almacén de información son necesarios nuevos modelos de interacción, o incluso ejecutar acciones concretas que den respuesta a las necesidades de los usuarios, haciendo hincapié en su uso sobre dispositivos móviles.

Con este nuevo modelo de Web podremos hacer consultas del tipo “Quiero que un taxi venga a buscarme” y que tu móvil se comunique automáticamente con la compañía de taxis más cercana, sin intervención directa del usuario.

Este proyecto ha sido cofinanciado por el Ministerio de Industria, Turismo y Comercio, dentro del Plan Nacional de Investigación Científica, Desarrollo e Innovación Tecnológica 2008-2011, siendo su número de referencia el TSI-020100-2010-792

Resultado del Reto Java

publicado el Martes, 23 de agosto de 2011 por: Paradigma
Etiquetas: - | No hay comentarios »

El 14 de Julio de 2011, en la charla organizada por Java Hispano y MadridJUG (“Java SE 7: The Java Platform Evolves”) el equipo de Paradigma Tecnologico propuso un Reto Java para motivar la gente a conocer las funcionalidades aportadas por la nueva versión de la plataforma, Java7.

El flamante ganador del Reto JavaLos participantes enviaron sus propuestas para resolver el reto planteado en nuestra web, que admitió soluciones hasta el 18 de Julio a las 8:00 am.

Se recibieron además varias soluciones al Reto Java fuera del plazo de presentación que no pudieron ser tenidas en cuenta para el concurso.

Desde Paradigma nos gustaria agradecer a todos los que participaron del reto enviando su solución, y en especial a felicitar a Daniel Carroza Santana, por ser uno de los finalistas y haber sido el agraciado por el sorteo del Samsung Galaxy S2.

 

Android vs iPhone (II): Tiendas de aplicaciones

publicado el Martes, 10 de mayo de 2011 por: José Ignacio Herranz
Etiquetas: - - - | 2 comentarios »

Siempre he pensado que lo realmente revolucionario que ha introducido Apple no es el iPhone, sino todo lo que ha ido construyendo a su alrededor. Con la App Store, Apple ha construido un importante ecosistema económico-tecnológico con una gran cantidad de desarrolladores y usuarios.

Apple no solo ha conseguido que su tienda aporte valor, tanto a usuarios como a desarrolladores, lo que tiene más merito es que lo ha conseguido bajo su control tecnológico y económico. Ninguna otra marca de hardware se había planteado antes llevarse un porcentaje de todas las ventas, creo que solo Apple podría concebir algo así.

Pero tanto control por parte de Apple tiene también su parte negativa, su proceso de aprobación de aplicaciones es lento, incómodo y en ocasiones arbitrario o atiende a los intereses de la propia Apple. Se deniega, por ejemplo, cualquier aplicación que sustituya una funcionalidad del teléfono y otras por razones bastante cuestionables, como paso en su día con Google Voice o con el VLC.

A partir del desarrollo y formidable éxito de Apple, el resto de plataformas se han afanado por construir tiendas similares lo más rápido posible, entendiendo que las aplicaciones tienen un valor fundamental a la hora de escoger una u otra plataforma. En este sentido el Android Market ha crecido bastante, con la ventaja de que la mayoría de sus aplicaciones son gratuitas, incluso aplicaciones que son de Pago en iPhone, como el WhatsApp o el Angry Birds, en Android son gratuitas.

El ser un sistema abierto y con una política de aprobación más ligera tiene también muchas otras ventajas, ha propiciado la aparición de miles de aplicaciones gratuitas para cualquier cosa que se te ocurra, de hecho, es muy destacable que aunque el número de aplicaciones sea mayor en el Apple Store, el número de aplicaciones gratuitas es mayor en el Android Market. Por todo esto, el Android Market es muy atractivo para los usuarios, pero no tanto para los desarrolladores, parece que el contenido de pago no funciona en Android. También hay que decir que este crecimiento un tanto descontrolado hace que sea un poco confuso navegar y encontrar aplicaciones.

En resumen, las aplicaciones son uno de los puntos más importantes a la hora de decantarse por una u otra plataforma. En este sentido Apple, a pesar de su excesivo control, parece disfrutar de un importante efecto pionero, que le lleva a ofrecer, más de 330.000. En segundo lugar, el Android Market, con un crecimiento importantísimo en número de usuarios y aplicaciones, tiene 206.000. En comparación, otras tiendas como la BlackBerry App World palidecen con alrededor de 26.000.

Globalizing Agile: la XP llega a Madrid este año

publicado el Miércoles, 6 de abril de 2011 por: Paradigma Tecnológico
Etiquetas: - - | 1 comentario »

Del 10 al 13 de Mayo de este año 2011 se celebra la decimosegunda edición de la XP, la conferencia internacional sobre metodologías ágiles más conocida e importante a nivel global.

Y tenemos la suerte de que este año se celebrará en España, en concreto en Madrid, en el Hotel NH Parque de las Avenidas. Serán cuatro días con seis tracks a la vez llenos de charlas, talleres, open spaces, ponencias y presentaciones sobre tecnología y metodologías ágiles, donde gente de todo el mundo comparte ideas, proyectos y, sobre todo, conocimiento. Es el foro ideal para aprender cómo hacer mejor nuestro trabajo y cómo crecer como personas, y por eso seguimos sus pasos muy de cerca.

En Paradigma Tecnológico hace ya tiempo que estamos convencidos de que las metodologías ágiles son el camino a seguir para el desarrollo de proyectos. Principalmente porque fomentan una comunicación abierta y una relación de confianza con nuestros clientes, lo que garantiza el flujo de información que tanto necesitamos para crear buenas soluciones. Y finalmente porque nuestros equipos trabajan más cómodos y tranquilos: las metas a corto plazo y las estimaciones compartidas hacen que se comentan menos errores. Por eso apostamos en su momento por las metodologías ágiles. Y no nos arrepentimos en absoluto, ya que hace tiempo que recogemos los frutos que en su día sembramos: mejores resultados, mejor clima en nuestros equipos y, sobre todo, una mayor satisfacción de nuestros clientes.

Así que hemos querido aprovechar que la XP celebra esta edición en España para participar como patrocinadores Oro y compartir nuestros conocimientos y experiencia con una charla de Óscar Méndez, nuestro CEO. Óscar es el máximo responsable de evangelizar metodologías ágiles entre nuestros clientes, desde hace ya varios años, y de impulsarlas a nivel de proyecto entre nuestros equipos de trabajo. Seguro que estará a la altura esperada, tanto del resto de charlas, como de la conferencia en general.

Estamos contando los días para ir y poder disfrutar aprendiendo con tanta gente que comparte la misma visión enriquecedora del trabajo. Esperamos veros a todos en la XP2011.

Una API de realidad aumentada para Android

publicado el Viernes, 11 de marzo de 2011 por: Oscar Ferrer
Etiquetas: - - - | 21 comentarios »

Cada día son más las aplicaciones que hacen uso de la nueva tecnología de realidad aumentada.

Esta tecnología, que consiste en combinar elementos virtuales sobre una visión real del entorno físico, parece que ha llegado para quedarse y probablemente, dentro un plazo corto de tiempo, será algo más que habitual verla integrada en multitud de aplicaciones.

Las compañías tecnológicas conocen bien sus posibilidades y ya podemos ver ejemplos como Google Googgles o Nokia Point & Find.

Su implantación en los dispositivos móviles se está viendo acelerada por la rápida evolución de estos ya que la presencia de una cámara, un GPS y una brújula en combinación con una conexión de datos permite crear aplicaciones bastantes completas.

Si nos queremos lanzar a crear nuestra propia aplicación de realidad aumentada en Android hemos de saber que no tenemos porque empezar desde cero. La empresa austriaca Mobilizy ha creado una API que, junto con su ya conocida aplicación Wikitude, nos permite desarrollar aplicaciones de realidad aumentada para nuestro terminal.

Vamos a ver cómo dar los primeros pasos para crear nuestra aplicación de realidad aumentada en Android. Para el ejemplo se utilizará el entorno de desarrollo Eclipse.

Descargar la aplicación Wikitude

Uno de los requisitos para poder usar la vista de cámara de realidad aumentada es tener instalada y arrancada la aplicación Wikitude dentro de nuestro dispositivo. Si vais a probar sobre un terminal podéis descargarla desde el Android Market. Si en cambio queréis hacer las pruebas desde el emulador tendréis que conseguir el APK de modo extraoficial e instalarlo. Para esto último y una vez tengáis el paquete desde la consola debéis teclear:

adb install com.wikitude.apk

Además el AVD sobre el que vayáis a probar deberá tener simulado una tarjeta SD.
Una vez instalada es importante que arranquemos la aplicación para que cuando empecemos a desarrollar nuestra aplicación pueda acceder a la vista de la cámara. Para iniciar la aplicación esta ha de detectar una ubicación por lo que si vamos a probar desde el emulador tendremos que utilizar la simulación de GPS. Para ello mientras la aplicación se encuentra en la pantalla de “Loading” debéis lanzar coordenadas al emulador. Esto se puede hacer de dos formas:

  • A través del Eclipse: En la perspectiva DDMS de Eclipse, en la pestaña Emulator Control, encontraremos una sección llamada “Location Controls” donde podemos lanzar las coordenadas que deseemos.
  • A través de la consola: conéctate al emulador y lanza el comando geo fix. Por ejmplo:
    telnet localhost 5554
    geo fix -82.411629 28.054553
    

Es conveniente que lances repetidas veces las coordenadas hasta que la aplicación recoja alguna y arranque con ese posicionamiento.
Una vez hecho esto ya podremos probar nuestros desarrollos con la API de Wikitude. Vamos a ver ahora como hacer un ejemplo sencillo.

Descargar la API

Podemos descargarnos un Zip con los archivos necesarios aquí http://www.wikitude.org/en/developers Dentro de este ZIP vamos a encontrar:

  • wikitudearintent.jar (jar que contiene el API que vamos a utilizar)
  • documentación
  • ejemplos

Lo que vamos a necesitar para utilizar el API será el jar que habrá que incluir en el build path de nuestro proyecto.

Mi primera aplicación de AR

Para empezar creamos un nuevo proyecto Android.

Añadimos el jar con el API de Wikitude, wikitudearintent.jar. Para ello

Project-> Properties->Java Build Path -> Libraries -> Add external Jars.

Una vez hecho esto podemos empezar a escribir las primeras líneas. Para el ejemplo hemos creado una actividad (MiRealidadAumentada).

Los dos primeros objetos que vamos a utilizar y que nos proporciona la API son:

  • WikitudeARIntent: nos permitirá lanzar la vista de la cámara de realidad aumentada. En este objeto podemos almacenar todos los puntos de interés (POIs) que deseemos mostrar.
  • WikitudePOI: este objeto describe un POI que queramos mostrar.

Para comenzar crearemos un WikitudeARIntent que se lanzará al pulsar sobre el botón.

public class MiRealidadAumentada extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Button b = (Button) findViewById(R.id.button1);

b.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

launchARView();

}

});

public void launchARView() {

WikitudeARIntent intent = new WikitudeARIntent(this.getApplication(), null, null, true);

addPois(intent);

try {

intent.startIntent(this);

} catch (ActivityNotFoundException e) {

AbstractWikitudeARIntent.handleWikitudeNotFound(this);

}

}

private void addPois(WikitudeARIntent intent) {

// Añadir puntos de interés

}

}

Los parámetros necesarios para el constructor serían:

WikitudeARIntent (Application application, String applicationKey, String developerName, boolean debugMode)

Los argumentos applicationKey y developerName se utilizan cuando has registrado vuestra aplicación a través de la página Mobilizy. Si rellenáis el formulario de registro te enviarán por correo una API Key que podréis usar en vuestra aplicación y que os permitirá eliminar la marca de agua de la vista de cámara.

Para obtener esta API key lo podéis hacer a través de la siguiente página http://w4client.mobilizy.mobi/w4/jsp/keyGenerator.jsp

Como véis al objeto WikitudeARIntent se le han de añadir los Puntos de Interés que se van a querer mostrar. Para ello vamos a hacer uso del objeto WikitudePOI del que antes hablámos:

private void addPois(WikitudeARIntent intent) {

Resources res = getResources();

WikitudePOI poi = new WikitudePOI(40.441346, -3.785702,636, "Paradigma Tecnológico", "La empresa ágil");

poi1.setLink("http://www.paradigmatecnologicom.com/");

poi1.setIconresource(getResources.getResourceName(R.drawable.icon));

intent.addPOI(poi);

}

Con esto ya podremos probar nuestra primera aplicación en un dispositivo real o en el emulador. Si vais a probar sobre este último podéis simular el movimiento del dispositivo con las teclas 1-6 del teclado numérico y para poner la vista horizantal recordad que podéis hacerlo con Ctrl+F11. De todas maneras os adelanto que depurar con el emulador es bastante incómodo ya que la simulación no funciona todo lo fluido que nos gustaría.

Cuando arranquemos la aplicación se mostrará nuestra primera pantalla con el botón que arrancará la vista de AR.

Vista de inicio de nuestra aplicación de realidad aumentada

Al pulsar sobre el icono del POI que hemos agregado se desplegará debajo una ventana con la información que hemos incorpora objeto.

Realidad aumentada en un POI concreto

Además de esta información podemos añadir un botón de detalles y personalizar la acción que queremos que haga al pulsar sobre él. Para ello debemos escribir

poi1.setDetailAction("wikitudeapi.mycallbackactivity");

y configurar en el Manifest la actividad que se lanzará

<activity android:name=".MiCallbackActivity"

android:theme="@*android:style/Theme.Translucent.NoTitleBar" >

<intent-filter>

<action android:name="wikitudeapi.mycallbackactivity" />

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

</activity>

Un ejemplo de implementación de una actividad puede ser un diálogo que muestre información extra asociada al POI.

En ella recuperamos el ID del POI seleccionado gracias al Extra que te proporciona el API de wikitude

this.getIntent().getIntExtra(WikitudeARIntentHelper.EXTRA_INDEX_SELECTED_POI, -1);

En el ejemplo hemos hecho la lista con los POI accesible desde cualquier punto de la aplicación incluyéndolo en una clase que herede de Application pero siempre se pueden utilizar otros métodos para recuperarlos.

Os dejo abajo el código de ejemplo para la actividad que muestra el siguiente diálogo cuando pulsemos sobre el botón “Details”.

public class MiCallbackActivity extends Activity {

private static final int POI_CLICKED = 1;

private static final int NO_POI = 2;

private int poiId;

private List<WikitudePOI> pois;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

pois = ((MiAplicacion) this.getApplication()).getPois();

poiId = this.getIntent().getIntExtra(WikitudeARIntentHelper.EXTRA_INDEX_SELECTED_POI, -1);

if (pois != null && poiId != -1) {

this.showDialog(POI_CLICKED);

} else {

this.showDialog(NO_POI);

}

}

@Override

protected Dialog onCreateDialog(int id) {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

switch (id) {

case POI_CLICKED:

String title = pois.get(poiId).getName();

builder.setTitle("Información sobre: " + title);

builder.setMessage(pois.get(poiId).getIconuri());

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

}

});

break;

case NO_POI:

builder.setTitle("No existe POI asociado");

builder.setMessage("Pulse sobre un icono en la vista de cámara para obtener más información");

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

}

});

break;

}

return builder.create();

}

Espero este API sirva de revulsivo para aquellas personas que quieran profundizar un poco más en la programación en Android y la Realidad Aumentada. Si alguno lo había pensado alguna vez pero veía complicado empezar con la vista de cámara y la implementación de las capas este API salvará ese primer escalón.

Android vs iPhone (I): Historia y Estrategia

publicado el Martes, 1 de marzo de 2011 por: José Ignacio Herranz
Etiquetas: - - - - | 7 comentarios »

Hemos llegado a un punto en cual el sistema operativo es más importante que el propio dispositivo, la pregunta hace unos años hubiera sido quién es el mejor fabricante de teléfonos, pero hoy el debate es iPhone vs Android, aunque sería más correcto decir iOS vs Android.

Inicio aquí una serie de post en la que trataré de comparar ambas plataformas a todos los niveles: estrategia, stores, terminales, aplicaciones, usabilidad…

Vamos primero con la historia y la estrategia de ambos sistemas:

En 2007 Apple lanzó su primer iPhone, con iOs e iPhone Apple creó un tándem ganador, vendiendo en el mismo paquete Software más Hardware, una formula que siempre le ha funcionado. Este lanzamiento supuso un antes y un después en el mundo de la movilidad a todos los niveles, fue un salto tan grande que hasta finales de 2009 no comenzaron a salir teléfonos Android que le hicieran sombra.

Viéndolo con perspectiva las caracteristicas del primer iPhone se han establecido como un estándar dentro de la comunidad de móviles. Una pantalla táctil enorme, pocos botones, diseño y funcionalidad por encima de todo. Hasta hace unos años no estaba muy claro cuál era el futuro en los terminales móviles, pero fue llegar Apple y marcar un poco el camino lógico que aún nadie había marcado.

En 2010 salió una nueva versión del iPhone siguiendo con su estrategia de vender hardware y software juntos e intentando diferenciarse por el diseño y la usabilidad. Este terminal no ha supuesto una revolución como su predecesor pero incluyó una serie de mejoras necesarias, ya que la competencia comenzaba a superar en funcionalidades a su primera versión.

Google por su parte, que inicialmente parecía que iba a seguir la misma estrategia de Software+Hardware (todos recordamos la especulación que hubo respecto al supuesto gPhone), se centró finalmente en el software y lanzó también en 2007 Android, un sistema operativo especifico para móviles. Con esta estrategia podría entrar al mercado con cualquier fabricante, pero a la vez afrontaba un gran reto: crear desde cero un sistema operativo atractivo y competitivo para no morir aplastado por las compañías que tenían cuota, prestigio y fuerza. Google apostó fuerte creando una plataforma abierta en la que volcó toda su experiencia y dio plena libertad a las compañías para tomar lo que quisieran, siempre que respetasen el núcleo del trabajo de Google.

No quería un gPhone, quería miles de ellos y lo ha conseguido. Muchos fabricantes de terminales están adoptando Android porque han visto la oportunidad de reducir costes adoptando un producto de calidad. Android da valor a sus teléfonos y mejora la competitividad de sus empresas y productos. La gente ya no se compra un Motorola o un HTC, se compran un teléfono con Android.

De esta forma Android ha crecido muy rápidamente, hasta convertirse en una solida alternativa al iPhone.

Veamos ahora los modelos de negocio:

El modelo de negocio de Apple no se basa únicamente en la venta de terminales sino que también se llevan un porcentaje de todo lo que le rodea: aplicaciones, música, accesorios,… Sin duda una de las mejores cosas que tiene el iPhone es todo lo que ha construido a su alrededor. Comprar un iPhone no es solo comprar un teléfono, es prácticamente una relación contractual con el mundo Mac, para muchos esto es una ventaja pero otros solo buscan un teléfono.

Por su parte la estrategia de Google con Android es la publicidad, de hecho la gente que piensa que Google es un buscador se equivocan, Google es una empresa de publicidad. Están convencidos de que el móvil tiene muchísima importancia ahora mismo y tendrá más aún en los próximo años. El millonario negocio de la publicidad móvil solo esta empezando y Android no es más que una forma de posicionar los servicios publicitarios de Google de forma prioritaria, su buscador, sus mapas con anunciantes geolocalizados etc.

Parece que la cosa se pone interesante para 2011 con una nueva versión del iPhone y un montón de nuevos terminales con Android anunciados ¿Como veis el futuro? ¿Que sistema os gusta más?

Spring social

publicado el Lunes, 21 de febrero de 2011 por: Federico Caro
Etiquetas: - - - - | 4 comentarios »

Estas últimas semanas he estado preparando la charla en Spring IO del 2011. Llevo siguiendo la pista a proyectos tan interesantes como Spring Data, Spring Mobile, Spring Roo, Spring integration, etc.

Pero, finalmente todas estas temáticas estaban planificadas por algún otro ponente, con lo que revisé los proyectos más novedosos de Spring, encontrándome con Spring Social.

Aunque el proyecto está en un estado muy embrionario y no existe mucha documentación al respecto, lo cierto es que ofrece una funcionalidad básica, pero que a la vez abre el abánico de numerosas posibilidades para poder integrarnos con las principales redes sociales: Twitter, LinkedIn, Facebook, Tripit…

Quizás la mayor carencia que sufra estas primeras versiones de Spring Social es que no han incoporado la integración con OAuth y se debe hacer con una librería externa (la más recomendable Scribe). Pero claro, para los iniciados, debería empezar por definir qué es esto de OAuth.

OAuth es un estándar que permite un sistema de autenticación delegada. El protocolo presenta los siguientes conceptos básicos:

  • Service Provider: Es el site, web-service o servicio en general donde se localizan los recursos restringidos (y que por tanto hay que proteger mediante un sistema de autenticación/autorización). El protocolo no obliga a que el Service Provider sea adicionalmente el servicio de identidad, con lo que puede usar su propio mecanismo para realizar la autenticación de los usuarios.
  • Usuario. El usuario es el actor principal dentro de OAUTH y es la persona que dispone de recursos privados que no quiere hacer público en el Service Provider, pero que quiere compartir con otro site/sistema.
  • Consumer: Se trata de la aplicación que está accediendo al recurso privado del usuario. Es por tanto, dicha aplicación la que mediante los permisos otorgados por el usuario el que accederá finalmente al recurso.
  • Recursos protegidos: Aquellos recursos que son privados, y para los que se le otorgan permisos al Consumer explícitamente para que proceda a procesarlos adecuadamente: fotos, documentos, contactos, …
  • Tokens: Dentro del protocolo se usan tokens como sustituto a las credenciales del usuario. Se usan técnicas de Firma Digital (par de claves pública-privada, algoritmos de hashing, etc..) para cifrar la información asociada al token y para garantizar la identidad de la persona/sistema que realiza la petición (Usuario/Consumer). Dentro del protocolo hay dos tipos de tokens: Request y Access. Uno asociado con el Consumer y otro asociado con el Usuario. A continuación entramos en detalle.

Para aclarar los conceptos pongamos un ejemplo. Supongamos que estamos desarrollando un servicio de impresión de fotos y queremos que el usuario pueda imprimir las fotos alojadas en un sistema como Flickr.

Con este escenario, el ServiceProvider sería Flickr, puesto que es el sistema donde están los recursos protegidos (en nuestro caso, fotos). El rol de Consumer sería la aplicación de impresión de fotos, el usuario sería la persona que quiere imprimir unas fotos de su cuenta de Flickr, pero no quiere que la aplicación de impresión conozca sus credenciales, incluso no quiere tener unas credenciales específicas en este site. Los recursos protegidos serían las fotos alojadas dentro de Flickr.

Veamos el detalle del flujo del protocolo.

OAUTH: Flujo de autenticación

Normalmente hay un paso previo, que no aparece en el diagrama y que consiste en la necesidad de registrar la aplicación (Consumer) en el Service Provider, proceso que te devuelve un par de valores ConsumerKey y Consumer Secret. Básicamente estos dos datos se comportan como una clave pública y una clave privada en un proceso de firma digital. De hecho como se puede ver en el detalle de parámetros de las distintas peticiones, en algunas de ellas se pasa la clave pública (Consumer Key). Puesto que la clave privada es compartida entre el Consumer y el Service Provider, éste forma parte de la signature incluida en el Token de Petición. Como en cualquier proceso de firma electrónica, esta clave privada será usada en el destino para comprobar la veracidad/integridad de la petición.

A continuación, comentamos los datos más importantes del flujo expuesto:

En la primera petición (A), como se puede ver el Consumer al custodiar las claves Consumer Key y Consumer Secret, usa estas llaves para enviar una petición al Service Provider para que éste identifique el sistema que quiere realizar la petición. Destacar que en el protocolo Auth, es un proceso de autorización en el que interviene básicamente Service Provider, Consumer y Usuario, produciéndose la autenticación en dos pasos básicos: uno en el que se autentica el Consumer (aplicación que quiere obtener recursos protegidos, pero que delega la autenticación en el service Provider). Posteriormente hay una segunda etapa de autenticación donde el usuario debe autenticarse en el sistema para poder ser identificado correctamente. A partir de esta segunda fase y mediante el mecanismo de tokens que estamos definiendo, es posible que el Consumer pueda acceder al recurso protegido (puesto que el usuario le ha dado los permisos oportunos).

Centrándonos ahora en la petición (A), se ve que dentro de la petición se incluye la clave pública del consumer (identifica al consumer), además se genera un campo signature que básicamente consiste en construir una cadena de caracteres base (normalización de la petición http incluyendo el método http, parámetros, URL callback, adicionalmente se usa la clave privada para generar finalmente la signature), la cual va incluida dentro de la petición. Como hemos comentado adicionalmente dentro de la petición se indica la URL de callback, es decir la URL del Consumer a donde se debe redirigir el flujo una vez el usuario se ha autenticado en el Service Provider.

Una vez construida la petición con sus parámetros, el Service Provider realiza el correspondiente proceso de autenticación (procesamiento del parámetro signature) con la clave privada compartida, y garantizando por tanto, que la petición no ha sido alterada y comprobando mediante este algoritmo matemático que el peticionario de la petición es quien dice ser. Tras comprobar la integridad/veracidad de la petición, el Service Provider contesta al Consumer con la clave pública y privada que el usuario deberá usar en el proceso de autenticación de la segunda etapa del protocolo).

Una vez realizado este proceso, el Consumer redirige al Service Provider para que tenga lugar el proceso de autenticación del usuario. Es en este paso, donde el usuario se autentica usando las credenciales del Service Provider. Si para autenticación se produce de un modo correcto, el Service Provider manda el token y un verificador que el Consumer usa para construir el segundo de los tokens (AccessToken). Este token será el que lleva incorporado la autorización implícita del usuario y por tanto, el que concederá al Service Provider la posibilidad de acceder a los recursos privados del Service Provider. Normalmente en el proceso de autenticación del usuario, se pueden otorgar diferentes permisos (acceso a datos personales del usuario, acceso a las fotos, posibilidad de enviar correo electrónicos al usuario, etc..). Es en el token donde reside el proceso de autenticación delegada, donde el usuario delega al Consumer la posibilidad de poder acceder a sus recursos. El protocolo permite que este token sea invalidado en cualquier momento, disponga de un tiempo de vigencia, etc.

Una vez el Consumer dispone del token de acceso, se produce un intercambio similar al realizado para el Request Token, finalizando con el acceso por parte del Consumer a los recursos privados del usuario.

Como he comentado al inicio del post, Spring Social no incluye una integración completa con el protocolo OAuth, quizás su mayor defecto en estas primeras versiones, con lo que es necesario utilizar una librería como Scribe para poder completar la integración con las principales redes sociales.

Spring Social básicamente incluye una serie de Templates (LinkedInTemplate, FacebookTemplate, TwitterTemplate, …) que nos ofrecen acceso a datos de las respectivas redes sociales. Además incluye clases para firmar las distintas peticiones siguiendo la especificación definida por el protocolo OAuth. Finalmente, tiene una librería de tags para realizar la integración con Facebook y una integración con Spring MVC (ArgumentResolver) que permite realizar el binding entre parámetros de la petición HTTP y argumentos de un controlador de SpringMVC, para aislar al programador de las particularidades de la integración con Facebook (obtención del Token de Acceso y el identificador de usuario de Facebook).

Conclusiones

Aunque, inicialmente el proyecto es muy pequeño (unas decenas de clases), y en un primer análisis puede parecer poca la funcionalidad que ofrece, sinceramente se nos abren amplias posibilidades funcionales que permiten enriquecer nuestras aplicaciones obteniendo información de las principales redes sociales. De hecho, esta última semana he conocido http://lanyrd.com/ y al principio, aparte de que me encantó la idea y la tienen implementada con muchísima calidad, no dejaba de ser una aplicación donde se ofrecía información de los principales eventos del mundo organizado por año, por topic, etc. Pero curiosamente descubrí la integración que tenía con Twitter (siguiendo el protocolo OAUth anteriormente mencionado) y cuando finalizo el proceso de autenticación, me apareció el evento en el que participaba, los eventos que mis seguidores estaban interesados, … En definitiva, se personalizó el site en base a la información que proporciona Twitter. Es un ejemplo de que, a veces, las cosas sencillas permiten un abanico funcional muy interesante, y más si tenemos en cuenta la orientación social del actual panorama web. Y finalmente, si Spring me ofrece una API que permite integrarme de una manera homogénea a las principales redes sociales, mejor que mejor.

Razones por las que ir (y no ir) al taller de DSLs en Groovy

publicado el Viernes, 11 de febrero de 2011 por: Alberto Vilches
Etiquetas: - - | 4 comentarios »

Este viernes en el Spring IO, a las 15:00, daré un taller de creación de DSLs en Groovy.

Será parecido al seminario que dí el año pasado sobre DSLs, solo que está vez será, principalmente, práctico en vez de teórico. La idea es que todos empecemos a programar siguiendo unos pasos definidos para que sea más interesante y los conocimientos se aprendan. Sin embargo, el Spring IO de este año está divido en tres tracks, de manera que tenemos que elegir a qué charlas vamos a ir porque siempre nos vamos a perder algo. A continuación unas razones porqué deberías ir (o no) a mi taller:

Por qué ir:

  1. Porque vamos a dar una charla rápida y explicar qué es un DSL.
  2. Porque vamos a meternos en las tripas de Groovy ver qué nos ofrece para crear DSL.
  3. Porque vamos a jugar con IntelliJ IDEA 10 Community.
  4. Porque vamos a hacer un DSL para crear PDFs, y hasta la fecha no hay ninguno: puedes acabar el DSL en tu casa y después publicarlo y ser famoso.
  5. Porque según lo vayamos creando, saldrán algunos problemas típicos y tendremos que refactorizar.
  6. Porque el taller está dividido en pasos claramente separados donde se ve la evolución del DSL que vamos a crear (y está la solución en el paso siguiente, por si alguien se atasca).
  7. Porque veremos algunos trucos de Groovy interesantes que tengo preparados.
  8. Porque podremos (¡debemos!) preguntar y hablar y opinar y dar ideas sobre el DSL y podremos probarlo sobre la marcha.
  9. Porque vamos a programar.

Y por qué no ir:

  1. Porque a la misma hora hay cuatro charlas interesantes, de las que destaco especialmente la de “Tunning your Grails applications” de Peter Ledbrook.
  2. Porque las otras tienen bastante buena pinta también: será interesante ver la experiencia de Juan Manuel y Michel Jensen enseñando Grails en la Universidad de Cadiz ¡qué suerte tienen sus alumnos!
  3. Porque no conoces (¡como yo!) ni Spring Hadoop ni Summer (la librería de HTML5 para Java y Scala) y te apetece saber qué son y como funcionan.
  4. Porque vienes a Spring IO por Spring y Java, y no te interesa Groovy o los DSLs.
  5. Porque a las 15:00 no perdonas nunca la siesta. ;)
  6. Y porque vivo en Madrid, y sabes que si hay suficiente gente interesada podremos repetir el taller cuando quieras: seminarios.

¡Nos vemos en el Spring IO!


Nuestro Blog

Autor: Equipo de Experiencia de Usuario - Jueves, 17 de mayo de 2012

Mucho se ha contado ya (basta con revisar la lista abajo) acerca del primer UX Spain (Encuentro de profesionales de la Experiencia de Usuario en España) al que tuvimos ocasión de acudir el pasado 11 y 12 de mayo una representación de ocho Seres Paradigmáticos. A saber; @cvidal, @nacho_herranz, @vissit, @luiscalvodiaz, @jaucan, Óscar, Miguel y @davidmontalvo.

Ver más
Autor: Paradigma - Jueves, 27 de octubre de 2011