viernes, 28 de septiembre de 2018

Fundamentos de Robotic Process Automation (RPA) con NICE

'Robotic Process Automation for dummies. NICE special edition' es un corto librito, 67 páginas, que aspira, simplemente, a contar de una forma clara y rápida las ideas más relevantes acerca de automatización robótica (RPA). Señalar además, que el equipo que lo escribe está compuesto por un equipo variado de personas de NICE, uno de los fabricantes más cualificados de soluciones RPA.

 El libro se compone de siete capítulos, a saber:

  • 'What is Robotic Process Automation': explica el concepto de Robotic Process Automation, identifica áreas adecuadas para este tipo de automatización y enumera una serie de beneficios de este tipo de soluciones.

  • 'Automating Processes On and Off the Desktop': Explica las diferencias entre los dos modelos fundamentales de uso de RPA, el modo atendido (normalmente en el desktop) y el desatendido (normalmente en servidor).

  • 'Getting Started With RPA': trata algunos temas previos o contextuales a la implantación propiamente dicha de una solución RPA, como la decisión de si subcontratar o hacerlo uno mismo, la conformación de un equipo RPA, la búsqueda de quick-wins o la gestión del cambio.

  • 'Building Best Practices Automation': Da algunas pinceladas de las mejores prácticas u opciones a la hora de automatizar como, por ejemplo, la decisión acerca de si grabar al usuario o diseñar la automatización, la gestión de los cambios, la lucha contra los imprevistos o la utilidad de incluir soluciones complementarias de carácter analítico.

  • 'Setting Up a Center Of Excellence': Explica en qué consiste el Centro de Excelencia RPA,  los roles fundamentales que lo integran y la forma de capacitar y certificar a sus integrantes.

  • 'Getting Smarter Through Cognitive Automation': Explica la visión más avanzada de RPA donde ésta se une a la inteligencia artificial, hablando de lo que aporta la tecnología cognitiva a la automatización robótica, la integración con chatbots o temas de aprendizaje.

  • 'Ten Realities to Consider about RPA': Finaliza con un decálogo de temas a recordar.

'Robotic Process Automation for dummies. NICE special edition' es una forma fácil, rápida y gratuita de acercarse al mundo de RPA (Robotic Process Automation). Evidentemente, no es una referencia ni profunda ni completa, por lo que sólo debe tomarse como un principio pero, eso sí, es clara y razonablemente amena.


Ficha técnica:

miércoles, 26 de septiembre de 2018

¿Las especificaciones bailan la RUMBA?


No, no exactamente. Las especificaciones no bailan la rumba, pero según Six Sigma, las especificaciones deben ser RUMBA.

¿Qué quiere decir ese galimatías?

Six Sigma es una disciplina que pone mucho énfasis en el rigor, en los números, en la medición y en la estadística. En ese sentido, y antes de decir si un proceso, o una característica de un proceso, es bueno o malo de forma cualitativa, define exactamente qué ese eso de ser bueno y malo, cuánto de bueno y cuánto de malo.

Para dejar claramente establecido qué rangos de valores son los esperados se establecen las denominadas especificaciones. Para encontrar una definición más rigurosa de lo que es una especificación acudimos al libro 'Six Sigma for dummies' de Craig Gygi y Bruce Wiliams. Allí nos dicen:

A specification is the value separating acceptable from unacceptable performance.

Hay varias formas de hacer especificaciones. Podemos poner un límite superior a los valores aceptables de una variable, o un límite inferior, o ambos, o poner un objetivo respecto al cual se admiten variaciones pequeñas. En cualquier caso, la especificación es clara, rigurosa y numérica.

¿Y qué más?

Pues ahí es donde entra la RUMBA. Y entra la RUMBA con mayúsculas porque estamos hablando de un acrónimo. Un acrónimo usado en el mundo Six Sigma para declarar qué cualidades debe tener una buena especificación. Son éstas:

  • (R)easonable: razonable, en el sentido de que represente unas necesidades reales de los clientes y que realmente esté relacionada con la característica o proceso que queremos controlar.

  • (U)nderstandable: entendible, que todo el mundo la comprenda y no de lugar a malentendidos o malas interpretaciones.

  • (M)easurable: medible, que se pueda conocer realmente su valor.

  • (B)elievable: creíble, que sea aceptada por los equipos

  • (A)ttainable: conseguible, que realmente se pueda alcanzar el cumplimiento de esa especificación

Visto así, la cosa resulta sencilla y, además, muy muy razonable. Casi podríamos decir que la aspiración a disponer de unas especificaciones RUMBA es, en sí mismo, un planteamiento RUMBA: razonable, entendible, creible y conseguible... quizá sólo le falta el ser medible.


lunes, 24 de septiembre de 2018

Algunas ideas fundamentales sobre Six Sigma


Me encuentro repasando las ideas fundamentales sobre Six Sigma y, para hacerlo más sencillo, he acudido al libro 'Six Sigma for dummies' de Craig Gygi y Bruce Williams.

De sus primeras páginas he entresacado algunas afirmaciones que me ha parecido interesante traer a colación aquí. 

Empiezo con una afirmación apasionada de los autores, que es la que abre el libro:

Six Sigma is the single most effective problem-solving methodology for improving business and organizational performance.

Pasión y un poco de marketing aparte, es curioso que en esta primera afirmación no mencionan ni la palabra proceso ni la palabra calidad, conceptos ambos muy importantes en Six Sigma. Pero unas líneas más abajo ya nos hacen intuir un poco más de qué estamos hablando: 

Six Sigma is about applying a structured,scientific method to improve any aspect of a business organization, process, or person.

Aquí sí que vemos ya aparecer el proceso aunque, cierto es, mezclado con organización y con personas. Este trío, procesos, organizaciones y personas va tan unido que puede resultar lógico el entrelazarlos en una descripción de Six Sigma y, en realidad, en cualquier método o práctica sobre procesos. Pero de la frase anterior, quizá es más importante destacar ese carácter estructurado y científico que caracteriza a Six Sigma y que, probablemente, sea uno de sus elementos mas diferenciales frente a otro tipo de prácticas relacionadas con procesos.  

En otro orden de cosas, y aunque Six Sigma surgió en el ámbito de la calidad pero los autores nos advierten:

Six Sigma was once a quality-improvement methodology, but now it's a general purpose approach to minimizing mistakes and maximazing value.

Es decir, que Six Sigma ha superado sus planteamientos iniciales circunscritos al ámbito de la calidad, para ir más allá. La verdad es que eliminar errores tiene todo que ver con la calidad pero es cierto que también afecta a otros aspectos del cuadrilátero del diablo como son el tiempo y el coste y, en ese sentido, va más allá de la mera calidad. Si a eso añadimos la maximización del valor, sí que estamos yendo más allá de la calidad y adentrándonos en una visión más orientada a cliente, lo cual confiere a Six Sigma un ámbito muy amplio y que encaja muy bien con la visión de procesos.

Otra afirmación que me parece vale la pena comentar es la siguiente:

Six Sigma helps organizations achieve breakthrough improvement, not incremental improvement.

Es decir, Six Sigma no se queda en pequeñas mejoras incrementales sino que aspira a mejoras radicales. Correcto, pero sin que eso suponga minimizar el impacto de Six Sigma, por limpieza conceptual conviene de todas formas poner esta afirmación en perspectiva. No vamos a negar, por supuesto, que Six Sigma pueda conseguir grandes mejores, mejoras radicales pero, cuando se compara con otros planteamientos, muy en concreto, con la reingeniería de procesos de Hammer y Champy, Six Sigma resulta algo más conservadora, o la reingeniería más audaz, si se prefiere. Al fin y al cabo, Six Sigma tiene mucho que ver con medición y para ello tienes que partir de unos procesos y unas operativas establecidas y trabajar sobre ellas, mientras que la reingeniería desafía todo lo existente apostando por la hoja en blanco.

Dos afirmaciones adicionales cierran este artículo y refuerzan esa filosofía de la medición y el control. Así, por ejemplo, nos dicen:

Managerially speaking, the goal of Six Sigma is to inject control, predictability, and consistency of results into the production of a successsful organization.

Esto es clave en el planteamiento de Six Sigma y, probablemente, uno de sus grandes valores. Esa consecución del control, consistencia y predecibilidad son claves desde luego para la calidad pero también apoyan el resto de objetivos de los procesos: eficiencia, agilidad, valor... 

Y, además de esa predecibilidad, Six Sigma apuesta decididamente por la medición, como muy bien se encargan de resaltar los autores:

Six Sigma is different from other performance improvement approaches in its focus on business financials and measurable operational improvements.

Al final, y resumiendo un poco lo comentado nos encontramos en Six Sigma con un método científico y estructurado que, basado en el control y la medición permite obtener consistencia, eliminar errores y, en general, conseguir mejoras no sólo de calidad sino también de incremento de valor.

No sé si alcanza la frase anterior la categoría de una definición pero sí, espero, que sea una descripción que recoja esas ideas fundamentales sobre Six Sigma.

viernes, 21 de septiembre de 2018

Aprendiendo realidad virtual con Tony Parisi

'Learning Virtual Reality', subtitulado 'Developing inmersive experiences and applications for desktop, web and mobile', es un libro de mediana, tirando a corta, extensión que explica la realidad virtual con una clara orientación hacia desarrolladores aunque se detiene, acertadamente, tanto a explicar algunos aspectos generales de la realidad virtual como a los aspectos hardware de la misma.

El libro, que presenta, evidentemente, el estado del arte del momento en que ha sido escrito (2015) intenta ser abarcador en el sentido de explicar cómo desarrollar para diferentes tipos de dispositivos, desde los HDM (Head Mounted Displays) de gama alta, como Oculus Rift, hasta los se apoyan en dispositivos móviles como Gear VR o Google Cardboard.

Aunque en la parte de desarrollo trata algo sobre los SDK nativos, favorece el explicar el desarrollo sobre Unity 3D, una plataforma que el autor conoce muy bien y que proporciona unos mayores niveles de productividad y transversalidad.

El libro se estructura en siete capítulos:

  • 'Chapter 1: Introduction': Comienza definiendo lo que es realidad virtual, proporcionando un rápido recorrido por los elementos hardware que utiliza y las plataformas software existentes para luego revisar algunas aplicaciones posibles de la realidad virtual.

  • 'Chapter 2: Virtual Reality Hardware': Se centra, como el nombre indica, en el hardware de la realidad virtual.En el apartado de HDM (Head Mounted Display) se centra fundamentalmente en Oculus Rift, Samsung Gear y Google Cardboard. Luego revisa, muy escuetamente, algunos dispositivos de entrada

  • 'Chapter 3: Going Native: Developing for Oculus Rift on the Desktop': Se centra ya en el desarrollo sobre diversas plataformas y, en concreto, nos habla del desarrollo para Oculus Rift para lo que emplea Unity 3D, explicando brevemente algunos aspectos de su uso y mostrando algunas secciones de código. Antes hace una revisión, en mi opinión brillante, de los principales conceptos en gráficos 3D: polígonos, vértices y mallas, materiales, texturas y luces, cámaras, perspectivas y proyecciones e introduce ligeramente el álgebra con que matemáticamente se gestiona el movimiento y la representación (renderizado).

  • 'Chapter 4: Going Mobile: Developing for Gear VR': Se centra ahora en el segundo de los dispositivos explicados en el capítulo 2: Gear VR con lo que pasamos a hablar de una realidad virtual que se apoya en smartphones. De nuevo, aparte del SDK propio, el desarrollo se muestra sobre la plataforma Unity 3D y se acompaña de algún ejemplo en código.

  • 'Chapter 5: WebVR: Browser Based Virtual Reality in HTML5': en ester tercer capítulo de los dedicados a desarrollo, el objetivo es hablar del desarrollo para navegadores mediante la aplicación de HTML5. Lo primero que hace es explicar el API WebVR, su historia y principales características y forma de uso para acabar desarrollando una pequeña aplicación ejemplo. Finaliza con un breve repaso de las herramientas para edición y desarrollo con WebVR.

  • 'Chapter 6: VR Everywhere: Goolge Cardboard for Low-Cost Mobile Virtual Reality': Lo primero que hace es explicar las características del visualizador Google Cardboard VR tanto a nivel hardware como software. Luego explica cómo desarrollar para Google Cardboard usando el SDK de Google para Android para, a continuación, hacer lo propio sobre la plataforma Unity 3D, Finaliza explicando el uso de HTML5.

  • 'Chapter 7: Your First VR Application': Como el título anticipa, simplemente explica extremo a extremo el desarrollo de una aplicación sencilla: un visualizador de fotos panorámicas para un dispositivo móvil. Y lo hace sobre la plataforma Unity 3D y para Google Cardboard.

'Learning Virtual Reality' creo que es un buen libro, claramente explicado e ilustrativo. Me ha gustado especialmente la breve sección dedicada a explicar los conceptos de gráficos 3D, muy importante para hacerse con el vocabulario y entender realmente lo que se hace luego mediante software.

Para una persona no interesada en el desarrollo, le proporciona una idea general razonable de lo que es la realidad virtual, su uso y cómo se crean experiencias y el nivel de profundidad técnica tampoco se hace insoportable. Si se mira con los ojos de un desarrollador, creo que sirve de introducción, para tener una visión panorámica y saber qué SDKs y herramientas están disponibles así como hacerse una primera idea de la forma de desarrollar. Pero creo que para convertirse en un auténtico desarrollador de realidad virtual hará falta algo más que este libro.

Entendido esto, creo que es una buena introducción para cualquiera de los dos perfiles de lector.


Tony Parisi

(Fuente: Traducción y ligera elaboración propia de la ficha de autor en O'Reilly)

Tony Parisi
Tony Parisi es un emprendedor y arquitecto software / CTO. Ha desarrollado estándares y protocolos internacionales, creado productos software muy notables y lanzado y vendido compañías de tecnología. La pasión de Tony por la innovación se ve superada únicamente por su deseo de construir grandes productos.

Tony es pionero en realidad virtual, co-creador de VRML y los estándares ISO X3D para gráficos tridimensionales en red, y continua innovando en tecnología 3D. Es co-oorganizador de la San Francisco WebGL Meetup, y de San Francisco WebVR Meetup, y miembro del grupo de trabajo Khronos COLLADA que crea glTF, el nuevo formato de fichero estándar para aplicaciones 3D web y móviles.

Tony es también autor de libros en O'Reilly Media como  'WebGL: WebGL Up and Running' (2012), y 'Programming 3D Applications in HTML5 and WebGL' (2014).

Tony es actualmente Vicepresidente de Productos de Plataforma en WEVR.

Puedes saber más del autor visitando su perfil en LinkedIn o siguiéndole en Twitter donde se identifica como @auradeluxe

Ficha técnica:

miércoles, 19 de septiembre de 2018

Robotic Process Automation y automatización cognitiva. Relación de RPA con la Inteligencia Artificial.


La emergente pero abundante literatura sobre Robotic Process Automation (RPA), está muchas veces más centrada en lo comercial que en lo técnico u operativo. Y tiende a contar RPA como una tecnología plagada de inteligencia artificial. Incluso recientemente he visto presentar a RPA como una forma de Inteligencia Artificial. Creo que eso es confundir las cosas. Así que en este artículo, de alguna forma continuación del que comentaba la definición de RPA, voy a hablar de lo que a veces se denomina automatización cognitiva y que, dicho de una forma simple, vendría a ser el uso de la inteligencia artificial en automatización de procesos de negocio.

En el libro 'Robotic Process Automation for dummies. NICE special edition', el equipo de NICE nos da una parecida cuasi-definición de automatización cognitiva:

This is a term for automation that leverages such technologies as optical character recognition, text analytics and machine learning.

Aunque la frase es sencilla y pretende casi más ilustrar que definir, el término 'leverage' ('apalancarse en', 'apoyarse en' o 'hacer uso de') es importante. Porque, en efecto, lo que hace RPA es apoyarse en técnicas de inteligencia artificial. No es inteligencia artificial sino que se apoya en inteligencia artificial. Y tampoco lo hace siempre. Es más, diría que hoy en día el empleo de inteligencia artificial en las implementaciones prácticas de RPA es limitado. La mayor parte de las aplicaciones reales de RPA actuales automatizan tareas sencillas pero repetitivas y basadas en reglas. Hablaríamos de procesar facturas, cumplimentar formularios o traspasar datos de un sistema a otro, por ejemplo.

La inteligencia artificial en RPA tiene a centrarse en OCR (reconocimiento óptico de caracteres), procesamiento de lenguaje natural (normalmente en documentos), etc.

Sin ánimo de exhaustividad, veamos qué usos de inteligencia artificial nos sugiere la fuente citada.


Usos ya disponibles de automatización cognitiva

Se centran, fundamentalmente, en la ingesta de documentos con datos no estructurados y que se procesan en la automatización. El tipo de labores que utilizan técnicas cognitivas son:

  • Reconocimiento Óptico de Caracteres (OCR)
  • Reconocimiento de imágenes
  • Analítica de textos
  • Análisis de sentimiento
  • Categorización
  • Clasificación
  • Detección de cambios de formato
  • Identificación de escritura a mano
  • Reconocimiento de voz

Como se puede ver, son tareas todas ellas muy útiles y aunque para los humanos resulten naturales, desde un punto de vista técnico son realmente sofisticadas. Sin embargo, se ve tambiñen que son tareas puntuales y que precisan un ámbito de automatización mayor, más extremo a extremo, que es el que proporciona RPA.


Relación con cliente automatizada


En el apartado específico de la relación con cliente se nos identifican técnicas de automatización como:

  • Chat Bots
  • Voice Bots
  • Agentes virtuales
  • Correo electrónico automatizado
  • IVR (Interactive Voice Response)
  • IVR Visual

Conviene dejar claro que en muchos casos, estas formas de automatización de la relación con el cliente se pueden hacer también sin el uso de Inteligencia Artificial. De hecho, por ejemplo, el uso de IVR para atención de llamadas telefónicas en Contact Center es práctica común desde hace años y, en algunos casos, se realizan automatizaciones sofisticadas sin precisar el empleo de inteligencia artificial. Lo que aporta la Inteligencia Artificial es la capacidad de, por ejemplo, usar la voz y el lenguaje natural en lugar de selección de menús numéricos.

De forma similar, se pueden realizar chatbots o automatización de correo electrónico sin necesidad de recurrir a Inteligencia Artificial y lo que viene a traer consigo la inteligencia artificial es una mayor potencia y sobre todo una mayor naturalidad en las interacciones.

Por otra parte, y ya en el ámbito de RPA, este tipo de elementos (bots, agentes virtuales, etc) serían acciones adicionales que se añaden a las capacidades ya existentes en RPA para automatizar procesos.


Automatización de procesos enriquecida con inteligencia artificial


En este ámbito, lo que hace la inteligencia artificial es mejorar ciertas tareas. Así, por ejemplo, puede ayudar a mejorar los datos transformando datos no estructurados en estructurados usando analítica de textos.

Igualmente, y usando analítica predictiva, se pueden hacer mejores decisiones y hacer una automatización más adaptativa.

Y se espera del Machine Learning muchas más aportaciones en el futuro...


Usos a futuro de la automatización cognitiva 


Un poco en la línea de lo esbozado en la sección anterior, el área de futuro más atractiva es aquella que incorporaría Inteligencia Artificial avanzada para automatizar decisiones. Hoy en día, cuando se aplica RPA se definen los flujos a seguir de una forma prácticamente cerrada (con las pequeños controles de flujo como condiciones o selecciones múltiples presentes en cualquier lenguaje de programación o proceso). La Inteligencia Artificial en general, y el Machine Learning en particular, abren las puertas a que las decisiones sean sofisticadas y adaptativas, que se produzcan en tiempo real con base en lo aprendido por el robot que implementa la automatización.

Pero esa visión, que es la que normalmente se vende en el material comercial ligado a RPA, es más un futurible (eso si, puede que muy cercano), que una realidad plenamente implantada.


***

Con todo lo visto, he querido, por un lado dar una panorámica de cómo se usa la inteligencia artificial en automatización y por otra, intentar desterrar la idea de que RPA, Robotic Process Automation, es Inteligencia Artificial. No lo es. Una cosa es RPA y otra Inteligencia Artificial.

Eso sí, trabajan muy bien juntas. Y más que lo harán, sin duda, en un futuro cercano.


martes, 18 de septiembre de 2018

Mi Actividad: Sesión en EOI sobre la Transformación Digital de la TI para la Universidad Tecnológica del Perú


El pasado Jueves 20 de Septiembre tuve el placer de participar en la semana sobre Transformación Digital para alumnos de posgrado de la Universidad Tecnológica del Perú organizada por la Escuela de Organización Industrial.

A mi me tocó impartir la última sesión, de poco menos de dos horas de duración, dedicada a la Transformación de las Tecnologías de la Información, es decir, a analizar la manera particular en que la Transformación Digital afecta a la función TI, a los departamentos de Sistemas y Tecnología de empresas y administraciones.

Fue un verdadero placer compartir ideas y reflexiones con un grupo inquieto, atento y participativo.

El subtítulo de la sesión fue 'Surfeando la revolución digital' y es que el surf fue, en efecto, la metáfora e hilo conductor de toda la sesión.

Finalicé, a modo de resumen con este vídeo plagado de olas:


Se entiende mejor tras haber estado en la sesión... pero os podéis hacer una idea...

lunes, 17 de septiembre de 2018

Acerca del Centro de Excelencia RPA


Uno de los consejos que con respecto a la implantación de soluciones RPA (Robotic Process Automation) señalan casi todos los consultores, analistas y fabricantes, es la conveniencia de implantar un Centro de Excelencia RPA.

¿Qué es eso?

Concepto de Centro de Excelencia RPA

Dicho de forma sencilla, un Centro de Excelencia RPA es un equipo humano experto en las diferentes facetas de RPA y que se encarga de la definición, desarrollo y operación de los robots software creados con las soluciones RPA.

Recordemos antes de proseguir que RPA es una tecnología que permite crear unos módulos software (denominados robots) que automatizan tareas en general repetitivas y basadas en reglas interactuando con los sistemas existentes de forma similar a como lo haría un humano (fundamentalmente mediante pantalla y simulación de teclado).

En el Centro de Excelencia se concentran gran parte de las funcionas relacionadas con el desarrollo y operación de los robots.

Aparte del casi unánime consejo consistente en crear esa unidad (que por cierto, puede ser una unidad distribuida geográfica y organizativamente), se pueden encontrar algunas descripciones algo más detalladas del equipo que constituye ese Centro de excelencia..

En concreto, el pequeño librito 'Robotic Process Automation for dummies. NICE special edition', el equipo de NICE, uno de los fabricantes destacados de productos RPA, nos especifica algo más cómo es ese centro de excelencia y sus roles.

Primero nos da una descripción de alto nivel diciendo:

Creating your center means bringing together the right business analysts, connectivity experts, automation developers, trainers and change management gurus. An excellent project manager will coordinate all these resources across multiple automation projects.

Es decir, es una unidad donde se concentran todos los recursos y roles relacionados con la automatización RPA.

¿Para hacer qué?

Funciones del Centro de Excelencia RPA

La misma fuente, además, nos explica rápidamente algunas de sus funciones:

The CoE team provides the brains behind your organization's automation projects, and it works directly with representatives of various departments across the enterprise who become the owners of the individual projects. The CoE team helps identify potential automation projects and measures how valuable each automation will be, and then it collaborates with the businss owners to design, deliver and maintain these projects.

Vemos que, según esta concepción, en el Centro de Excelencia se concentran prácticamente todas las funciones: desde hablar con los responsables de negocio, valorar proyectos de automatización, diseñar esa automatización, desarrollarla, implantarla y mantenerla. En ese sentido, funciona de una forma muy parecida a un equipo de desarrollo de software a medida pero especializado en RPA y automatización.

Roles del Centro de Excelencia RPA

El mismo documento luego aborda la especificación de los roles y, en concreto, propone estos:

  • Responsable del Centro de Excelencia: Dirige y coordina todos los recursos y actividades del Centro.

  • Analista de negocio en automatización: Experto de negocio que identifica necesidades y define soluciones de automatización. Trabaja en grupos priorizando casos de uso y creando la documentación detallada necesaria para los equipos de desarrollo.

  • Líder técnico de automatización: Supervisa la calidad de los trabajos de los desarrolladores y difunde buenas prácticas dentro del equipo.

  • Desarrollador de automatización: Es el creador de las soluciones y quien, usando las herramientas RPA, desarrolla las automatizaciones.

  • Ingeniero de conectividad de automatización: Se ocupa de la capa de integración.

  • Administrador de automatización: Realiza la gestión técnica, operación y mantenimiento de las soluciones de automatización.

  • Líder de despliegue y gestión del cambio de automatización: Se ocupa de aspectos como la formación y la gestión del cambio.

  • Analista de datos de automatización: Define y mide el valor de la automatización

  • Tester de automatización: Realiza las pruebas extremo a extremo de las automatizaciones, normalmente apoyado en las herramientas RPA.

A todo aquel lector familiarizado con centros y métodos de trabajo de desarrollo software no le sorprenderán estos roles. De hecho, si eliminamos el apellido 'de automatización' que llevan casi todos los roles, este esquema nos podría valer para casi cualquier otra tecnología o ámbito de desarrollo.

La única verdadera diferencia son los conocimientos de detalle que tienen que estar muy orientados a la automatización de procesos usando los productos y capacidades de la Automatización Robótica.

Conclusiones

Nos quedamos pues con la idea de que, si vamos a acometer a gran escala una iniciativa de automatización usando la tecnología de automatización robótica de procesos, es conveniente crear un centro de excelencia, con funciones y roles similares a la de otros centros de definición y desarrollo de soluciones, pero especializado en las técnicas propias de la automatización de procesos de negocio mediante RPA.


viernes, 14 de septiembre de 2018

Una guía sencilla a Bitcoin a cargo de Mark Gates



'Bitcoin: Complete guide to bitcoin' es un libro relativamente sencillo aunque bastante amplio en su cobertura temática sobre Bitcoin, la criptomoneda más popular.



El libro, tras una breve introducción, desarrolla su contenido en trece capítulos:


  • 'What is bitcoin:' Pone unos fundamentos conceptuales contestando en muy pocas palabras una serie de preguntas como qué es bitcoin, qué es una criptomoneda, quién creó bitcoin, quién lo controla, qué es blockchain, qué es el minado, que es un 'wallet', etc

  • 'What is money:' Hace una curiosa e interesante digresión acerca de qué es realmente el dinero. Tras repasar brevemente su evolución histórica, concluye que el valor de una moneda tiene que ver mucho con la confianza que los ciudadanos depositan en ella como mecanismo de intercambio.

  • 'The history of bitcoin:' Hace un repaso histórico de bitcoin

  • 'How bitcoin works:' De una forma bastante breve, repasa el funcionamiento general de bitcoin incluyendo algún detalle sobre blockchain y tocando aspectos como el consenso o el minado de bitcoin.

  • 'Benefits of bitcoin:' Identifica y explica varios aspectos que entiende como beneficios que trae consigo bitcoin.

  • 'Disadvantajes / dangers of bitcoin:' Se pasa al otro lado y ahora pone sobre la mesa desventajas y riesgos aparejados a esta criptomoneda.

  • 'Setting up a bitcoin wallet:' A partir de aquí el libro se vuelve más práctico. Empieza por explicar como instalar y poner a funcionar wallets de bitcoin. Primero explica qué es un wallet y luego hace un largo recorrido por los tipos de wallets existentes con sus ventajas y desventajas y con ejemplos concretos de wallets existentes de esas tipologías.

  • 'Buying: trading and using bitcoins:' Explica cómo hacer diferentes tipos de transacciones con bitcoin; recibir bitcoins, comprar bitcoins, enviar bitcoins, especular con bitcoins, etc. Para cada caso de pinceladas de cómo se hace en algunos de los sistemas más populares como Coinbase, Circle, coPay, Jaxx, Blockchain.info, Strongcoin, Exodus, Poloniex, etc

  • 'Exploring the bitcoin blockchain:' Se mete un poco en el interior de bitcoin para hablar de blockchain. Explica, por ejemplo, cómo es un bloque del blockchain de bitcoin, cómo es un hash o una transacción. Es muy interesante que muestra ejemplos concretísimos lo que ayuda a tangibilizar una tecnología que es de por sí bastante abstracta.

  • 'Mining bitcoin:' Se centra ahora en explicar brevemente el minado de bitcoins, explicando el concepto de 'prueba de trabajo', e intentando contestar a cuestiones acerca de la seguridad en el minado y si éste es rentable.

  • 'Ethereum, bitcoin cash and other cryptocurrencies:' Abandona por un momento el Bitcoin propiamente dicho para comentar otras criptomonedas, algunas de las cuales han surgido como escisiones de Bitcoin. Así, nos habla de Ethereum, Litecoin, Rippe y Bitcoin cash

  • 'Trading bitcoin for other cryptocurrencies:' Explica como hacer el cambio entre criptomonedas,

  • 'The impact and future of bitcoin:' Realiza un conciso análisis final del impacto actual de bitcoin y una visión de futuro sin ocultar algunas problemáticas como la escalabilidad.

Aunque 'Bitcoin: Complete guide to bitcoin' no se pueda considerar una 'biblia del bitcoin', al fin y al cabo no es muy amplio ni profundo ni tampoco excesivamente técnico, creo que sí consigue dar una visión razonablemente completa y sencilla de lo que es bitcoin, cómo se usa e informando de una forma que me parece neutral de sus ventajas y desventajas. Es sólo un detalle, pero me ha gustado mucho el que enseñe ejemplos concretos y explicados de bloques y hash. Hace muy palpable la tecnología y sus conceptos.

En fin, creo que este libro no está destinado a especialistas pero sí puede ser una muy buena introducción para personas que quieran entender bitcoin a un nivel entre bajo y medio y con un fundamento técnico básico.

Mark Gates:

(Fuente: Traducción y ligera elaboración propia de la Ficha de autor en el libro)

Mark Gates creció en California y ha sido parte del escenario tecnológico durante más de una década.

Empezó diseñando sitios web cuando aún estaba en la high school, para lo cual usaba texto plano en el bloc de notas antes de descubrir que existían herramientas más avanzadas. Mark lanzó un negocio de diseño web durante el inicio del boom de Internet hace aproximadamente 15 años.

Luego extendió su negocio de diseño al mundo del marketing digital, SEO y social media. Tras vender su negocio, actualmente dedica su tiempo a vajar y obtener sus ingresos mediante su portátil.

Aunque inicialmente escéptico sobre las criptomonedas, Mark se ha convertido en un convencido defensor de las tecnologías basadas en blockchain y la criptomonedas.

Mark cree que la mejor forma de aprender es con la experiencia del mundo real. Le encanta bucear en cualquier cosa relacionada con la tecnología, aprender y enseñar a otros a hacer lo mismo.

Ficha técnica:

AUTOR: Mark Gates.
AÑO: 2017
ISBN: N/A
PAGINAS: 110

Artículos de este blog relacionados

miércoles, 12 de septiembre de 2018

Una definición comentada de Robotic Process Automation (RPA)


Robotic Process Automation  (RPA) es una de las tendencias tecnológicas que ocupan cada vez más espacio en los medios especializados. Sin embargo, y como pasa con casi todas las tecnologías 'de moda', tienden a darse, intencionadamente o no, visiones borrosas y poco claras, a veces incluso bastante equívocas.

Aprovechando que este verano he leído el librito divulgativo 'Robotic Process Automation for dummies. NICE special edition', escrito por el equipo de NICE, uno de los principales fabricantes de soluciones RPA,  rescato la definición que allí se proponía y, sobre ella, intento explicar algunos puntos que puede que, según para quién, no estén suficientemente claros. Ésta es la definición que se propone en el libro:

RPA is the use of computer software robots to handle repetitive, rule-based digital tasks, interacting with applications and information sources the same way humans do.

De esta definición, quiero entresacar y destacar los siguientes puntos:

  • Robots software: A veces, las imágenes que acompañan a artículos sobre RPA, y el propio hecho de que a los módulos software les llamemos robots, puede confundir a algunas personas y hacerles pensar que estamos hablando de algo parecido a los robots industriales o incluso androides. Nada de eso, los robots de que hablamos en Robotic Process Automation son módulos software, programas si se quiere, que residen en nuestros puestos de trabajo o en servidores, como cualquier otro software.

  • Tareas repetitivas y basadas en reglas: De nuevo, la propaganda sobre RPA incide tanto en la inteligencia artificial que nos hace pensar que RPA automatiza tareas complejísimas hasta ahora sólo al alcance de la inteligencia humana y que no es más que otra de las tecnologías que componen la inteligencia artificial. No es así.  Aunque RPA sí que hace uso en ocasiones de tecnología de inteligencia artificial (por ejemplo, para entender lenguaje natural en documentos y encontrar información en ellos) , y aunque el futuro más ambicioso de RPA se centra en una cada vez mayor presencia de la inteligencia artificial y el machine learning, lo cierto es que, las aplicaciones más reales, las más características y de las que más beneficio pueden obtener las empresas a corto plazo, son todo menos inteligentes. Precisamente, la mayor utilidad y hasta viabilidad de aplicación hoy día de la automatización con robots software, es la automatización de tareas sencillas, muy repetitivas y basadas en reglas claras, No nos decepcionemos en absoluto por ello: los beneficios reales para las compañías pueden ser inmensos 'sólo' con hacer eso, 'sólo' con automatizar esas tareas simples, repetitivas y basadas en reglas. 
  •  
  • Interacción con aplicaciones y fuentes de información: Normalmente, los robots de RPA interactuan con dos tipos de elementos. Por un lado, con aplicaciones, a través de sus pantallas y simulando el uso del teclado o el ratón. Por otro lado con almacenes de información, ya sean documentos ofimáticos o bases de datos. Es especialmente relevante la interacción con las aplicaciones a través de sus pantallas y mecanismos de entrada/salida ya existentes.

  • De la misma forma que lo hacen las personas: Una de las fortalezas prácticas de la automatización robótica es que los robots 'simulan' el comportamiento de un humano. Es decir, 'miran' virtualmente la pantalla y obtienen información de ella, 'leen' virtualmente documentos como facturas o albaranes y extraen información de ellos y envían nueva información a las aplicaciones simulando el uso del teclado o el ratón. La importancia de emular a los seres humanos no tiene nada que ver con la inteligencia artificial, sino con el hecho de que eso elimina la necesidad de modificar las aplicaciones sobre las que se actúa y los documentos que se leen.Y ese es uno de los grandes secretos de la utilidad de RPA.

A lo mejor tengo que sacar tiempo para explicar más clara, y quizá gráficamente lo que es realmente RPA. De todas formas, ahora, a la definición de arriba y las observaciones realizadas, voy a añadir algo parecido, sin prender serlo, a una nueva definición: 

"RPA es un tipo de soluciones que aportan módulos software (denominados robots) capaces de interactuar con aplicaciones y documentos existentes, con lo que automatizan tareas, en general muy procedimentadas y basadas en reglas, consiguiendo así automatizar procesos sin modificar las aplicaciones subyacentes"

¿Se entiende?

Espero que sí pero, si no es así, tiempo habrá de explicarlo de otras formas porque Robotic Process Automation, RPA, constituye una de mis áreas de mayor dedicación y estudio actualmente.

lunes, 10 de septiembre de 2018

Censo de 50 estrategias para un mejor futuro digital


Hace unos meses, Fundación Telefónica editaba el libro/informe '50 estrategias para 2050' donde se estudian impactos y delinean estrategias a futuro para conducir hacia el mejor puerto posible a la sociedad ante la revolución digital. Como parte fundamental de ese trabajo, y de hecho prestando título a la obra, se han delineado, trabajando con expertos, 50 estrategias agrupadas en cinco bloques.

Para entender bien el informe y su contexto es mejor leer el informe completo (130 páginas) pero he querido de todas formas recoger, aunque sea a nivel de mero listado, esas 50 estrategias. Aunque se necesitaría profundización, creo que el simple enunciado de las estrategias ya puede dar una buena idea de 'por dónde van los tiros'. Así que, sin más preámbulo, y también sin más comentario, éste es ese listado de estrategias:

  • 1. EDUCACIÓN Y APRENDIZAJE

    • 1.1 Generalizar la educación digital e integrar las TIC en la docencia
    • 1.2 Incorporar sistemas de inteligencia del mercado de trabajo a las políticas educativas y de empleo
    • 1.3 Asegurar la flexibilidad del sistema educativo
    • 1.4 Reorientación del sistema de educación de un enfoque colectivo a uno individual
    • 1.5 Dinamizar el sistema universitario para promover la modernización de sus estructuras y el reciclaje de su profesorado
    • 1.6 Desarrollo de metodologías didácticas orientadas a solucionar retos y el impulso al autoempleo, el aprendizaje y la autoeducación
    • 1.7 Alinear la I+D+i en el ámbito de la Universidad con las necesidades de la sociedad
    • 1.8 Impulsar programas educativos centrados en competencias STEM
    • 1. 9 Aumentar la relevancia de la educación en la etapa de 0 a 3 años
    • 1.10 Promover una educación integral, que aúne las competencias tecnológicas con el impulso de la creatividad y las humanidades
    • 1.11 Generar modelos híbridos de educación que incluyan nuevas metodologías y formación práctica
    • 1.12 Promover la alfabetización digital de toda la sociedad, para favorecer la inclusión en el progreso tecnológico

  • 2. CIENCIA Y TECNOLOGÍA

    • 2.1 Estrategia de implantación nacional en ciencia y tecnología
    • 2.2 Promover las redes de realidad extendida y potenciar una cultura de red y de interconexión para la IA
    • 2.3 Apuesta por la ciberseguridad
    • 2.4 Potenciar la red Internet of beings (Internet del ser humano)
    • 2.5 Puesta en marcha de fondos de capital riesgo que apoyen la inversión en I+D+i
    • 2.6 Impulsar el desarrollo científico sobre la base de la colaboración entre los ámbitos público y privado
    • 2.7 Apuesta por las energías renovables
    • 2.8 Participar activamente en los programas de exploración espacial
    • 2.9 Apostar por un concepto de “tecnología humanista”, como gran motor de la 4ª revolución industrial
    • 2.10 Impulsar unos contenidos tecnológicos propios en España, basados en la singularidad y la diversidad cultural
    • 2.11 Programa de apoyo para la solicitud de patentes

  • 3. EMPRESAS Y TRABAJO

    • 3.1 Extender los sistemas de apoyo al autoempleo y el emprendimiento, y fomentar los ecosistemas conectados
    • 3.2 Replantear los modelos de protección social en esquemas de “flexi-seguridad”
    • 3.3 Impulsar la gestión del conocimiento a través de la innovación abierta en las empresas
    • 3.4 Repensar la responsabilidad social y el impacto que las empresas generan en la sociedad y en sus empleados/as
    • 3.5 Promover un modelo de formación dual en todo el sistema de educación superior reglada
    • 3.6 Impulso a programas integrales de reinserción laboral
    • 3.7 Impulsar nuevos modelos de empresa y de actividad económica (P2P)
    • 3.8 Desarrollar modelos de formación a lo largo de la vida
    • 3.9 Impulsar políticas dirigidas a un modelo productivo basado en la economía circular
    • 3.10 Desarrollo de entornos y recursos para la experimentación

  • 4. SOCIEDAD Y CULTURA

    • 4.1 Redefinir los valores éticos de las organizaciones y las personas
    • 4.2 Promover acciones para que la igualdad real entre hombres y mujeres sea efectiva en todos los ámbitos de la sociedad
    • 4.3 Gestión de una sociedad más multicultural
    • 4.4 Desarrollar competencias digitales a nivel general y competencias analíticas clave
    • 4.5 Potenciar las industrias creativas en el marco de la cultura digital
    • 4.6 Protagonismo del smart citizen
    • 4.7 Ampliar los usos de la realidad extendida en los ámbitos culturales
    • 4.8 Mejorar nuestras capacidades cognitivas a través de la inteligencia aumentada

  • 5. GOBIERNO Y POLÍTICAS PÚBLICAS

    • 5.1 Convertir la estrategia nacional sobre tecnología en una política de Estado, al margen del debate partidista
    • 5.2 Potenciar el rol público para el impulso del avance tecnológico
    • 5.3 Mayor implicación de las Administraciones para promover el uso de las tecnologías
    • 5.4 Aplicar la IA a la definición de políticas públicas
    • 5.5. Nuevos mecanismos de participación ciudadana que impulsen la implicación progresiva en los procesos de toma de decisiones, más allá del voto
    • 5.6 Gobernanza basada en el gobierno abierto, la transparencia y la rendición de cuentas
    • 5.7 Reforzar el papel de las Administraciones en ciberseguridad
    • 5.8 Plan nacional de adaptación al cambio climático y transición energética
    • 5.9 Implantar sistemas de renta básica

viernes, 7 de septiembre de 2018

El Machine Learning hecho sencillo con Judith Hurwitz y Daniel Kirsch

'Machine Learning for dummies. IBM limited edition' es un corto librito que explica, de una forma muy clara y comprensible, las principales ideas del Machine Learning buscando más la comprensión por parte de un público general que la profundidad de las ideas.


El libro, de apenas 68 páginas se estructura en siete cortos capítulos:



  • 'Understanding Machine Learning:' explica el concepto de Machine Learning que, además, pone en relación con Big Data y la estadística. También introduce otros conceptos como la diferenciación entre la analítica descriptiva y la predictiva, el aprendizaje supervisado y no supervisado, etc y proporciona el contexto en que se sitúa el Machine Learning como subconjunto de la Inteligencia Artificial.

  • 'Applying Machine Learning' describe de una manera muy sucinta cómo aplicar Machine Learning en entornos empresariales.

  • 'Looking inside Machine Learning' Hace un repaso de los principales algoritmos existentes. También dedica espacio los datos y su preparación para ser usados y propone un ciclo de trabajo en Machine Learning.

  • 'Getting staarted with Machine Learning' Vuelve sus ojos de nuevo a la aplicación práctica proporcionando algunas ideas sobre cómo enfocarse en el negocio, cómo ejecutar un proyecto piloto o la selección del tipo de aprendizaje más adecuado.

  • 'Learning machine skills' Hace un rápido repaso de las habilidades y conocimientos necesarios y proporciona algunos recursos para formación.

  • 'Using Machine Learning to Provide solutions to business problems' Proporciona algunos ejemplos breves de aplicación de Machine Learning a problemas concretos.

  • 'Ten predictions on the future of Machine Learning' se arriesga a hacer una predicción de diez cosas que sucederán en Machine Learning en el futuro más o menos próximo.

Dada la extensión y pretensiones de la obra no se puede pretender un tratado ni profundo, ni detallado ni muy técnico, pero 'Machine Learning for dummies. IBM Limited edition' cumple correctamente con su objetivo de explicar y divulgar las ideas fundamentales sobre Machine Learning por lo que sirve, obviamente, como introducción o, incluso, como repaso rápido de conceptos. En ese sentido y con ese bajo nivel de ambición, resulta un librito interesante y útil, y más si se tiene en cuenta que es gratuito.

Judith Hurwitz

(Fuente: Traducción y ligera elaboración propia de su biografía en Hurwitz & Associates)

Judith Hurwitz
Judith S. Hurwitz es Presidente y CEO Hurwitz & Associates, Inc, una firma de investigación y consultoría estatégica enfocada en las tecnologías de computación distribuidas. Como pionera en anticipar la innovación y adopción de tecnología, Judith aboga por una adopción pragmática de un enfoque arquitectural y de negocio para el mercado emergente de cloud computing, orientación a servicios y gestión de servicios. Ha actuado como asesor de confianza de muchos líderes de la industria a lo largo de los años. Judith ha ayudado a esas compañías a hacer la transición a u nuevo modelo de negocio enfocado al valor de negocio de las plataformas emergentes.

Antes de fundar Hurwitz & Associates en 2002, Judith fue cofundadora de CycleBridge, una compañía de consultoría orientada al software para ciencias de la vida. En 1992, Judith fundó Hurwitz Group. Tambiñen actuó como consultor tecnológico senior en John Hancock y Apollo Computer.

Judith combina una comprensión abarcadora de la industria con una orientación enfocada y orientada al negocio. Cree que más que contemplar las tecnologías emergentes en vacío, los líderes de la industria necesitan evaluar la tecnología con base en el impacto en la innovación y la efectividad del negocio.

La experiencia de Hurwitz es ampliamente reconocida y actúa con frecuencia como speaker en eventos de la industria. Además, escribe un blog popular sobre tecnología distribuida.

Es co-autora de los siguientes libros: 'Cloud Computing For Dummies', 'Service Oriented Architectures for Dummies', 'Service Management for Dummies' y 'Information Management for Dummies'. Ha escrito ampliamente sobre todos los aspectos del software distribuido.

Judith tiene grados de la Boston University y participa en varios comités de asesores de compañías emergentes. Fue nominada alumna distinguida del Boston University College of Arts & Scineces en 2005. También ha sido acreedora del premio Massachusetts Technology Leadership Council en 2005.

Puedes saber más de la autora visitando la página de Hurwitz & Associates o siguiéndola en Twitter donde se identifica como @jhurwitz.

Daniel Kirsch

(Fuente: Traducción y ligera elaboración propia de su biografía en su Hurwitz & Associates)

Dan Kirsch
Dan Kisrch se unió a Hurwitz & Associates como analista de investigación enfocado en seguridad, gobierno y privacidad. Dan había trabajado ya como consultor para Hurwitz & Associates desde 2010 y se unió a tiempo completo a la compañía en Otoño de 2011.

Dan tiene una titulación del Boston College Law School donde trabajó en el área de legislación corporativa, empresas emergentes y propiedad intelectual. Como abogado, Dan representó a startups y empresas que acudían a segundas rondas de financiación.

La investigación de Dan se enfoca en cómo el cumplimiento normativo, gobierno, seguridad y privacidad están impactando en la industria del software y los requisitos de clientes. Además, Dan está mirando al mercado móvil.

Puedes saber más del autor visitando su perfil en LinkedIn o siguiéndole en Twitter donde se identifica como @ddkirsch.

Ficha técnica:

EDITORIAL: John Wiley & sons
AÑO: 2018
ISBN: 978-1-119-45494-6
PAGINAS: 68

Artículos de este blog relacionados

miércoles, 5 de septiembre de 2018

Conceptos sobre rendering y movimiento en realidad virtual


En este artículo quiero revisar, muy rápidamente, algunos conceptos sobre rendering y movimiento/escalado de objetos que se aplican en realidad virtual.

¿Por qué?

La verdad es que la literatura técnica no siempre brilla por su pedagogía situándose con frecuencia en dos extremos: o se adopta una visión de muy alto nivel, muy de negocio, que apenas nos permite entender en qué consiste la tecnología subyacente o, por el contrario, se dirige a desarrolladores o tecnólogos experimentados y da muchos conceptos, herramientas y acrónimos por conocidos, dificultando una visión introductoria.

Leyendo el libro 'Learning virtual reality' de Tony Parisi me he encontrado en su tercer capítulo, una explicación clara, sencilla y con ilustraciones de algunos de los conceptos que se usan en realidad virtual, y muchos de ellos probablemente también fuera de la realidad virtual siempre que usemos gráficos 3D, como en realidad aumentada, animación, videojuegos, etc

Sin pretender sustituir la lectura de este libro (que siempre es recomendable), quiero pasar revista muy rápidamente a algunas, nos todas, de las ideas que se cuentan.

Movimiento y escalado de objetos 3D

Cabeza humana dividida en polígonos
Nos explica el libro que las superficies 3D que delimitan los objetos 3D se descomponen en una serie de pequeños polígonos que se definen por sus vértices. Y que esos vértices, que no dejan de ser puntos, se representan en unos sistemas de coordenadas con sus ejes X, Y y Z que supongo que todos los lectores entienden. De esta forma, situando todos los vértices, de todos los polígonos que componen las superficies de los objetos, situamos objetos 3D en un sistema de coordenadas.

A continuación, y como consecuencia de lo anterior, se nos deja claro que tanto mover un objeto en el espacio (ya sea una traslación o una rotación), como cambiarlo de tamaño (escalado) supone, 'simplemente', cambiar las coordenadas de todos los vértices de todos los polígonos de sus superficies para situarlos en la nueva posición/tamaño.



Y finalmente, se nos esboza brevemente el aparato matemático que hay detrás de esos cambios de posición/ tamaño que de denominan transformaciones. Simplemente, o más o menos simplemente, decir que los puntos se representan por un vector (una matriz de una sola columna) con sus coordenadas. Para conseguir las nuevas coordenadas, el nuevo vector, ha de multiplicarse el vector original por lo que se denomina una matriz de transformación, que es una matriz 4x4 como la que se muestra en la figura.

Matriz de Transformación
Sin entrar en muchos detalles, sólo mencionar que en esa matriz, los elementos m12, m13 y m14 nos dan la traslación en los ejes X, Y y Z, que los valores m0, m5 y m10 (la diagonal) nos proporcionan la escala, mientras que la rotación viene definida por los pares m1 y m2 para el eje X, m4 y m6 para el Y y m8 y m9 para el Z.

Estará de acuerdo el lector conmigo acerca de lo hermosa y casi mágica que es el álgebra lineal, que nos permite representar y jugar de esta forma con objetos 3D ¿verdad?

Conceptos usados en rendering


Aparte de esto, y apoyado en la figura que se muestra arriba, el libro nos explica los conceptos de cámara, perspectiva, viewport (no he encontrado traducción al castellano para este término) y proyecciones.

La cámara es un objeto que representa desde dónde y con qué orientación estamos mirando un objeto u escena 3D y en la figura se representa por un ojo. Y, por cierto, se nos desvela que las cámaras se representan también por matrices. En concreto, dos: una que define posición y orientación de la cámara (y que se parece mucho a la empleada en transformaciones que hemos visto más arriba) y otra, más difícil de entender, que representa la traslación de las coordenadas de la cámara en un espacio de dibujo 2D.

Se nos explica también que para hacer el 'renderizado' (la representación) hemos de convertir el objeto 3D en su representación 2D. Para ello, primero fijamos un plano que se encuentra entre los objetos y la cámara y que es lo que se denomina 'viewport' (en verde en la figura) o plano de proyección cercano. ('near clipping plane') trazamos una línea imaginaria que va desde la cámara a cada uno de los vértices de los polígonos que conforman las superficies de los objetos. Donde esa línea corta al 'viewport' tendremos ese vértice en su representación 2D. Matemáticamente trazar esa línea imaginaria y calcular el corte supone un poco más de álgebra.  

¿He dicho que las líneas imaginarias se trazan desde la cámara? Si eso he dicho para facilitar la explicación pero no es exactamente así. En realidad virtual, donde queremos una experiencia inmersiva 3D, no se hace mirando desde la cámara sino que se fijan dos puntos lígeramente desplazados de la cámara (por ejemplo, uno ligeramente desplazado hacia la izquierda y el otro a la derecha) representando a cada uno de los ojos del ser humano.  

Porque, como se recordará del artículo anterior, en realidad virtual se hace lo que se denomina una representación o renderizado estereoscópico, es decir, doble, cada uno para ser visto por un ojo.

Representación estereoscópica

En cualquier caso, una vez fijados esos dos puntos cercanos a la cámara, la forma de obtener la representación 2D para cada ojo es como la explicada.

***

Bueno, espero que al leer este artículo te hayan quedado más claros estos conceptos. A mi, desde luego, leer el libro mencionado me ha ayudado a fijarlos.


lunes, 3 de septiembre de 2018

Las dos innovaciones que impulsan la realidad virtual


La realidad virtual es una tecnología compleja o, más bien, es un conjunto de tecnologías que, adecuadamente combinadas, proporcionan una experiencia diferente que puede ser usada para generar infinidad de aplicaciones y soluciones. Pero ¿podemos de alguna forma simplificar este intrincado panorama de tecnologías? ¿Cuáles son en esencia las innovaciones que impulsan la realidad virtual?

Siguiendo a Tony Parisi en su libro 'Learning virtual reality', podemos concentrar en sólo dos conceptos o conjuntos de tecnologías lo que hace diferente a la realidad virtual y aquello que la impulsa: la representación estereoscópica ('stereoscopic rendering') y el rastreo del movimiento ('motion tracking').

Representación estereoscópica


La representación estereoscópica lo que hace es traducir una misma imagen de partida en dos ligeramente diferentes y desplazadas que representan lo que percibiría cada uno de los ojos de un ser humano que estuviese mirando esa imagen desde una cierta posición, distancia y ángulo. Al proyectar en cada una de esas imágenes 'renderizadas' en un ojo diferente, la persona obtiene la sensación de tridimensionalidad o, si se quiere, de 'realidad',

Rastreo de movimiento


Por su parte, el rastreo de movimiento es, en realidad, la conjunción de un conjunto de sensores y la acción combinada de recoger y procesar las informaciones de esos sensores para conocer y tratar el movimiento y acciones del usuario. Muchos de estos sensores son los mismos que vimos  al hablar de sensores para la realidad aumentada: giróscopos, acelerómetros o magnetómetros. El hardware para realidad aumentada incluye varios de estos elementos normalmente integrados varios de ellos en lo que se ha dado en llamar 'Inertial Measurement Unit' (IMU) o unidad de medición inercial, que recoge información acerca de velocidad, orientación y fuerzas gravitacionales.

Dentro de este bloque, creo que habría que incluir también los dispositivos de entrada, aquellos elementos adicionales que el usuario puede utilizar para dar instrucciones a la aplicación y donde podríamos encontrar elementos como joysticks o controladores de juegos y también rastreadores de movimiento de cuerpo y cabeza.

***

En fin, que la realidad virtual tiene, en efecto, muchas facetas e incluye muchas tecnologías. Sin embargo, esta ordenación que nos propone Parisi, nos ayuda a, sin mucho esfuerzo, caracterizar y recordar lo que hace diferente, útil e innovador a la realidad virtual.