Sobre componentes, ecosistemas y plataformas en Big Data

Ando liado estos días reflexionado y discutiendo sobre Big Data con amigos y conocidos además de estar preparando unos materiales y haciendo investigación académica, así que recuperamos el tema aquí también. Sabemos que (big data) es un tema complicado, no lo digo yo solo, sino también Gartner, que además lo cuantifica: “dos tercios de los proyectos fracasarán” (!!). Esto va a ser un dolor de cabeza para muchos.

Científicos e Ingenieros de Datos

Científicos e Ingenieros de Datos

Aunque no debería sorprender a nadie. De hecho, va en línea de lo conocido para la inteligencia de negocio y que llevamos tiempo escuchando. Es necesario reconocer que este tipo de estrategias son complicadas de diseñar, implementar y hacer evolucionar. Dependen de tecnología, procesos y personas, y de esto último hemos hablando ya bastantes veces aquí y aquí.

Hay múltiples motivos para fracasar. Desde las barreras internas hasta la falta de apoyo de la dirección pasando por la falta de talento. Pero, entre tanto negocio y negocio, no hay que olvidar que Big Data es y seguirá siendo durante mucho tiempo un tema tecnológico.

Big Data trata de dominar el dato para generar valor. Y en ese control es necesario tener ingenieros del dato (además de los científicos del dato y de los trabajadores analíticos, claro). Un perfil que debe conocer qué componentes existen y para qué sirven, dentro de qué ecosistema se encuentran – sí, hablamos de Hadoop, de Spark y de los que vienen de camino –, y cómo los fabricantes lo combinan en plataformas. Al final quizá no para contar con una única plataforma, pero el ingeniero del dato debe ser capaz de decidir qué tecnologías de Big Data son las más adecuadas para un determinado caso de uso.

Las empresas deben reconocer que, a diferencia de otras tecnologías, Big Data no se encuentra en la fase de comprar, conectar, automatizar y ya estamos a punto (y probablemente pasemos muchos años antes de ver eso). Se trata de dominar flujos de datos, es decir, de capturar, procesar, almacenar, analizar y visualizar. Y ya no es posible usar una única plataforma en algunos escenarios (que nunca lo fue): lo que abre la puerta a plataformas ad-hoc y a los DevOps.

Eso sí, siempre nos quedará la gobernanza del dato que sí debe jugar el papel de anillo único (para dominarlos a todos, claro).

Josep Curto es colaborador docente del Máster en Inteligencia de Negocio y Big Data (MiB) de la UOC. Es además Director de Delfos Research, empresa especializada en investigación de los mercados de Business Intelligence, Business Analytics y Big Data.

Campeonatos interuniversitarios de eSports

Cada año se celebran los Campeonatos Universitarios de Catalunya (CCU), donde todos los miembros de la comunidad universitaria (estudiantes, personal docente e investigador y personal de administración) se enfrentan en competiciones deportivas individuales o por equipos. Precisamente este curso académico 2015/2016 los Campeonatos están organizados por la UOC.

El objetivo de los Campeonatos es fomentar valores de esfuerzo, superación y espíritu deportivo, así como ofrecer un entorno lúdico y distendido donde relacionarse e implicarse en el mundo universitario. Cabe destacar que tienen una muy buena acogida: por ejemplo, este año la 2a edición de UNIRUN (una carrera universitaria de 6.779 metros) se celebró en Barcelona el 7 de marzo y contó con 3.200 participantes.

Además de los típicos deportes de competición como el futbol, atletismo, artes marciales o natación, los Campeonatos también habían incluido históricamente otras actividades como el ajedrez (no entremos a discutir si el ajedrez es un deporte). Como novedad de este año, se ha incluido otra categoría de competición: los e-Sports. Ya pocos se sorprenden de la atención que reciben las competiciones de videojuegos: las previsiones del negocio alrededor de los e-Sports para 2016 se estiman en 500 millones de dólares, y ya existen programas en canales de televisión generalista e incluso canales temáticos dedicados íntegramente a los eSports (sin contar con la retransmisión por Internet, claro).

El equipo UOC listo para jugar.

El equipo UOC listo para jugar.

Los videojuegos seleccionados en los Campeonatos han son sido dos de los más populares en la actualidad en la escena competitiva: Hearthstone y League of Legends.

  • Hearthstone es un juego de cartas coleccionables (al estilo de Magic: The Gathering) que enfrenta a dos personas. Cada una construye una baraja de 30 cartas que representan las criaturas, armas y conjuros que puede usar en el enfrentamiento. En el juego existe un cierto grado de aleatoriedad, ya que robar la carta adecuada en el momento justo puede dar la vuelta a la partida. Sin embargo, el resultado está muy condicionado por el diseño de la baraja (qué cartas eliges) y las decisiones tomadas durante la partida.
  • League of Legends es un MOBA (Multiplayer Online Battle Arena) que enfrenta a dos equipos de 5 jugadores. Cada jugador toma el papel de un héroe que va adquiriendo objetos y adquiriendo nuevas habilidades durante la partida. El objetivo de cada equipo es destruir una estructura llamada nexo en el centro de la base enemiga, y para ello se requiere habilidad, reflejos, comunicación y mucho trabajo en equipo.

Ambos juegos tienen un modelo de negocio interesante (ver análisis aquí y aquí), basado en F2P (free-to-play), donde se pueden desbloquear cartas o nuevos héroes jugando… o si no tiene mucho tiempo, pagando con dinero de verdad. Y ya explicamos en este blog el gran impacto que tienen sus competiciones a nivel internacional.

La competición contó con la colaboración de la LVP (Liga de Videojuegos Profesional), encargada del diseño de la competición, y Elite Gaming Center, una empresa especializada en centros de alto rendimiento dedicados al gaming, que aportó los equipos donde se jugaron las partidas.  La competición tenía dos fases, una primera online que contó con 400 participantes y una fase final presencial que se realizó el 15 y 16 de abril en la sede del Internet Interdisciplinary Institute de la UOC en Castelldefels. La fase final de Hearthstone se retransmitió por streaming, teniendo como casters a Krigam (jugador profesional de Hearthstone) y Nesaga, además de otros jugadores del evento.

Empieza el 5 contra 5.

League of Legends: empieza el 5 contra 5.

En League of Legends se impuso el equipo “UBoosteds” de la Universitat de Barcelona (clasificación). Cabe destacar que uno de los equipos de la fase de grupos, el que enfrentó a “FREESM” de la UPF y “Putin Ganks From River” de la UdG duró 1 hora y media, cuando la media de las partidas es de 30-40 minutos. Vaya, el equivalente a un partido de tenis de 2 horas y media. En Hearthstone, se impuso “kuroneko” de la UAB (clasificación). Podéis ver la retransmisión íntegra del Campeonato de Hearthstone en el canal Twitch de Krigam.

¿Y qué tal lo hizo la UOC? Yo diría que partía de una situación de cierta desventaja, dado que el equipo de LoL no se conocía y se formó 1 mes y medio antes de la competición. Además, el hecho de ser a distancia era una barrera importante, ya que había que asistir a la final presencial. Por eso quiero destacar el caso de un estudiante de la UOC, David Reyes, que se desplazó desde Málaga para poder participar en la competición tanto en Hearthstone como en LoL. A nivel de resultados, en Hearthstone la UOC fue eliminada en los cuartos de final mientras que en League of Legends cayó contra la UPC en la fase grupos. Por cierto, es la primera vez que la UOC participaba en un deporte de equipo en los Campeonatos Universitarios.

Lo mejor de todo: buena compañía y una competición sana y estimulante. Y empezar a ver que se rompe el tabú de ver videojuegos en competiciones deportivas, aunque sea a nivel universitario. Por algo se empieza.

Posicionamiento en interiores (indoor positioning)

Hace tan sólo 30 años, para viajar comprábamos un mapa en una librería o una gasolinera y era común comentar la calidad que había entre los mapas de los diversos proveedores. Los mapas eran auténticas proezas de compresión de información en papel que permitían calcular la distancia entre puntos, saber el tipo de carretera, etc. A finales de los 90 la situación cambió: los mismos fabricantes de mapas ofrecían páginas web que calculaban las rutas y ofrecían indicaciones más o menos precisas del recorrido (el famoso “se pasa cerca”, o tomar una rotonda que según el tramo tenía un nombre de carretera u otro), pero aún era aconsejable llevar el mapa en papel. Básicamente porque la gente no se llevaba los ordenadores personales a cuestas. Ambas situaciones generaban no pocas discusiones en el interior de los vehículos, pero la mayoría de las veces acabábamos en el destino esperado (aunque no siempre a la hora esperada).

A principios de los 2000 la situación cambió: se popularizaron los navegadores por satélite (conocidos como GNSS, de los que los más populares son el GPS estadounidense o el GLONASS ruso, aunque Europa ha empezado a desplegar Galileo). Estos navegadores nos guían, nos dicen cuando nos equivocamos, nos dan una estimación de la hora de llegada, y en muchos casos nos evitan discusiones. Y actualmente, estos navegadores han pasado a los dispositivos móviles y nos guían en coche, a pie e incluso en bici, y nos guían tanto por la ciudad como por la montaña.

Pero quedan unas zonas que se resisten: los espacios interiores, más conocidos en el mundo científico por entornos indoor. En estos espacios los navegadores fallan, y seguimos mirando el plano del Centro Comercial para encontrar la tienda o el restaurante que buscamos.

paranoia

Pero, ¿por qué fallan los navegadores? Por dos motivos principalmente:

  • La señal de los satélites no es capaz de llegar con la intensidad necesaria a los espacios interiores.
  • Si llegara, habría que tener los mapas de los edificios de forma pública y en un formato adecuado para que un dispositivo móvil fuera capaz de guiarnos por ellos.

Por tanto, para los entornos indoor hay que buscar nuevas soluciones. El problema se resuelve con un nivel de precisión aceptable mediante balizas bluetooth, de ultrasonidos, de ultra wide band (UWB), de infrarrojos y usando otros tipos de sensores dedicados. Estos sistemas funcionan muy bien (no hay más que ver un almacén automatizado para darse cuenta), pero obligarían a sensorizar todos y cada uno de los edificios en que queremos conseguir posicionarnos y navegar. Y aún así, como usuarios, necesitaríamos un dispositivo distinto para cada edificio. Por tanto, aunque hay soluciones  para el posicionamiento en interiores que funcionan muy bien, éstas no son escalables al gran público.

Ambos temas son actualmente objeto de investigación y compañías importantes como Google o Samsung, e instituciones como el MIT  (o la UOC, como se verá más adelante) están apostando fuerte por encontrar una tecnología que permita al usuario final navegar por dentro de los edificios de la misma forma en que lo hace en espacios exteriores.

Para lograrlo, se están probando actualmente un gran número de técnicas, algunas de las cuales necesitan instalar infraestructura dedicada. Otras técnicas, sin embargo, son capaces de posicionar al usuario usando la infraestructura que ya hay presente. Así, encontramos (la clasificación es libre y se aleja de la típica que se encuentra en la literatura):

  • WiFi fingerprinting: utiliza la señal WiFi que recibe el móvil para hacer un mapa que se utiliza como referencia. Este mapa se compone de un conjunto de puntos que, a cada posición, asocia la lista de WiFi’s captadas por el móvil, con la intensidad de cada una. Después para el posicionamiento, se compara el valor que mide el móvil a posicionar con el mapa de referencia.
  • Fingerprinting: una evolución de la técnica anterior sería el Fingerprinting, pero usando cualquier tipo de señal que pueda ser captado por el móvil: WiFi, campo magnético, GPS (en el interior de los edificios la intensidad no es suficiente para posicionar, pero se puede recibir alguna señal), etc.
  • Campo magnético: el campo magnético también se puede usar para hacer un tipo de fingerprinting, pero en este caso no es tanto de puntos, como de líneas. Sería por tanto una técnica más útil para la navegación.

Estas técnicas funcionan relativamente bien cuando se requiere poca precisión, pero aun así el espectro de problemas que tienen que superar es muy amplio: la señal recibida en el móvil depende del sensor de cada móvil; las personas absorbemos radiación, por lo que el número de personas presente en la sala afecta los datos; hacer un mapa de fingerprinting es muy costoso en tiempo, aunque para probar algoritmos hay bases de datos de prueba y mecanismos capaces de aumentar la nube de puntos WiFi, etc.

Y finalmente, otro problema es la creación del mapa de interiores, un mapa que nos permita navegar por él al estilo de los mapas del navegador que todos utilizamos. En este sentido hay iniciativas como indoorGML que están trabajando en un estándar para crear estos mapas.

Como habéis leído, hay muchos “etcétera” en esta entrada. Para hablar de ellos  se ha organizado un simposio en Barcelona el 3 de mayo: Challenges of Fingerprinting in Indoor Positioning and Navigation. A este simposio se han invitado como ponentes a científicos de primer nivel y está abierto al público. La asistencia es gratuita pero se necesita para controlar el aforo de la sala se requiere inscribirse previamente.

Y lo más importante: los asistentes podéis jugar un papel activo ya que, si tenéis algún problema de posicionamiento en interiores, os podéis inscribir en la sesión de mañana con la opción de explicar vuestro problema y después hablar de él con los científicos para ver qué soluciones pueden aportar.

En la sesión de tarde, podréis ver también en qué punto está la ciencia y tecnología del posicionamiento indoor.

El simposio está patrocinado  por Obra Social la Caixa y actúan de organizadores y asesores científicos profesores de la Universitat Oberta de Catalunya y de la Universitat Jaume I de Castellón, todos ellos parte de la Red de Excelencia del Mineco en Posicionamiento Indoor, REPNIN.

PARA ASISTIR AL EVENTO: Challenges of WiFi Fingerprinting In Indoor Positioning and Navigation

Registrarse en: http://symposium.uoc.edu/event_detail/4323/programme/challenges-of-fingerprinting-in-indoor-positioning-and-navigation.html

(Veréis  que si sóis de una empresa u organización os podéis registrar como tales y tendréis unos minutos para explicar vuestro problema).

NOTA: El idioma del simposio es inglés.

Antoni Pérez Navarro es profesor de los Estudios de Informática, Multimedia y Telecomunicación de la UOC, donde es experto en los ámbitos de Sistemas de Información Geográfica y de Física.

Jordi Conesa es profesor de los Estudios de Informática, Multimedia y Telecomunicaciones en la UOC. Su docencia se enfoca a las áreas de bases de datos y ingeniería del software.

¿Por qué es tan difícil conseguir software de calidad?

Es curiosa la doble reputación que tiene hoy en día la informática. Por un lado, ha permitido crear dispositivos “mágicos” de capacidad casi ilimitada, que pueden substituir (o superar) a los humanos y que hasta pueden dejarnos sin trabajo en el futuro. Pero, simultáneamente, se le acusa de construir dispositivos y programas difíciles de usar y que fallan muy a menudo. ¿Por qué hay tantas quejas sobre la calidad del software? ¿Acaso en 2016 aún no hemos aprendido a desarrollar software? ¿Es tan complejo el proceso de desarrollo?

En primer lugar, en relación a la calidad del software hay dos cuestiones complementarias que hay que resolver:

  • La primera cuestión es la verificación (“is the product right?“): que consiste en asegurar que el software está libre de errores. Esta comprobación puede realizarse mediante pruebas de diferentes clases (pruebas unitarias, pruebas de integración, …) o bien mediante herramientas automáticas que analizan el código para encontrar errores.
  • La segunda cuestión es la validación (“is it the right product?“): estudiar si el software satisface los requisitos y expectativas de todos los stakeholders. Los requisitos pueden ser de tipo funcional (“la aplicación debe hacer X”) o de tipo no funcional (“la aplicación debe funcionar aunque no  haya conexión a Internet”).

Es decir, no es suficiente comprobar que no hay bugs, también es importante hacer todo lo que se espera. Si la aplicación no hace lo que se quería, o va demasiado lento o no es lo suficientemente seguro tampoco me servirá. Y recoger los requisitos de una aplicación puede ser complejo: tal vez no seamos expertos en el dominio, puede que los usuarios no tengan requisitos bien definidos.

Todo un clásico de la relación consultor-cliente. Fuente: Sinergia Sin Control. Licencia: CC-BY-NC-SA 2.5

Todo un clásico de la relación consultor-cliente. Fuente: Sinergia Sin Control. Licencia: CC-BY-NC-SA 2.5

Por otro lado, existen múltiples factores que dificultan conseguir un nivel de calidad adecuado en un proceso de desarrollo de software:

  • El tamaño de las aplicaciones ha ido creciendo con el tiempo. Por ejemplo, consideremos el tamaño del kernel de Linux. La versión 1.0 de 1994 tenía 176 kLOC (miles de líneas de código) mientras que la versión 4.1 de 2015 tenía 110 veces más: 19.5MLOC.
  • Ahora diréis que cada vez hay más código de terceros disponible y que cada vez se reutiliza más y se desarrolla menos. Eso es cierto en parte, pero depender de un tercero no te exime de obligaciones respecto a la calidad de tu producto. Primero tienes que saber si ese código tiene errores. También tienes que entender cómo funciona para no generar errores por usarlo incorrectamente. Y por último, debes hacer frente a posibles cambios de versiones… o incluso a su desaparición.
  • Los equipos de trabajo crecen… y se dispersan por todo el mundo. Tienes mucha suerte si todo el equipo que trabaja en tu proyecto está en el mismo despacho. O edificio. O ciudad. O país. Puede ser que esté en otro continente, con otros horarios, otro idioma y una visión diferente del mundo. Por ejemplo, asegúrate que cuando hablas de distancias usáis las mismas unidades.
  • Aunque suena a tópico, “vivimos en un mundo globalizado” y la competencia en el mundo del software es feroz. Adelantarse a tus rivales puede ser clave y hay una gran presión por tener un producto bueno hoy mejor que uno perfecto mañana. De hecho, el lema “done is better than perfect” fue adoptado por Facebook como un mantra.
  • Siguiendo la misma línea, la calidad tiene un coste añadido en el proceso de desarrollo… que luego se recupera multiplicado por mil, pero esta inversión inicial es necesaria.  En la actualidad, muchos modelos de negocio se basan en ofrecer software gratuito y recibir ingresos mediante otros canales, como los anuncios, los servicios premium o las compras en las aplicaciones. El hecho que el usuario final asuma que el software “es gratis” puede que el control sobre los costes en el proceso de desarrollo sean más exigentes. Y la calidad suele ser una de las primeras víctimas.
  • En un mundo perfecto, los requisitos serían inmutables desde el inicio hasta el final del proyecto. Sin embargo, los proyectos cada vez tienen una vida útil más larga y resulta difícil predecir cómo va usarse una aplicación en el futuro. Cada modifiación en los requisitos implica cambios en el código que pueden introducir errores imprevistos. De vez en cuando hace falta parar las máquinas y hacer limpieza (refactoring) para evitar que el caos sea absoluto.
Cuelga esta pancarta en tu ordenador. Fuente: cea @ Flickr. Licencia: CC BY 2.0

Cuelga esta pancarta en tu ordenador hoy mismo. Fuente: cea @ Flickr. Licencia: CC BY 2.0

En resumen, el software tiene una complejidad creciente y mucha presión respecto al coste y los tiempos de entrega, factores que pueden complicar conseguir un nivel de calidad razonable. La ingeniería del software como disciplina introduce procesos, técnicas y herramientas que hacen más manejable los proyectos de desarrollo y mejoran la calidad del software final. Pero. como dice el chiste, “Dios y yo tenemos un acuerdo, él no hace software y yo no hago milagros“.

 

Clickers

Normalmente, entre las palabras clave para describir un videojuego se incluye su género, la palabra que mejor describe su categoría según su tipo de interacciones de juego. Entre los género “de toda la vida” encontramos los juegos arcade, de plataformas, de rol, puzzles, etc. En algunos casos, un juego mezcla diversos géneros o incluso puede ser algo bastante raro como para ser su propio género. Si bien hay juegos de géneros bien raros en el mundo (¿simulador de cabras?), uno que me llama bastante la atención es el de los videojuegos incrementales, familiarmente llamados “clickers”.

Su planteamiento es muy simple. El jugador se dedica a pulsar con el ratón en la zona de juego, cosa que sirve para acumular ciertos recursos (por ejemplo, monedas). A su vez, al cumplir cierta condición vinculada al número de pulsaciones, avanza de pantalla. Los recursos obtenidos se pueden invertir tanto en ser más eficiente en el proceso de obtención del propio recurso como en reducir el número de pulsaciones necesarias para pasar de pantalla. Sin embargo, cada nueva pantalla requiere más pulsaciones que la anterior. A partir de este planteamiento, a ver hasta dónde eres capaz de llegar a base de dedicarle tiempo pulsando el ratón.

No hace falta habilidad ni puntería, solo se ha de pulsar el ratón una vez tras otra y ya está…

Push the button

Ale, ¡a divertirse!

Por ejemplo, uno bastante popular llamado Clicker Heroes (¡que cada uno pulse el enlace bajo su propia responsabilidad!) se basa en derrotar enemigos. Cada vez que pulsas sobre un enemigo le causas daño, hasta que lo matas. Entonces, ganas monedas. Para pasar de pantalla hay que matar a diez enemigos. Sin embargo, a medida que se avanza de pantalla los enemigos tienen más puntos de vida, que a su vez requiere más pulsaciones para eliminarlos. Con la monedas puedes comprar diversas ventajas. Las más básicas son personajes que te permiten hacer más daño, obtener más monedas por pulsación, activar poderes especiales cada cierto tiempo o incluso hacer daño sin pulsar el ratón. Esta última opción ya es el colmo, pues permite usar una estrategia llamada de “juego pasivo”, en la que ya ni pulsas el ratón. Te quedas mirando la pantalla, o dejas el juego en background, y que vaya jugando solo… en plan Progress Quest. ¡E incluso sigue jugando y recopilando monedas una vez lo apagas! De todos modos, el sistema más eficiente para pasar de pantalla de manera rápida siempre suele ser mediante “juego activo”, pulsando el ratón continuamente.

¿Cual es el objetivo de estos juegos? Normalmente son juegos infinitos, en los que mientras tú vayas pulsando, vas avanzando. El propósito es llegar a la máxima pantalla que tu paciencia te permita y poder fardar ante otros jugadores de la comunidad (los “bragging rights“). En este caso, no hay estrictamente “jobification“, pues las tareas repetitivas no son una barrera artificial de acceso a la parte divertida. La tarea repetitiva es el juego en sí.

Sin embargo, a pesar de un planteamiento que puede dejar bastante perplejo a primera vista, a la que uno se sumerge en los detalles hay bastante más profundidad de la que aparenta. Para llegar a niveles bien altos se requiere estrategia, sólo a base de paciencia pulsando el ratón no se llega a ninguna parte, puesto que se ha de cuidar muy bien el uso de recursos para mantener a raya la curva de crecimiento en el número de pulsaciones para pasar de pantalla. Dado que dicho  crecimiento tiende a ser exponencial, si no se equilibra bien, tarde o temprano llegas a un nivel que, simplemente, nunca pasarás. Bueno, o quizá si te pasas un año seguido pulsando el ratón, que en realidad NO es el objetivo. Llegados a este atolladero, hay que volver a empezar e intentarlo de otro modo. Hay gente que se dedica a buscar las estrategias óptimas, dónde la eficiencia se mide en el tiempo necesario y necesidad de jugar activamente para llegar a cierto nivel. En ese sentido, este tipo de juegos en realidad se podrían considerar un subconjunto del género de los puzzles. Y para que las piezas encajen, el diseño del juego, con sus bases matemáticas, también ha de estar pero que muy bien cuidado.

Y la verdad es que no existen ni uno, ni dos, ni tres de juegos de este género. Hay unos cuantos. Por algún motivo, enganchan bastante si uno tienen un carácter un tanto compulsivo. Sólo hay que pulsar y pulsar… y ver como los numeritos van subiendo.

No juzguéis, si no queréis ser juzgados...

No juzguéis, si no queréis ser juzgados…

Joan Arnedo es profesor de los estudios de Informática, Multimedia y Telecomunicación en la UOC. Director académico del Postgrado de Diseño y Programación de Videojuegos e investigador en el campo de la ludificación y los juegos serios en el eLearn Center. Su experiencia se remonta a cuando los ordenadores MSX poblaban la Tierra…