miércoles, 30 de noviembre de 2022

Modelos multi-nivel para una auto-conciencia robótica

Sigo a vueltas con el tema de la consciencia robótica. Y sigo a vueltas con ello porque, personalmente, me parece interesantísimo, porque, además, nos puede ayudar mucho también a entender las consciencia humana y porque, a medida que avanzo en mi indagación del tema, aparecen más y más aportaciones interesantes.

Y sigo, como en los últimos artículos de este blog, usando como fuente principal el  libro 'Cognitive robotics' editado por Angelo Cangelosi y Minoru Asada y, en concreto, el capítulo firmado por Antonio Chella titulado 'Robots and machine consciousness'.

Y en este post, en concreto, me voy a detener a comentar brevemente alguna de las ideas que sobre auto-conciencia en robots aporta el capítulo. Pero, antes de ello, algún apunte terminológico.


El problema terminológico


Es problemático, o al menos no clara y comúnmente entendido y consensuada, la distinción entre lo que se denomina 'conciencia' y lo que se denomina 'consciencia'. Y es aún más problemático hacerlo traduciendo del inglés. 

Sin entrar en academicismos y no siendo muy formal, decir que, como argumenté en un debate en LinkedIn subsiguiente al artículo anterior sobre consciencia, personalmente utilizo (y está amparado por la Real Academia Española de la Lengua) estos dos términos en el siguiente sentido:

  • consciencia: facultad que, de alguna manera, habilita a un agente (normalmente un ser vivo) para disponer no sólo de un modelo del mundo sino también un modelo diferenciado de sí mismo y para utilizar ambos y su interacción, de una forma integrada y coherente.

  • conciencia: facultad de orden moral, que de alguna forma implica conocimiento del bien y el mal


Como digo, ambos usos están amparados por las acepciones reconocidas por la Real Academia Española de la Lengua pero advirtiendo que, en otras acepciones, ambos términos se confunden y se hace casi equivalentes como cuando decimos 'ser consciente de algo' o 'tomar conciencia de algo'.

Y se complica más la cosa cuando intentamos trasladar al castellano las palabras en inglés que, de alguna forma, se traducen en esos términos en castellano. En ese sentido, tiendo a traducir la palabra 'consciousness' como consciencia y la no muy empleada 'conscience' como conciencia en el sentido que para ambos términos en castellano yo asigno.

Pero me resulta problemático, sin embargo, traducir manteniendo el rigor y separación conceptuales, la palabra  'awareness' porque se puede traducir tanto como 'consciencia' como también como 'conciencia'. Pero cuando se traduce como conciencia, no es como conciencia en sentido moral, sino como en el sentido de 'tener conciencia de' o 'ser consciente de'. Y cuando se traduce como 'consciencia' creo que no llegar a significar lo mismo que 'consciousness' sino que es como un paso previo, más a una percepción que una verdadera y profunda 'consciencia'. 


Auto-conciencia ('self-awareness') robótica 


Con todas esas precauciones y matizaciones, decir que el autor habla de 'self-consciousness' ('auto-consciencia') y menciona, como un elemento importante de ella la 'self-awareness', digamos,  auto-conciencia o auto-percepción. E identifica esa 'self-awareness' como la capacidad de un agente, digamos un robot, de reflexionar sobre sí mismo, sus percepciones y sus acciones durante su vida operativa. Así expresado, estaría muy cercano al término 'consciencia' tal y como yo lo entiendo.


Los modelos multinivel


En cualquier caso, lo que en el fondo quería mencionar brevemente es la existencia de un tipo de modelos de auto-conciencia (en realidad hay más) que establecen una suerte de modelos jerárquicos o, por mejor decirlos, en niveles.

De acuerdo a estos modelos computacionales de la mente, los niveles más bajos están cercanos a la percepción y la actuación refleja (lo que en seres vivos vendrían a ser las actuaciones instintivas), en el nivel intermedio estarían las capacidades deliberativas de planificación y razonamiento, lo que creo que 'mapea' con el razonamiento consciente y, en el nivel más alto se sitúan los módulos dedicados a la auto-monitorización y la auto-reflexión 

Modelo de la mente de Minsky

Nos menciona también Chella, por ejemplo, un modelo de la mente debido al mismísimo Marvin Minsky y en que se identifican, de abajo a arriba (orden creciente de complejidad) los siguientes niveles:

  • Reacciones innatas
  • Reacciones aprendidas
  • Pensamiento deliberativo
  • Pensamiento reflexivo
  • Pensamiento auto-reflexivo
  • Pensamiento auto-consciente

No son estos, ni mucho menos, los únicos modelos que se mencionan de auto-consciencia robótica, ni siquiera los únicos modelos en niveles. Quizá deba volver a ellos y profundizar más, pero de momento sólo quería dejar constancia de su existencia.

Y de paso reseñar que me ha resultado llamativo el cierto paralelismo con el modelo de emociones propuesto por el famoso neurocientífico Antonio Damasio. No sé cuánta conexión existe entre unos modelos y otros...pero no creo que el paralelismo sea del todo casual. Y si no es casual es que, quizá, quizá, estén en lo cierto.


Conclusiones


Aunque creo poder afirmar tranquilamente que no existen logros muy significativos en materia de consciencia robótica, sí que se observa la existencia de numerosos modelos y una cierta convergencia o cercanía entre ello. 

A lo mejor, solo a lo mejor, eso puede ser un indicador de que algo sí se ha avanzado en esta materia.


Artículos de este blog relacionados


miércoles, 23 de noviembre de 2022

La idea de consciencia robótica y el modelo conceptual de Aleksander y Dunmall.

Cuando la semana pasada terminé el post 'El elusivo objetivo de la consciencia robótica. Concepto y axiomas' pensaba retomar el tema de la consciencia robótica pero de una forma algo más ligera. Sin embargo, me parece tan interesante que creo que voy a detenerme bastante en ese capítulo firmado por Antonio Chella dentro del  libro 'Cognitive robotics' editado por Angelo Cangelosi y Minoru Asada.

En efecto, y antes de pasar a lo que allí puedo encontrar sobre implementación o incluso tests de consciencia, antes quiero revisar algún modelo todavía conceptual. 

En concreto, en este artículo, aparte de traer a colación una definición aproximada de consciencia robótica, probablemente insuficiente, pero interesante, quiero repasar el modelo conceptual propuesto por Aleksander y Dunmall.


Una definición sencilla de consciencia robótica.


Aunque no es una definiciones muy ambiciosa y sólo centrar alguna idea, me interesa mencionar. La  debida a Tihamer Nemes y recogida en su libro 'Cybernetic Machines' que se remonta, nada más y nada menos que a 1962 y que dice, simplemente, que la consciencia en un robot es:


the capability of a robot to discriminate between self and others.


Probablemente sintamos que esta definición se queda muy corta, pero me parece sin embargo interesante porque, en efecto, y volveremos a ello al final, ese saberse reconocer a 'uno mismo' como diferente del entorno, parece un atributo más que relevante de una consciencia.


La definición de consciencia de Aleksander y Dunmall


Más elaborado que esta definición primigenia de Nemes, tenemos el modelo axiomático propuesto por Igor Alksander (al cual ya mencionamos en un post anterior) y Barry Dunmall en 2003 y que se recoge en su artículo 'Axioms and Tests for the Presence of Minimal Consciousness in Agents'. En él, y como veremos más abajo, caracterizan la consciencia con base en cinco axiomas, de los cuales luego deducen algún corolario.

Se observa en el título que no se habla explícitamente de robots, sino de agentes. Como explico en uno de mis primeros vídeos de 'The robot notes', en concreto, el titulado 'The robot concepts' una de las formas de entender un robot es, precisamente, como una forma de agente. Es cierto que un agente, y un agente inteligente, puede ser muchas cosas, incluyendo a un ser humano o, incluso, principalmente un ser humano. Pero también un robot es un agente y un agente inteligente. En el artículo, y aunque los axiomas que en seguida veremos se suelen explicar a partir de hallazgos de neurociencia en humanos, claramente están orientados a posibilitar modelos computacionales de consciencia como, por ejemplo, sucedería en robots. Y de hecho, los autores dicen:


casting  this material in the domain of physically realisable robot-like machinery is exploited as a hook on which to hang the more general axiomatic theory.


Establecido esto, y antes de pasar a los axiomas propiamente dichos, traemos aquí la definición que usan los autores de consciencia, aportando una definición que ellos mismos califican como rudimentaria y de trabajo. Nos dicen:


Being conscious is defined by "having a private sense of: of an 'out-there' world, of a self, of contemplative planning and of the determination of wether, when and how to act.


Se verá a continuación que esa definición encaja muy bien con los axiomas, pero ahora quiero resaltar esa doble visión del exterior ('out-there') y el propio agente / robot ('the self').


El modelo axiomático de consciencia de Aleksander y Dunmall


Dicho esto, pasamos ya a revisar brevemente los cinco axiomas. Según los autores, para considerar a un agente consciente este debe cumplir cinco axiomas:


  • Axioma 1 - Representación ('Depiction'): el agente tiene estados perceptivos que representan partes del mundo exterior.

  • Axioma 2 - Imaginación ('Imagination'): El agente tiene unos estados internos imaginativos que recuerdan partes del mundo exterior o que crean sensaciones similares a las del mundo exterior.

  • Axioma 3 - Atención ('Attention'): El agente es capa de seleccionar qué partes del mundo exterior representar o cuáles imaginar.

  • Axioma 4 - Planificación ('Planning'): El agente dispone de medios para controlar las secuencias de estados imaginativos de cara a planificar acciones.

  • Axioma 5 - Emoción ('Emotion'): El agente tiene estados afectivos adicionales que evalúan las acciones planificadas y determinan las acciones consiguientes.


Estos axiomas se expresan de forma literal pero también con una notación formal de tipo matemático que al final del artículo complican un poco su lectura (hay que recordar lo que significa cada símbolo) pero que ayudan a darle rigor y acercarlos a modelos computacionales. 

Aparte de exponer y explicar los axiomas, los autores razonan sobre ellos y extraen alguna conclusión adicional (algún corolario).

De estos axiomas, y un poco a bote pronto, decir que sorprende un poco el que afecta a la emoción porque no parece responder del todo a la idea intuitiva que tenemos de emoción (los otros cuatro sí me parece que son muy claros).


Un breve apunte sobre auto--consciencia


Echo también un poco en falta la visión interna del agente / robot, los estados que representan al propio agente / robot, que me parecen esenciales en una idea de consciencia y que, de hecho, sí aparecen en la definición de los autores ('the self') y muy claramente en la propuesta de Nemes.

Esta dualidad entre exterior e interior, parece clave en el entendimiento de consciencia y aparece en otros autores que ya hemos visto en este blog, como Jun Tani, y, seguramente aparezca repetidamente en el futuro. 


Conclusiones


Los autores apuntan hacia el final del artículo la idea de partir de un entendimiento del funcionamiento neurológico de los seres vivos en el sentido de llegar a entender cómo soportan esos cinco axiomas entendiendo que, actuando así, se pueden llegar a obtener modelos computacionales, es decir, por lo que a este artículo concierne, robots conscientes.

¿Sucederá así?

Desde luego, de momento no creo que estemos en condiciones de afirmar que sea imposible (ni tampoco lo contrario) y, en cualquier caso, creo que se pueden conseguir, estoy seguro de que se conseguirán, avances tanto en el propio entendimiento de la consciencia humana, como en la consecución de máquinas (robots) más inteligentes, sean conscientes (que parece difícil ahora mismo) o no.


miércoles, 16 de noviembre de 2022

El elusivo objetivo de la consciencia robótica. Concepto y axiomas.

Uno de los objetivos finales, o al menos más avanzados, de la robótica cognitiva sería el alcanzar la consciencia ('consciousness') en los robots.

No está claro que sea éticamente deseable ni tampoco técnicamente viable (desde luego, ahora mismo parecemos estar muy lejos de ello) conseguir la consciencia robótica , pero más allá de esa deseabilidad y esa viabilidad, hay un elemento previo que hace difícil el alcanzar esa consciencia: el propio concepto de lo que es la consciencia. 

Y si no sabemos lo que queremos conseguir, en qué consiste y qué la caracteriza, parece muy difícil alcanzarla salvo que esta consciencia sea un fenómeno emergente, no intencionado, de otros desarrollos cognitivos avanzados (algo que subyace a algunos de los miedos asociados a la super-inteligencia y la presunta singularidad).

En un post futuro hablaré de algunos planteamientos y puede que avances en materia de consciencia robótica pero en este, simplemente, me voy a detener en el problema en sí mismo: qué es  la consciencia y qué la caracteriza.

Y para hacerlo utilizo como base, como en muchos de los últimos artículos, las aportaciones del  libro 'Cognitive robotics' editado por Angelo Cangelosi y Minoru Asada y en este caso concreto, en el capítulo que firma Antonio Chella de la Universidad de Palermo.


¿Qué es la consciencia? Los enfoques experiencia y funcional


Antonio Chella
Por qué la búsqueda de la consciencia es difícil, tecnología aparte, es sencillo de entender y Chella nos lo deja claro nada más empezar:


There is no accepted definition of consciousness so far

Así que, si no sabemos cuál es el objetivo que queremos alcanzar, si no estamos de acuerdo en qué es la consciencia pues, bueno, es difícil conseguirla o al menos, estar seguros de haberlo conseguido.

Nos comenta Chella, no obstante, la existencia de dos grandes enfoques principales: el enfoque experiencial y el enfoque funcional.

En el enfoque experiencial asignamos consciencia a 'cosas' que tiene experiencias visuales, sensaciones corporales, imágenes mentales y emociones o, como afirma Thomas Nagel en su famoso 'What is it like to be a bat?' y recoge Chella, cuando el sujeto experimenta que existe 'algo' que es ser ese propio sujeto. 

En el enfoque funcional, más que sensaciones, los elementos conscientes exhiben algunas capacidades o funciones como que procesan la información disponible, son conscientes ('aware' no 'conscious') de sí mismos, disponen de un modelo de sí mismos y de su entorno, generan un discurso interno y se relacionan mediante interacciones sensomotoras con el exterior.


Axiomas para una consciencia


En el capítulo citado, Chella hace un breve recorrido histórico de los trabajos en materia de consciencia robótica, en los que no me detendré ahora, y también en algunos trabajos y experiencias procedentes de la neurociencia. A lo mejor vuelvo a ellos, pero ahora, manteniendo la intención de este post de revisar cómo se intenta caracterizar la consciencia, me detendré a mencionar los cinco axiomas que Igor Aleksander propuso en 1992 como aspectos a verificar para concluir que un organismo es consciente. Son los siguientes:

  • Aprendizaje: Un organismo que no aprende, no puede ser consciente

  • Estado interno: Un organismo consciente posee un estado interno que representa el mundo exterior

  • Atención al estado: Un organismo consciente es capaz de prestar atención a ese estado interno

  • Acciones: Un organismo consciente es capaz de generar estados internos relacionados con entradas externas y generar acciones adecuadas

  • Predicción: Un organismo consciente es capaz de predecir eventos externos mediante desarrollos controlados de su estado interno

Aunque quizá eche en falta alguna mención al estado interno que representa al propio organismo, no solo a su entorno, este planteamiento de Aleksander me parece muy interesante porque recoge de forma muy clara características que deseamos, enlaza muy bien con el concepto de agente inteligente que se maneja en inteligencia artificial y robótica y aproxima a una implementación real, no a una mera especulación.


Conclusión


Todavía 'hay mucho que trillar', muchos que investigar y consensuar a nivel de filosofía, psicología y neurociencia para tener claro qué es la consciencia en seres vivos y especialmente humanos y también mucho que trabajar para conseguirla en una máquina, en un robot, y eso siempre suponiendo que sea algo deseable y alcanzable.

De momento, ahí dejo algunas de las ideas existentes y en futuros artículos veremos alguna idea de cómo se avanza en este campo en el caso de robots e incluso el planteamiento de alguna prueba de consciencia.



martes, 15 de noviembre de 2022

Computación cuántica aplicada con Jack Hidary

'Quantum Computing. An Applied approach' es una introducción al mundo de la computación cuántica, una introducción que se hace con el objetivo declarado de ser de naturaleza práctica y cercana a las implementaciones, soluciones técnicas y aplicaciones realmente existentes.

El libro, de mediana extensión, se estructura en quince capítulos agrupados en tres partes, aunque hay que decir que la última parte (que comprende cinco capítulos) es más bien una serie de anexos sobre fundamentos matemáticos que se emplean en las dos partes anteriores. En cualquier caso, esa distribución por partes y capítulos es la siguiente:
  • 'PART I - FOUNDATIONS:' Aporta las definiciones y conceptos básicos de la computación cuántica, abarcando cuatro capítulos:

    • 'Chapter 1 - Superposition, Entanglement and Reversibility:' Un capítulo dedicado a los conceptos más básicos, y en el fondo más conocidos, o al menos renombrados, de la computación cuántica. Así, se define ordenador cuántico, se explica la superposición y el entrelazamiento ('entanglement'), se trata la regla de Born y la ecuación de Schrödinger y, finalmente, se aborda el problema de la 'fisicalidad' y la reversibilidad.

    • 'Chapter 2 - A Brief History of Quantum Computing:' Un brevísimo recorrido histórico que finaliza con los criterios para un ordenador cuántico aportados en 1996 por David DiVicenzo.

    • 'Chapter 3 - Qubits, Operators and Measurement: ' Un importante capítulo que comienza con la definición de QuBit, explica los operadores cuánticos básicos, tanto unarios como binarios, y explica también la esfera de Bloch.

    • 'Chapter 4 - Complexity Theory:' Se adentra en el algo farragoso mundo de la complejidad algorítmica. Recuerda la notación O, repasa la complejidad de algunos algoritmos en el tiempo y luego pasa a identificar las clases de complejidad. Finaliza con la tesis de Church-Turing.

  • 'PART II - HARDWARE AND APPLICATIONS: ' Una segunda parte, bastante más extensa y compleja que la anterior, en que se centra en la implementación hardware y sobre todo software de la computación cuántica, en técnicas, algoritmos y aplicaciones. Comprende seis capítulos, a saber:

    • 'Chapter 5 - Building a Quantum Computer' Un capítulo de naturaleza, digamos, física, que nos acerca a algunas aproximaciones para la implementación de computadores cuánticos. Tras aportar una checklist de elementos a valorar, repasa algunas técnicas como son átomos neutrales ('neutral atoms'), resonancia magnética nuclear (NMR, 'Nuclear Magnetic Resonance'), Nitrogen-Vacancy Center in Diamond, fotónica, Spin QuBits, Qubits superconductores, Topological Quantum Computation (TQC) e ión atrapado ('trapped ion').

    • 'Chapter 6 - Development Libraries for Quantum Computing Programming:' Tras la incursión anterior en técnicas físicas y de hardware, en este se vuelve la mirada hacia el software, revisando las librerias existentes para el desarrollo. Se revisan brevemente Cirq de Google, Qiskit de IBM, Forest de Rigetti y el Quantum Development Kit (QDK) de Microsoft. En el resumen se mencionan también algunas otras librerías en C++ y la posibilidad de usar capacidades de computación cuántica en los grandes proveedores de la nube como Amazon AWS o Microsoft Azure.

    • 'Chapter 7 - Teleportation, Dense Coding and Bells' Inequality:' Explica algunos fenómenos relacionados con la transmisión de información. Comienza explicando el curioso fenómeno de la teleportación, la transmisión a distancia y de una forma segura de la información de un qubit. Luego explica la codificación superdensa ('superdense coding') que permite transmitir bits tradicionales a través de un único qubit. Y finaliza con el test de desigualdad de Bell.

    • 'Chapter 8 - The Canon: Code Walkthroughs:' El Canon es un conjunto de algoritmos de computación cuantica. El capítulo revisa el algoritmo de Berstein-Vazirani (determinación de la naturaleza de una función booleana de caja negra), el problema de Simon (determinación de la periodicidad de una función), la transformada de Fourier cuántica (descomposición de una función en componentes armónicas), el algoritmo de Shor (criptografía) y el algoritmo de búsqueda de Grover (búsqueda). De todos ellos se aporta el circuito cuántico y código.

    • 'Chapter 9 - Quantum Computing Methods:' Muestra una serie de algoritmos que se pueden implementar con procesadores NISQ. Explica 'Variational Quantum Eigensolver' (VQE) que permite determinar los autovalores para llegar a un Hamiltoniano, simulación cuántica en química, 'Quantum Approximate Optimization Algorithm' (QAOA) enfocado a problemas de optimización generales, Machine Learning sobre procesadores cuánticos, 'Quantum Phase Estimation' (QPE) para la determinación de autovalores de operadores unarios, resolución de sistemas lineales, generación de números aleatorios, recorridos cuánticos ('Quantum Walks'), 'Quantum Singular Value Transform' (QSVT) representación de algoritmos cuánticos mediante matrices y Descuantización. Se trata de un capítulo largo y complejo con abundancia de matemáticas y de código.

    • 'Chapter 10 - Applications and Quantum Supremacy:' Finaliza el cuerpo principal del libro con este capítulo, un poco 'collage' y que incluye un muy breve recorrido por algunas aplicaciones de la computación cuántica, un abordaje de la idea de la supremacía cuántica y una explicación de la importancia y técnicas para la corrección de errores en computación cuántica.

  • 'PART III - TOOLKIT: ' Una tercera parte que es casi una serie de anexos sobre aspectos matemáticos de la computación cuántica. Incluye cuatro capítulos:

    • 'Chapter 11 - Mathematical Tools for Quantum Computing I:' Repasa los aspectos matemáticos más básicos como el ágebra lineal, matrices, tensores, teoría de conjuntos, transformaciones lineales y estructuras algebráicas hasta llegar a los espacios vectoriales.

    • 'Chapter 12 - Mathematical Tools for Quantum Computing II:' Avanza algo más en aspectos como el uso de matrices como operadores, el cálculo y significado de los autovalores, operadores y espacios de Hilbert.

    • 'Chapter 13 - Mathematical Tools for Quantum Computing III:' Vuelve a aspectos matemáticos más populares aunque también de interés para la computación cuántica como son las funciones booleanas, los logaritmos y la fórmula de Euler.

    • 'Chapter 14 - Dirac Notation' Explica la notación de Dirac, tan omnipresente en computación cuántica, y aborda vectores, operaciones entre vectores, productos tensoriales y funciones de densidad de probabilidad.

    • 'Chapter 15 - Table of Quantum Operators and Core Circuits' Breve listado tabular de referencia de operadores y circuitos cuánticos.

'Quantum Computing. An Applied approach' es un libro interesante y que creo que aspira a ser sencillo, pero lo cierto es que, aunque la primera parte es razonablemente asequible, la segunda es bastante densa y nada fácil de seguir, siendo necesario para un buen aprovechamiento una muy buena base matemática y algo de conocimientos de programación. Eso sí, aunque compleja, esta parte y, en general, todo el libro, tiene el gran valor a su favor de aportar no solo ecuaciones matemáticas sino también implementaciones en código así que, en el caso de especialistas, o de lectores que se lean y trabajen el texto muy despacito, se puede alcanzar una visión muy realista y bastante tangible de lo que es la computación cuántica hoy día.

Jack Hidary

(Fuente: Traducción y ligera elaboración propia de su entrada en Wikipedia)

Jack Hidary
Jack Hidary es un investigador en tecnología y un emprendedor. Es el CEO de la compañía Sandbox AQ de tecnología. Junto con su hermano Murray Hidary, fundó el portal web EartWeb en 1995 que posteriormente adquirió Dice.com.

Hidary ha colaborado con el MIT en una serie de artículos enfocados en el deep learning. En concreto, los artículos tratan de la generalización de las redes de deep learning. Hidary es asimismo autor de 'Quantum Computing: An Applied Approach'.

Nació en el Brookdale Hospital en la sección de Brownsville en Brooklyn y creció cerca de Coney Island. Es el mayor de cuatro hermanos y una hermana. Asistió al colegio en Yeshivah de Flatbush.

Estudió filosofía y neurociencia en Columbia University y recibió una beca Stanley en neurociencia clínica en el National Institutes of Health. Allí se enfocó en los estudios con MRI funcional de la función cerebral y la aplicación de las tecnologías de redes neuronales al análisis y modelado de los datos de imágenes fMRI y la función cerebral.

En 1995, Jack Hidary fundó el portal de información IT EarthWeb junto con su hermano y el emprendedor Nova Spivack. En 1998 salió a bolsa y su oferta inicial fue la de más ingresos en el primer día de la historia del NASDAQ. En 1999, bajo el liderazgo de Hidary, EarthWeb se hizo con el el sitio Dice.com dedicado a la carrera tecnológica. En 2000 el equipo renombró la compañía como Dice Inc y posteriormente como DHI Holdings.

Hidary fue co-fundador de Vista Reasearch en 2001 como una compañía de investigación financiera independiente ayudando a inversores institucionales, atrayendo a expertos en los campos de la tecnología, medios, telecomunicaciones, energía y salud. Vista Reasearch fue adquirida en 2005 por la división Standard & Poor’s de McGraw-Hill.

En 2016 Hidary fundó un grupo de tecnología cuántica en Alphabet Inc. En Marzo de 2022 se segregó como una compañía independiente, Sandbox AQ, con Hidary como CEO.

Jack Hidary ha sido un defensor de las energías renovables. Es consejero de la X Prize Foundation y co-fundador del Auto X Prize, que inspiró el desarrollo de vehículos altamente eficientes en combustible.

Hidary ha sido socio o consejero de numerosos grupos de Nueva York. Ha servido en varios consejos incluyendo el comité consultivo para el National Renewable Energy Lab (NREL) y está igualmente en el cosejo de la X Prize Foundation.

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

Ficha técnica:

AUTOR: Jack Hidary
EDITORIAL: Springer-Verlag
AÑO: 2021 
ISBN: 978-3030832735
PAGINAS: 422

Artículos de este blog relacionados

lunes, 14 de noviembre de 2022

Adquisición de conceptos abstractos por robots

Quizá, una de las más altas cotas en cuanto a complejidad y evolución de la inteligencia sea el manejo de conceptos abstractos, conceptos como la belleza o el conocimiento y también conceptos como los números.

Parece tratarse de una capacidad exclusivamente humana, y una capacidad fundamental para habilitar posibilidades como la creatividad, la memoria de sucesos pasados, la resolución de problemas o el pensamiento acerca del futuro. 

Y si este manejo de los conceptos abstractos parece ser una de las culminaciones de la mente humana, no resulta del todo extraño que la adquisición y el tratamiento por parte de algoritmos y robots de este tipo de conceptos culmine una obra sobre robótica cognitiva como es el caso del libro 'Cognitive robotics' editado por  Angelo Cangelosi y Minoru Asada y al que tanto me he referido en este blog en las últimas semanas.


Conceptos abstractos


En efecto, en el penúltimo capítulo de ese libro, se tratan los conceptos abstractos, en un análisis firmado por Alessandro di Nuovo, material que utilizaré como base de este post. 

Los conceptos abstractos, según nos dice, están incluidos en nuestro lenguaje. En el lenguaje se manejan elementos concretos como por ejemplo, madera o coche, cuya definición y sentido es más o menos comúnmente entendida. Nos dice di Nuovo que en el análisis lingüístico de esos términos se suele utilizar un enfoque de abajo a arriba en cinco niveles: fonético, léxico, semántico, sintáctico y, finalmente, pragmático. Sin embargo, cuando pasamos a los conceptos abstractos, como la belleza o el amor, ese consenso no se produce, y existen variaciones en su entendimiento según individuos.

Di Nuovo nos proporciona la siguiente definición de concepto abstracto:


Higher-order or complex thughts that are not bounded  to a single, perceptually derived  piece of information  and that does not exist at any particular time or place.

 

Esta definición, creo que en el fondo hace mención a tres aspectos:


  • Complejidad
  • Ausencia de ligadura con información percibida
  • Inexistencia en un tiempo o espacio específico.


Conceptos abstractos y robots


Pero, de cara a la relación con los robots cognitivos, me interesa especialmente destacar la no ligadura con información obtenida mediante percepción. Y ello porque es sabido la importancia que se otorga en robótica a la percepción, a la obtención de información del entorno mediante sensores y su posterior tratamiento de una manera más o menos sofisticada.

Por tanto, parece que el manejo y, sobre todo, la adquisición de conceptos abstractos por un algoritmo o, específicamente, un robot, es un problema, digamos, 'especial', que va más allá de la pura percepción y reconocimiento.

Y son esos mecanismos de adquisición de conceptos abstractos en robots lo que, en el fondo, quería comentar brevemente en este post.


Tres hipótesis sobre la adquisición de conceptos abstractos


Alessandro di Nuovo
En efecto, en el capítulo mencionado, di Nuovo, tras definir lo que son los conceptos abstractos, se ocupa de su adquisición.

Y ya nos hace ver que se trata de un problema multidisciplinar, un problema que ha sido y es del interés de disciplinas como antropología, psicología, lingüística o filosofía. Y el autor nos identifica, los tres enfoques o teorías principales principales que se manejan en este tipo de disciplinas: 


  • Basado en metáforas conceptuales: Según esta teoría, las metáforas sirven como una especie de puente entre el concepto abstracto y la percepción sensomotora, propia de los seres vivos... y que también encontramos en los robots.

  • Intermediados por el lenguaje: Según esta teoría, los conceptos concretos anclados ('grounded') en la experiencia se ven aumentados fundamentalmente mediante el lenguaje y la interacción social.

  • Basado en emociones: la teoría más reciente ancla estos conceptos abstractos en la experiencia emocional, una experiencia que, en muchas teorías está imbricada con una percepción, digamos, física.


Implementaciones de conceptos abstractos en robots


A la hora de trasladar esas ideas al caso de robots cognitivos, nos dice di Nuovo que el diseño de robots cognitivos capaces de adquirir conceptos abstractos se basa habitualmente en un enfoque basado en la 'corporeidad' ('embodied') y en anclaje con la experiencia sensorial ('grounded'). Es decir, la adquisición de conceptos abstractos más complejos, parte de lo percibido y sigue con una elaboración posterior.

En esta tarea, nos indica que son particularmente eficaces las redes neuronales recurrentes (RNN, 'Recurrent Neural Networks') y nos cuenta alguna experiencia exitosa usando este tipo de redes y el robot iCub, 

También nos relata alguna experiencia con robots que relacionan los números con el espacio.

En el campo del modelado de emociones en robots, algo que parece estar más 'verde', nos menciona arquitecturas como SOAR o LIDA.

Parece, sin embargo, que existe todavía mucho campo de investigación y experimentación. 


Conclusión


La capacidad para adquirir y gestionar conceptos abstractos por parte de los robots, parece abrir las puertas de la robótica cognitiva hacia la emulación de capacidades humanas avanzadas y con ello nuevas aplicaciones y posibilidades. 

Sin embargo, sólo estamos dando los primeros pasos y es que, como en tantos elementos fronterizos de la inteligencia artificial y de la robótica, la tecnología se está intentando enfrentar a problemáticas que no se han llegado a comprender ni siquiera en el cerebro humano por parte de otras disciplinas como la neurociencia o la psicología.

Eso hace el problema más difícil, pero quizá también más retador e interesante.


viernes, 11 de noviembre de 2022

Colaboración y conexión en tiempos de virtualidad con Virginia Cabrera Nocito

'Colabora y conecta' es el segundo libro de Virginia Cabrera, un libro que sigue incidiendo en los aspectos humanos de la relación con la tecnología y en las habilidades y comportamientos más adecuados para la interacción entre personas y equipos a través de dicha tecnología en un mundo absolutamente interconectado y donde cada vez domina más el teletrabajo y la virtualidad. Todo ello en consonancia con esa visión 'tecnoemocional' que constituye el 'mantra' de la autora y que insiste en apostar al mismo tiempo por lo digital y lo humano.

Antes de abordar el contenido propiamente dicho, el libro incluye un prólogo, una suerte de introducción que, significativamente, la autora titula 'haz que las pantallas que te separan del mundo se conviertan en las ventanas que te conectan con él', una identificación del público del libro, una explicación de lo que el lector se va a encontrar y una auto-presentación de la autora.

A continuación, se desarrolla el cuerpo de la argumentación que se estructura en tres partes, claramente diferenciadas, y una llamada final a la acción, tal y como se indica:
  • 'PRIMERA PARTE - CAPACIDADES PARA EL TRABAJO DIGITAL:' Donde la autora identifica las capacidades o habilidades que ella considera clave para este nuevo mundo, no sólo digital sino también interconectado, y con abundancia de interacciones remotas y mediadas por tecnología. En concreto, se identifica y argumenta el siguiente decálogo de capacidades:

    • El control de la emoción
    • La gestión de las emociones
    • La empatía digital
    • La asertividad a través de una pantalla
    • La habilidad para ser breve
    • El trabajo en 'voz alta'
    • El manejo de la asincronía
    • Las destrezas para la personalización
    • La inteligencia contextual y tu capacidad para filtrar
    • La generosidad y tu vocación de servicio

  • 'SEGUNDA PARTE - MICRO HÁBITOS PARA EL CAMBIO:' En lo que quizá sea la parte central del libro, la autora nos presenta comportamientos o, como ella los denomina, 'micro-hábitos' unidos al mensaje que cada una de esas formas de actuar transmite a tus interlocutores. El título de cada micro-hábito es explícito al respecto, como se puede ver en la lista de títulos de los 23 micro-hábitos identificados:

    • 1. Incorpora tus emociones para decir 'soy una persona como tú'
    • 2. Responde en tiempo y forma para decir 'te respeto'
    • 3. Controla tu ansiedad ante la falta de respuesta para decir 'entiendo la asincronía del medio'
    • 4. Sé claro y conciso para decir 'valoro tu tiempo... y el mío'
    • 5. Gestiona la falta de claridad para decir 'quiero estar seguro de lo que quisiste decir'
    • 6. Da la cara para decir 'quiero que me conozcas y me reconozcas'
    • 7. Piensa antes de enviar para decir 'soy impecable con mis palabras y mi tono'
    • 8. Elige bien el canal para decir 'sé priorizar'
    • 9. Llama a las personas por su nombre para decir '¡conectemos!'
    • 10. Mira siempre a los ojos aunque sea por Zoom para decir 'estoy atento y te escucho'
    • 11. Hazte ver y oír para decir 'me importas'
    • 12. No dejes que te ignoren para decir 'yo también soy valioso'
    • 13. Sé tu mismo para decir '¡soy diferencial!'
    • 14. Sonríe para decir '¡Esto me apetece!'
    • 15. Mete a todos en 'el ajo' para decir 'soy transparente'
    • 16. Ten cuidado con las herramientas para decir 'las personas lo primero'
    • 17. Tómate tu tiempo al responder para decir 'me lo tomo en serio'
    • 18. Sé puntual para decir 'te valoro'
    • 19. Hazte respetar para decir 'hasta aquí te dejo llegar'
    • 20. Anticípate a desviaciones y conflictos para decir 'estoy atento'
    • 21. Fortalece la confianza para decir 'te doy garantías'
    • 22. Agradece y halaga para decir 'eres importante'
    • 23. Crea comunidad para decir 'justos siempre llegaremos más lejos'

    El tratamiento de cada micro-hábito ocupa entre tres y cinco páginas. Comienza con una experiencia personal y real de la autora con situaciones que ponen el hábito en contexto, luego argumenta por qué es importante observarlo y finaliza con recomendaciones claras, directas y concisas para la acción.


  • 'TERCERA PARTE - CONECTA Y COLABORA PARA BRILLAR:' Una suerte de corta sección de conclusiones en que la autora realiza una apuesta clara por lo digital pero conviviendo con unas organizaciones más humanas, empáticas y cálidas, y donde aporta los últimos consejos.

  • 'Y POR ÚLTIMO... ¡PONLO EN PRÁCTICA!:' Una llamada a la acción que acompaña con unas sencillas fichas por cada micro-hábito para que el lector pueda anotar y seguir los aspectos que le interesa desarrollar por cada uno de los 23 micro-hábitos vistos en la segunda parte.

'Colabora y conecta' es un libro claro, sencillo y directo. Un libro que se lee 'de un tirón', que nos enfrenta a situaciones que nos resultan absolutamente familiares y reconocibles y nos aporta multitud de consejos e ideas, siempre con ese estilo tan cercano y orientado a la acción de Virginia.
 

Virginia Cabrera Nocito


(Fuente: Elaboración propia a partir de su perfil en LinkedIn y otros materiales)

Virginia Cabrera Nocito
Virginia Cabrera Nocito se define como especialista en Transformación Digital Tecnoemocional, mentalidad y actitudes digitales y en ese campo actúa como mentora, formadora y divulgadora.

Es fundadora y CEO de 'Cultivando Mentes Digitales' desde donde presta sus servicios de formación y mentoring.

Además de proporcionar sus propios programas de formación, colabora como docente en entidades como UNIR (Universidad Internacional La Rioja), Universidad Nebrija, etc

Es además co-fundadora del Podcast 'Caminos de knowmad' que trata de temáticas relacionadas con los trabajadores del conocimiento y 'freelances' y co-fundadora del blog 'Balcon40' sobre actitud digital, además de colaborar en otros blogs como Think Big Empresas de Telefónica.

Anteriormente, trabajó en Telefónica durante más de 20 años habiendo pasado por Terra Mobile, Telefónica Móviles y Telefónica Empresas. En su etapa en Telefónica Empresas trabajó en el desarrollo del negocio TIC para PYMEs y actuó como especialista en Transformación Digital

Virginia es Ingeniero de Telelecomunicación por la Universidad Politécnica de Madrid.

Puedes conocer más de la autora visitando su perfil en LinkedIn o siguiéndola en Twitter donde se identifica como @vcNocito.

Ficha técnica:


AÑO: 2021 
ISBN: 978-8409360093
PAGINAS: 166

miércoles, 9 de noviembre de 2022

Mi Actividad: Lanzo 'The robot notes', un proyecto para profundización en conocimiento y difusión sobre robots avanzados

Pongo en marcha 'The robot notes', un proyecto que venía acariciando desde hace ya varios meses y al cual, por fin, he podido hacer hueco en mi agenda, últimamente bastante llenita.

¿En qué consiste?


¿Qué es 'The robot notes'?


Bueno, el resultado tangible de 'The robot notes', va a ser una serie más o menos larga de vídeos cortos (del orden de cinco minutos o algo menos cada uno) en que voy a ir desgranando diferentes aspectos sobre robots.

Si en mi último libro, 'Robots en la sombra' me concentraba en los robots software (robots RPA, robots conversacionales y trabajadores digitales, principalmente), en 'The robot notes' abarco todo tipo de robots, hardware y software, industriales y de servicio, incluyendo alguna especie 'atípica' de robots como los vehículos autónomos, aunque, eso sí, lo que más me interesa son los robots cognitivos avanzados y, muy especialmente, los robots sociales y humanoides, y puede que ese sesgo se note ligeramente en el contenido de los vídeos. 


Una perspectiva multidisciplinar


Un firme propósito que tengo con este proyecto, como en gran parte de mi actividad intelectual, es una visión amplia y multidisciplinar, que concreto en seis áreas:


  • Conceptos
  • Tecnología e ingeniería
  • Capacidades cognitivas
  • Human-robot Interaction (relación robots-personas)
  • Aplicaciones y casos de uso
  • Ética de los robots


Algunos retos


'The robot notes' supone para mi algún reto y alguna actualización.

El primer reto, aparte, por supuesto de captar una atención lo más amplia posible, es el mismo que me propongo con mis libros, mis clases e incluso este blog: lograr transmitir ideas, algunas complejas, de la forma más sencilla, pedagógica y amena posible. En este caso, no es poco reto.

Otro reto, no menor es abarcar todo lo que quiero abarcar. La multidisciplinariedad es preciosa y motivadora...pero difícil.

Además, voy a experimentar comunicando en inglés. Esto, quizá, sea para mi lo más difícil de todo ahora mismo. Para mi las ideas, los conocimientos y la palabra son temas muy importantes que me gusta manejar bien y hacerlo en un idioma que no es el propio es una dificultad( y no nos vamos a engañar...tampoco es que yo sea bilingüe). Es más difícil expresar matices, o ser ameno y pedagógico en tu segundo idioma... pero lo voy a intentar. Y esto puede ser la semilla de nuevas incursiones en Inglés con la idea, declarada, de temer un mayor alance.

Finalmente, he querido mejorar algo mi equipo de grabación y edición, un equipo y unas herramientas que siguen siendo relativamente modestas pero que he mejorado algo.

Y finalmente, y aunque quizá sea lo mas fácil de todo, he tenido que aprender a hacer algunas cosas nuevas con los equipos y herramientas que uso como, por ejemplo, generar subtítulos en vídeos YouTube.


Los objetivos


¿Los objetivos? 

Algunos derivan de lo explicado más arriba pero diría, en primer lugar, y de cara a mi público actual y posible público potencial, llegar lo más 'lejos posible' y difundir conocimiento sobre la robótica. La verdad, me parece una disciplina tan alucinante, en todos los sentidos, no sólo el tecnológico (que también)  que a veces me cuesta entender cómo no atrae a más personas, al menos a nivel de curiosidad.

Pero también tengo objetivos para mi. Aunque externamente se vea 'solo' como una colección de vídeos para mi es una profunda labor de investigación y de estructuración de conocimiento en un campo que me apasiona.

Siempre he dicho que la mejor manera de aprender es enseñar, en este caso divulgar. Llevar a cabo 'The robot notes' va a suponer para mi, seguro, aprender mucho más sobre robótica y sobre inteligencia artificial. Y probablemente eso sea lo mejor de todo.

Como explicaba no hace mucho en el episodio 'El viaje intelectual del knowmad', del podcast 'Caminos de knowmad' en que colaboro, una necesidad, pero también un placer, para el trabajador del conocimiento es avanzar en sus propios conocimientos. Pues bien, 'The robot notes' para mi es, en cierto sentido, una forma de avanzar, una etapa más de mi propio viaje intelectual.

'The robot notes' y el aprendizaje que traerá consigo me permitirán, además, aportar más, al menos eso espero, a OdiseIA (Observatorio del Impacto Social y Ético de la Inteligencia Artificial), organización de la que soy, precisamente, y no es casualidad, director del área de relación robots-personas.

Y quizá, eso solo quizá, publicar sobre esta temática me abra nuevas posibilidades profesionales, en comunicación, docencia o publicación alrededor de las materias de que aquí voy a tratar. Eso sería ya 'la guinda'. 


La bienvenida


Voy a intentar, no sé si siempre lo voy a conseguir, ir creando un vídeo nuevo cada semana y así durante un tiempo que, probablemente, se acerque a un año.

De momento, hoy publico el primer vídeo, que es sólo un vídeo de bienvenida que explica algunas de las cosas que acabo de contar. Este es el vídeo:




Y mañana Jueves 10, publicaré el primer vídeo con contenido propiamente dicho.


Dónde encontrar 'The robot notes'


Anunciaré cada vídeo nuevo en mis medios sociales habituales: LinkedIn, Facebook, Instagram y Twitter pero el conjunto de vídeos se encontrarán en mi canal YouTube.

Y, sobre todo, el conjunto ordenado de vídeos van a estar en un micrositio que acabo de crear, colgando de mi página oficial y al cual se puede acceder mediante un dominio propio: therobotnotes.com.

Al principio estará un poco vacío...pero irá creciendo, sin duda.

¿Me acompañas en esta aventura?

martes, 8 de noviembre de 2022

Kubernetes y Docker de la mano de Scott Surovich y Marc Boorshtein

'Kubernetes and Docker. An enterprise guide' es un libro claramente técnico y especializado, que nos explica los conceptos y uso de todo un ecosistema de contenedores, claves en los planteamientos cloud y DevOps actuales, y en cuyo núcleo se encuentran los casi omnipresentes Docker y Kubernetes, especialmente este último, pero que los autores rodean de una larga serie de otras herramientas 'open-source'.

El libro comprende catorce capítulos agrupados en tres secciones como sigue:
  • 'SECTION 1 - DOCKER AND CONTAINER FUNDAMENTALS:' Presenta las ideas básicas sobre contenedores y Docker. Abarca tres capítulos:

    • 'Chapter 1 - Docker and container essentials:' Tras una muy breve explicación de la utilidad de los contenedores, explica, aunque con no demasiada extensión, algunos conceptos sobre Docker como las imágenes o el acceso a servicios. Y luego ya pasa a detallar aspectos muy prácticos y de tipo 'manos a la obra'. Así, explica cómo instalar Docker, cómo asignar permisos y cómo usar su interfaz de línea de comandos (CLI, 'Command Line Interface').

    • 'Chapter 2 - Working with Docker Data:' Comienza explicando la necesidad de persistencia en el mundo de los contenedores y eso le conduce a dedicar la mayor parte de lo que resta del capítulo a los llamados volúmenes Docker contando cómo se crean, montan, limpian y listan los volúmenes. Finaliza con una sección dedicada a 'tmpfs', un tipo de volúmenes en memoria.

    • 'Chapter 3 - Undestanding Docker Networking:' En la primera parte del capítulo habla de conceptos de conectividad y networking aunque trasladados a Docker. Recuerda ideas sobre los puertos TCP/IP y cómo hacer el 'binding' de servicios a puertos, para luego presentar los drivers de networking en Docker y explicar la idea del 'default bridge'. En la segunda parte explica el uso de comandos para realizar tareas como conectar un contenedor a una red, exponer servicios, exponer puertos, borrar redes o ejecutar un contenedor sin red.

  • 'SECTION 2 - CREATING KUBERNETES DEVELOPMENT CLUSTERS, UNDERSTANDIING OBJECTS AND EXPOSING SERVICES:' Se centra en clusters y Kubernetes. Incluye tres capítulos:

    • 'Chapter 4 - Deploying Kubernetes using KinD:' Un capítulo dedicado al despliegue de clusters Kubernetes locales, normalmente empleados como clusters de desarrollo o demostración, usando para ello la herramienta KinD. Se explican temas de detalle como las imágenes y luego se pasa a los aspectos prácticos de cómo instalar KinD y cómo crear y revisar un cluster. Se añade al final una sección, bastante técnica y detallada, dedicada a contar el uso de un balanceador de carga para Ingress.

    • 'Chapter 5 - Kubernetes Bootcamp:' Un capítulo en que, de una forma práctica, se revisan los conceptos más nucleares de Kubernetes. Primero se cuentan los diferentes elementos de un cluster Kubernetes distinguiendo entre los que se encuentran en el plano de control (API server, la base de datos etcd, kube-scheduler, kube-controller-manager y cloud-controller-manager) y los que se encuentran en los 'worker nodes' (kubelet y kube-cloud-proxy)

    • 'Chapter 6 - Services, Load Balancing and DNS:' Explica la exposición de servicios para su invocación desde el exterior introduciendo elementos avanzados como los repartidores de carga. Comienza recordando cómo funcionan los servicios incluyendo el detalle de cómo se crean y cómo se emplea DNS para resolver nombres. Luego explica los cuatro tipos de servicios (ClusterIP, NodePort, LoadBalancer y ExternalName) y luego se extiende explicando ideas sobre repartidores de carga y detallando tanto los balanceadores de nivel 7 (aplicación) como de nivel 4 (transporte). Finalmente se explica el uso de DNS externos y su integración con el balanceador de carga.

  • 'SECTION 3 - RUNNING KUBERNETES IN THE ENTERPRISE:' Se ocupa del despliegue real de Kuberntes y Docker en la empresa, con mucho foco en los aspectos de seguridad y rodeando a las herramientas principales de todo un ecosistema de herramientas 'open-source' complementarias. Incluye ocho capítulos:

    • 'Chapter 7 - Integrating Authentication into your Cluster:' Trata el tema de autenticación en los entornos Kubernetes. Primero se explica cómo Kubernetes identifica al invocante de un servicio y se introducen las ideas de grupos y cuentas de servicio. Luego se explica OpenID Connect, un protocolo de identidad federada y cómo se configura KinD para interactuar con él. Luego se presenta el mecanismo de impersonación de Kubernetes que no necesita de credenciales ni identidades OpenID y cómo se configura un cluster para usar este mecanismo.

    • 'Chapter 8 - RBAC Policies and Auditing:' Si el capítulo anterior estaba enfocado a la autenticación, este mira más hacia los otros dos mecanismos de la denominada triple AAA, es decir, la autorización (authorization) y audiitoria (audit). Prrimer repasa RBAC ('Role Based Access Control') y dedica bastante espacio a hablar de los roles para luego ver cómo ligar las identidades de una empresa con Kubernetes para implementar ese mecanismo de autorización. Luego se cubre la auditoría, explicando cómo crear una política ('policy') y cómo depurar políticas usando la herramienta 'audit2rbac'.

    • 'Chapter 9 - Deploying a Secured Kubernetes Dashboard:' A través del Dashboard se ilustra lo que los autores consideran un 'anti-patrón' de acceso que utiliza las capacidades 'proxy' o 'port-forward'. Primero se ilustra cómo el Dashbard sabe quién el es usuario y las opciones de autenticación. Se revisan luego los riesgos de autenticación y se finaliza revisando cómo desplegar un Dashboard con un proxy inverso.

    • 'Chapter 10 - Creating PodSecurity Policies:' Si en los capítulos anteriores el foco era securizar las APIs de Kubernetes, en este lo importante es securizar los nodos y con esa idea se abordan las denominadas PodSecutityPolicies (PSPs). Primero se explica en qué consisten estas PSPs y luego se ilustra cómo activarlas y, para finalizar, se revisan algunas alternativas a las PSPs.

    • 'Chapter 11 - Extending Security Using Open Policy Agent:' Con los mecanismos vistos en los capítulos anteriores de esta sección se cubren la mayor parte de las necesidades en materia de autenticación y autorización pero existen algunas casuísticas que quedan fuera. Para abordarlas se utilizan los denominados controladores dinámicos de admisión. En este capítulo se estudia el más popular de ellos: el Open Policy Agent u OPA. Se explica lo que es y cómo funciona incluyendo una descripción de su arquitectura. Se introduce brevemente Rego, un lenguaje para evaluación de políticas y se ilustra su uso para escribir políticas y para su depuración. Se finaliza explicando cómo se fuerza el cumplimiento de las políticas definidas con OPA.

    • 'Chapter 12 - Auditing using Falco and EFK:' En el capítulo se abordan mecanismos y herramienta de cara a la realización de auditoría procesando los logs. En ese caso, se emplea por un lado Falco para generar logos más ricos y el 'stack' EFK que incluye ElasticSearch, Fluent y Kibana para el procesamiento de esos logs. Al final, la mayor parte del capítulo está dedicado a Falco explicando sus principales conceptos, su configuración y su despliegue. Finaliza el capítulo con una descripción del kernel de Falco.

    • 'Chapter 13 - Backing Up Workloads:' Aborda la realización de copias de seguridad para lo que se usa la herramienta Velero. Primero se explican ideas generales sobre los backups de Kubernetes. Antes de entrar en Velero se describe cómo realizar un backup de la base de datos etcd. A continuación se describe MinIO una solución de almacenamiento compatible con Amazon AWS S3. Y luego ya se entra de lleno en Velero, explicando su instalación y confguración, su dashboard. A continuación se explica cómo se utiliza velero para la realización y restauración de backups y el uso de su interfaz de comandos.

    • 'Chapter 14 - Provisioning a Platform:' Como remate, este último capítulo se describe una plataforma completa para el despliegue de aplicaciones basada en lo visto en capítulos anteriores y que incluye el diseño de la 'pipeline', la preparación del cluster, el despliegue de GitLab, el despliegue de Tekton y el despliegue de ArgoCD.
'Kubernetes and Docker. An enterprise guide' es un buen libro pero desde luego no para principiantes. Los autores explicitan, de hecho, que ya presuponen en los lectores los conocimientos básicos de Docker y Kubernetes, aunque hacen una pequeña concesión en el capítulo 5 para hacer una especie de rápido repaso. En cualquier caso, claramente, el público de este libro es un público técnico, principalmente, arquitectos y administradores cloud/DevOps y con al menos medianos conocimientos de las arquitecturas cloud, del concepto de contenedores e ideas sobre DevOps. Sin esa base, la lectura es ardua y quizá de escaso aprovechamiento.

Sin embargo, con el punto de partida adecuado, es un libro que ofrece una visión a un tiempo amplia y detallada, con ejemplos y herramientas muy prácticos y realistas y con mucho foco en todo lo que tiene que ver con los mecanismos de seguridad: autenticación, autorización, auditoría y backup.

Una lectura, pues, bastante especializada. 

Scott Surovich

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

Scott Surovich
Scott Surovich ha estado en el mundo de la empresa durante más de 20 años y es actualmente Global container engineering lead en un banco Global Tier 1, trabajando en estándares sobre diseño y despliegue con Kubernetes, incluyendo el ecosistema que lo rodea. Sus puestos anteriores incluyen el trabajo en otros equipos globales de ingeniería incluyendo Windows, Linux y virtualización. Su experiencia empresarial le ha permitido trabajar con múltiples compañías en sus primeras ofertas Kubernetes, incluyendo Kasten, Reduxio, VMware y Google.

Scott posee las certificaciones CKA, CKAD, y Mirantis Kubernetes. Como integrante de un equipo piloto, fue una de las primeras personas en recibir la certificación Google Certified Hybrid Multi-Cloud Fellow.

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

Marc Boorshtein

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

Marc Boorshtein
Marc Boorshtein ha sido ingeniero de software y consultor durante casi veinte años y actualmente es CTO de Tremolo Security, Inc. Marc ha invertido la mayor parte de su carrera construyendo soluciones de gestión de identidad para grandes empresas, agencias civiles del gobierno norteamericano y sistemas de seguridad pública de administraciones locales. En los últimos años, Marc se ha enfocado en aplicar la gestión de identidad a DevOps y Kubernetes, construyendo herramientas open-source para automatizar la seguridad de la infraestructura.

Marc está certificado como CKAD y se le puede encontrar en los canales slack de Kubernetes contestando preguntas sobre autenticación y autorización.

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


Ficha técnica:

EDITORIAL: Packt Publishing
AÑO: 2020 
ISBN: 978-1839213403
PAGINAS: 526