Codificación para robots: habilidades y lenguajes necesarios


El CTO asesor de KODA, John Suit, analiza las habilidades y los lenguajes que son importantes para los desarrolladores que desean crear software y sistemas para robots modernos.

Los robots vienen en todas las formas y tamaños, pero por lo general, son dispositivos autónomos que operan por sí mismos para ayudarnos a completar una tarea. Si usted es un desarrollador que busca ingresar al creciente campo de la robótica, ¿cuáles son las habilidades adecuadas que debe tener? ¿Qué idiomas deberías saber? En este episodio de Dynamic Developer, vamos a hablar con John Suit, asesorando al CTO de KODA, quien puede responder estas preguntas y más. La siguiente es una transcripción de la entrevista, editada para facilitar la lectura. Puede escuchar el reproductor de podcast incluido en este artículo, ver un video arriba o leer una transcripción de la entrevista a continuación, editada para facilitar la lectura.

Bill Detwiler: Entonces, hablemos de robótica. Hemos visto muchos desarrollos recientemente en 2020. Tenemos el Noticias de Boston Dynamics en torno a Hyundai, buscando adquirirlos. Luego, en el lado positivo de las cosas, el reconocimiento de que la robótica realmente está despegando. Por otro lado, tienes algunos anuncios en noviembre de 2020 sobre Walmart pone fin a una de sus asociaciones con Bossa Nova Robotics. Parece que están sucediendo muchas cosas en el campo de la robótica en este momento. Según su opinión, ¿qué podemos esperar ver en el campo en 2021 y más allá?

Contenido imprescindible para desarrolladores

Traje de John: Estoy de acuerdo, están sucediendo muchas cosas en robótica. En realidad, mi experiencia es en ciberseguridad durante los últimos 20-25 años, pero también en inteligencia artificial descentralizada y grandes sistemas de análisis de información, lo que se vuelve muy, muy importante para la robótica. Cuando KODA se acercó a mí para que echara un vistazo a su perro robótico súper genial, se hizo bastante evidente que las cosas que me interesaban eran las cosas que necesitarías en una plataforma robótica, si esa plataforma va a interactuar con la gente. y va a aprender. Una de las primeras cosas que le pregunté, y un amigo mío es uno de los cofundadores de KODA, y dijo: 'Oye, John, tienes que echarle un vistazo a esto'. Él y yo habíamos trabajado juntos en varias empresas diferentes y él sabe lo que me gusta y lo que no, o con lo que elijo trabajar y lo que no.

Él dijo: 'Tienes que ver a este perro'. Primero, instantáneamente pensé en el video del perro robótico de YouTube Boston Dynamics. Así que le pregunté desde el principio, le dije: '¿Tiene cabeza?'

Bill Detwiler: No es tan espeluznante, ¿verdad?

Traje de John: Instantáneamente tuve visiones de este perro robótico militarizado. Y él dijo: 'No, no, no, no, no, no'. Me envió una foto de él, y es este perro robótico azul metálico, muy lindo, pero muy capaz. Le dije: 'Bueno, ¿para qué los vas a usar? ¿Cuál es la aplicación? Me dijo que la primera aplicación para la que los usarán es para niños con discapacidad visual, para ayudar no solo a aprender de perros orgánicos reales, sino para ayudar a aprender el medio ambiente: estos son verdaderos sistemas de aprendizaje.

Perro robot KODA

Imagen: KODA, Inc.

Entonces, creo que lo que verán en 2021, no son solo los avances en los motores para la marcha de los robots que caminan, que es una de las cosas más difíciles de lograr para un robot. Verá una variedad de sensores que están entrando en juego y que no estaban disponibles. Piense en ello como si el conjunto de cámaras de su aspiradora Roomba fuera VSLAM. Eso es bastante avanzado. Luego tiene sistemas LIDAR que son muy buenos en profundidad y muy buenos para construir una variedad de imágenes para algo. Todas estas cosas, todos estos sensores, sensores de audio, sensores direccionales, entran en juego cuando se habla de robots. Para juntar todo eso y hacer algo con eso, ahora estamos hablando de inteligencia artificial descentralizada. Debe tener un sistema de archivos descentralizado para lidiar con eso: blockchain ha hecho grandes avances en esa área.

VER: Robótica en la empresa (PDF gratuito) (TechRepublic)

Creo que mucha gente escucha blockchain y piensa en moneda digital. Eso es cierto, pero también es una excelente manera de informar a un libro mayor de muchas cosas que están aprendiendo algo, para que puedan compartir información para que todos aprendan a hacer algo. Digamos que tenía un KODA que estaba en la ciudad de Nueva York y estaba ayudando a un niño con discapacidad visual a navegar por las calles y detenerse en las intersecciones y cosas así, y entender cuando suena una sirena, comprender la dirección de una ambulancia que viene y sabe deténgase en la acera. Ese tipo de cosas. Cuando un KODA en Aspen aprende a caminar en la nieve, y luego ese KODA que estaba en Nueva York se va de vacaciones a algún lugar donde haya nieve, por ejemplo, tendrá ese conocimiento porque el otro KODA lo aprendió. Ese es el tipo de cosas que creo que son particularmente interesantes.

Construyendo un robot que comparte información con otros robots

Bill Detwiler: Me encantaría profundizar un poco en eso y hablar sobre las tecnologías que están haciendo que la robótica sea realmente posible de formas en las que no pensamos ni siquiera hace una década, porque creo que la mayoría de la gente piensa en cómo lo hemos conseguido. automatización, lo hemos tenido en las fábricas durante décadas. Entendemos eso. Entendemos cómo la robótica puede funcionar en almacenes y distribución. Entendemos cómo funciona la robótica en drones. Creo que mucha gente también entiende cómo puede haber una relación cliente-servidor entre un robot y la nube. Pero, todavía existe este concepto del que hablaste como computación distribuida y poder hacer procesamiento en los dispositivos. Y luego, no solo compartir esa información en una ubicación central, sino también para que se realice el procesamiento en los dispositivos que luego se comparte con otros dispositivos. Esa parte del sistema general es algo nueva, al menos en el campo de la robótica.

Traje de John: Es muy nuevo. Todo el concepto de inteligencia artificial descentralizada le brinda el beneficio de aprender algo que el resto de los dispositivos, o dispositivos de pares, pueden no tener la oportunidad de aprender, simplemente porque pueden no tener el terreno, o pueden no tener una circunstancia particular. como la gente. Una de las cosas que tienes que hacer desde el principio para lidiar con estas cosas es, obviamente, tienes seguridad. Tienes que dar permiso a qué compartir, qué no compartir. Debe tener infraestructura, datos en movimiento, datos en reposo, todo eso debe ser resuelto. Sin embargo, una vez que tienes todo resuelto, realmente se abre la ventaja de lo que estás diciendo es que ahora no solo puedo compartir las cosas que aprendí, sino que puedo aprender cosas de manera diferente, incluso en entornos similares debido a este concepto llamado efímero. memoria.

VER: Kit de contratación: Ingeniero en robótica (TechRepublic Premium)

Si puedes llevar alguna robótica a este nivel en el que aprenden algo, y luego los obligo a olvidar y a aprenderlo de nuevo, entonces si sigues haciéndolo, terminas con muchas formas diferentes de resolver un problema. Averigua la forma óptima de resolver un problema para cualquier condición dada, que es muy similar a cómo trabajamos. Esa es la idea. Tienes un robot, en este caso, me interesé por un perro robot, que una vez que aprenda a subir escaleras, quiero que se olvide de subir escaleras, porque quiero que razone de otra manera. Quiero que vuelva a razonar de otra manera, y luego otra vez. Entonces lo que obtienes es un perro robot cada vez mejor con el tiempo.

Cuando el perro llega a un punto en el que puede compartir esa información de todo este aprendizaje agregado con otros perros, tienes este conocimiento refinado en ese punto. Tal vez aún no sea sabiduría, pero definitivamente tienes conocimientos que puedes compartir. Eso sucede debido a la capacidad de razonar en el dispositivo. Todo el mundo piensa en motores de reglas y motores de inferencia, pero hay un verdadero razonamiento que puede tener lugar: sucede debido a la variedad de sensores. Obviamente, hay muchas GPU, hay mucha memoria, hay mucha potencia de procesamiento en estos dispositivos y en estos robots, pero los sensores incorporan la disponibilidad de lo que está sucediendo en el mundo real. En algunos casos, más de los que tenemos. Escuchamos y vemos un ancho de banda muy estrecho de la energía que nos rodea. Tienen una apertura un poco más alta. En algunos casos tienen más información, en algunos casos tienen menos. Pero, es la capacidad para ellos de tomar esa información y combinarla y razonar y todo eso, lo que finalmente obtiene algo que realmente puede funcionar bien en múltiples entornos diferentes.

asset-koda-product-for-release.jpg "src =" https://www.techrepublic.com/a/hub/i/r/2021/03/30/39e0738a-d323-459d-aa57-2b622c52f7b6/resize /770x/e8795734f4e2c9f0571a93c8f2faf779/asset-koda-product-for-release.jpg

Imagen: KODA

Bill Detwiler: ¿Qué importancia tiene eso para el desarrollo de la robótica en general? Quiero decir, la robótica debe poder cumplir un propósito específico. Creo que cuando le dices "robot" a una persona, piensan en la versión de ciencia ficción que hemos visto durante generaciones, que se remonta a los autómatas. Pensamos en un robot de propósito general que parece humanoide y puede hacer todo. Y ese no parece ser el camino … Aunque ha habido algunos avances en los robots que se ven de esa manera, pero parece ser que estamos teniendo éxito con robots que tal vez estén más especializados en su apariencia, y las funciones que realizan. ¿A dónde ves que va eso? ¿Qué tan especializados crees que son los robots? KODA es un perro. Parece un perro. Funciona como un perro. Pero estás hablando de un propósito que no es solo para una mascota, ¿verdad?

Traje de John: Así es.

IoT puede ser una hoja de ruta para robots especialmente diseñados

Bill Detwiler: Así que todos hemos visto los juguetes que llamarías juguetes que son perros, que están diseñados para ser entretenidos. Pero de lo que estás hablando es de un uso y un papel de mucho más alto nivel para este dispositivo.

Traje de John: Sí. Tienes razón. Es una plataforma informática de muy alta gama. Y no es solo una plataforma informática, es un motor de razonamiento de muy alto nivel. Digamos que tiene un KODA y necesita recargarse, y lo quiere para una mina de moneda digital, ese es el tipo de potencia de procesamiento del que estamos hablando. Así que, literalmente, le genera dinero mientras se recarga y duerme. Es de ese nivel del que estamos hablando. Y es un buen punto. Robótica especialmente diseñada o incluso dispositivos IoT especialmente diseñados. Quiero decir, recientemente ha habido grandes avances en IoT. Mira lo que pasó en el MIT con su MCU-Net.

Descubrieron una manera, porque tiene recursos tan limitados en dispositivos de IoT, y descubrieron una manera de optimizar el motor, básicamente el espacio de búsqueda y optimizar el motor. Para que no se vea obstaculizado por esa disponibilidad limitada, porque algorítmicamente puede ajustarse a lo que tenga disponible en ese momento. Y creo que lo que descubrirán, o tal vez ya lo hayan descubierto, es que, en última instancia, podrán hacerlo de forma dinámica. Al menos lo que han descubierto es que ahora no tienen que adaptarlo a cada plataforma, lo cual es asombroso.

VER: 5 innovaciones de Internet de las cosas (IoT) (PDF gratuito) (TechRepublic)

Pero creo que también se darán cuenta muy rápidamente de que ahora pueden ajustar sus algoritmos dinámicamente a medida que los recursos estén disponibles o ya no estén disponibles, y para que pueda sintonizarse sobre la marcha. Y ahí es cuando es cuando puede comenzar a acoplar dispositivos de IoT, y obtiene todas estas cosas y todo ese tipo de cosas. En lo que respecta a su punto, sí, creo que verá algunos robots especializados, pero también creo que verá robots que pueden hacer muchas cosas diferentes y que pueden trabajar juntos. ¿Es eso solo posible a través de algún tipo de computación distribuida?

Traje de John: Sí.

Bill Detwiler: ¿Un sistema impulsado por IA que simplemente no era posible en el pasado?

Traje de John: Sí.

La IA es crucial para los robots de próxima generación

Bill Detwiler: Pienso en el primero
Roomba

Tenía eso, que usaba básicamente lógica de errores, en términos de girar tanto, ir hasta que golpees una pared, girar tanto. Y fue sorprendente lo que se puede lograr en ese momento con algunos algoritmos basados ​​únicamente en reglas, ¿verdad? Pero parece que para avanzar al siguiente nivel, eso no será suficiente. Hay mucho que puedes hacer con ese código simple. Necesita un enfoque de IA que está describiendo para realmente pasar al siguiente nivel.

Traje de John: Correcto. Realmente lo haces. Y también necesita una plataforma de transferencia de datos. IPFS y un sistema de archivos planetario son perfectos para eso. Entonces, esto le brinda la capacidad de mover datos y hacerlo de una manera que no tiene que ser necesariamente dirigida desde una fuente o destino en particular, piense en ello como una matriz de almacenamiento en malla para el planeta. No lo mencioné, pero suena a ciencia ficción, sistema de archivos interplanetario, pero realmente es eso. Puede alojar prácticamente cualquier cosa en él, y no tiene que ser específico sobre dónde almacena los datos. Y entonces es ese tipo de cosas, que realmente, creo, lanzarán más dispositivos que se aprovechen de cosas como esa. En lugar de conseguir este enfoque escalonado de las cosas, lo conseguirás, y es bastante emocionante.

Roomba 980 quitando la carcasa exterior "src =" https://www.techrepublic.com/a/hub/i/r/2019/05/21/6734e378-0904-4837-8135-7997a90e493a/resize/770x/f002635ad1c16e2849ae65c0a9fa168d/ roomba980removingshell.jpg

Bill Detwiler quitando la carcasa exterior del Roomba 980

Imagen: TechRepublic / Bill Detwiler

C y C ++ todavía gobiernan el gallinero en muchos robots

Bill Detwiler: Hablemos de adentrarse en el campo de la robótica. Entonces, si estás en TI, eres un desarrollador y estás pensando en la robótica como una carrera, o, 'Oye, esto es algo que veo despegar, en lo que quiero entrar'. ¿Cuáles son las habilidades que buscan empresas como KODA y otras empresas de robótica, que la gente debería desarrollar para encontrar realmente un lugar dentro de la industria?

Traje de John: Específicamente, está el lado físico y está el lado de la informática instruccional. Obviamente, gente que salió de la Web Semántica, gente que salió de sistemas ontológicos. Entendiendo el gran lago de datos, las cosas de la IA también. Pero comprender realmente los motores de razonamiento discretos y los motores de inferencia discretos siempre es una ventaja. Diré que, desde el principio, C y C ++ todavía gobiernan el gallinero, especialmente en dispositivos que tienen recursos limitados. Eso no es necesariamente KODA, porque tiene muchos recursos. Pero para los dispositivos de tipo IoT más pequeños, debe ser eficiente. Y hacemos esto donde somos ultraeficientes con la memoria, somos ultraeficientes con el almacenamiento. Entonces tenemos todo este almacenamiento y memoria disponible para nosotros. Y entonces podemos abstraer lenguajes y cosas por el estilo. Y luego miniaturizamos, y va y viene. Y ahora estamos de regreso y estamos buscando chicos de C y C ++ todo el tiempo con la gente con la que estoy hablando, así que es importante.

VER: Lenguaje de programación C ++: cómo se convirtió en la base de todo y lo que sigue (PDF gratuito) (TechRepublic)

La seguridad importa porque tenemos 100 años de robots de ciencia ficción que superar

Bill Detwiler: Más allá de la miniaturización y la posibilidad de trabajar con recursos limitados, ¿qué tiene de especial la creación de software y la creación de sistemas para robots como KODA?

Traje de John: Creo que una de las cosas de las que nadie habla, pero está cerca de mí porque llevo mucho tiempo en este espacio, es la gente que entiende y obtiene seguridad. Mucho es, ¿cómo lo construyo? ¿Cómo hago para que funcione? Todo eso es genial, pero si las personas tienen miedo de lo que estás construyendo, debes abordarlo desde cero. Debe comprender qué datos se pueden compartir y cuáles no. Necesita comprender los datos en reposo. Debe comprender la protección de datos en tránsito y de datos en movimiento. Es todo eso y entenderlo desde cero. Conseguirlo es una habilidad realmente importante.

Hay muchas personas que se han lanzado a la ciberseguridad en los últimos 10 a 15 años, pero no tantas personas que realmente vivieron y respiraron cuando todo estaba abierto y un problema y cosas así. En IoT y en robótica, es así. Y debe ser consciente de cómo se pueden explotar las cosas. Creo que es una gran habilidad para llevar a la industria de la robótica, y algo que se busca no es solo poder hacer que algo funcione o sea eficiente u optimizado. Se trata de asegurarse de que sea lo suficientemente seguro como para que las personas realmente lo consuman y quieran usarlo. Y no tienes miedo de utilizar la tecnología, eso es enorme, porque tenemos 100 años de ciencia ficción que superar cuando se trata de robótica.

Bill Detwiler: Sí, todo el mundo tiene la imagen del robot útil o del malvado, ¿verdad? Realmente no hay mucho en el medio. Quiero decir, hemos hablado de DevOps durante mucho tiempo. Y no hace mucho, DevSecOps realmente se convirtió en una palabra de vigilancia. Y he trabajado un poco con David Brumley, de Carnegie Mellon y ForAllSecure en torno a eso. Y habla de eso en una entrevista que él y yo hicimos para asegurarnos de que eso esté arraigado en todos los aspectos del proceso de producción, desde el principio hasta la mitad y el despliegue, hasta después. Llevando todo al punto de partida. ¿Cómo se maneja eso con un producto tan integrado a las personas en los consumidores como un perro robot?

Todos tenemos cámaras en nuestras casas estos días, en cierto sentido. Tú y yo tenemos uno en los dispositivos en los que estamos hablando. Tenemos micrófonos con altavoces inteligentes en todas partes. Disponemos de termostatos inteligentes. Contamos con sistemas de seguridad inteligentes. Hemos visto algunos problemas con la privacidad de los datos en los dispositivos de IoT. Pero para mí, algo como KODA con la variedad de sensores que tiene y las interacciones que va a tener con sus clientes es quizás incluso el siguiente nivel por encima de eso, supongo.

VER: Una guía para profesionales de TI para la automatización de procesos robóticos (PDF gratuito) (TechRepublic)

Bill Detwiler: Además, cuando piensas en la naturaleza distribuida del sistema, no es solo, oye, estoy hablando con mi dispositivo. Se está comunicando, esperando una palabra de vigilancia en el altavoz inteligente para hablar con los servidores de Amazon, Google o quien sea, y luego devolver la respuesta. Pero tal vez esté hablando con el KODA de al lado, o tal vez esa información se esté compartiendo, no solo hacia arriba y hacia atrás de una manera, sino que realmente se está compartiendo hacia arriba, hacia atrás, hacia abajo. Como logras hacer eso?

Traje de John: Bueno, obviamente desde cero, debe tener la seguridad más avanzada disponible en términos de protección de datos y datos en tránsito. Pero también hay cosas más sencillas. Lo primero que pregunté cuando me presentaron todo este concepto de un perro robótico fue: "¿Tiene un interruptor físico de encendido y apagado?" Esa fue la primera pregunta que hice, porque así es como pienso, y así es. Entonces dije: 'Está bien, ese es un buen primer paso. Quiero saber que puedes apagar esta cosa y se apagará '.

Es más sencillo que marcar casillas. Para mí, no necesito un dispositivo robótico de seguridad ni un dispositivo IoT. Necesito un dispositivo de seguridad real y bien pensado. Eso es lo más importante. Entonces tiene razón, si tengo una variedad de sensores y están escuchando y procesando y todo eso, necesito poder definir cómo se usan y cómo se mueven esos datos y dónde se almacenan y todo eso. cosas. Y esa es la configuración. Obviamente, hay valores predeterminados y, obviamente, hay diferentes niveles de aceptabilidad, dependiendo de lo que quieras que haga, pero tú decides eso. Tienes la oportunidad de decir: 'Esto es con lo que estoy de acuerdo. Esto es lo que no soy '. En la configuración más compartida, su KODA puede aprender más rápido, pero es posible que eso no le importe. Puede que le importe más no compartir información. Así que realmente es con lo que eres tolerante. Lo más importante es estar pensando en esto cuando comienzas, no pensar en eso como una ocurrencia tardía, porque eso siempre sucede.

Bill Detwiler: ¿Crees que la mayoría de los desarrolladores están pensando lo suficiente en la seguridad? Quiero decir, siempre hay trabajo por hacer en alguna parte, siempre puedes mejorar. Así que no quiero decir 'Oye, hemos llegado a un pináculo y aquí estamos', porque no creo que eso sea realista con nada.

Traje de John: Sí. Creo que los ingenieros de software quieren resolver problemas. Y si el problema es que mi cámara pueda identificar el movimiento y preocuparse por la duración de la batería y cosas así, creo que un ingeniero de software querrá resolver ese problema. Al ingeniero de software se le debe informar parte de la seguridad del problema. Tú no ganas … Para un ingeniero de software, gané cuando resolví el problema. Deben comprender que no ganan hasta que lo haya resuelto de manera segura. Creo que si instrumenta y crea una instancia de eso en su proceso de desarrollo, entonces es una victoria muy gratificante como desarrollador de software, pero es algo que no va a volver que lo que hizo causó todos estos problemas.

VER: Glosario rápido: Robótica (TechRepublic Premium)

Hay un par de empresas de software hoy en día que probablemente no estén orgullosas de su procedencia, y eso es lamentable porque mucha gente trabaja mucho. Si, desde el primer día, se le indicó que se asegurara de que esta parte de usted que resuelve un problema es que usted resuelve un problema que maneja de manera segura todo lo necesario, creo que ahí es donde gana. Y creo que eso debe inculcarse en la cultura, no solo para la robótica, quiero decir, obviamente es para todo. Pero es importante especialmente para la robótica, porque estas cosas se mueven, ven, escuchan e interactúan. Dispositivos de IoT, el mismo problema por las mismas razones que dijiste.

Así que creo que culturalmente, si pensamos más en cómo resolver los problemas con estas cosas en mente como parte de la respuesta, creo que avanzaremos mucho. La gente está empezando a darse cuenta de esto, por cierto. Esta no es una revelación de mi parte. La gente lo está averiguando. Diré que hace 20 años, no muchas personas fuera de la comunidad de inteligencia y las personas que trabajan en entornos hostiles pensaban en estas cosas. Pero ciertamente, al menos, esto es el centro de atención para muchas empresas que ya tenían a sus directores ejecutivos en la portada de los periódicos.

Bill Detwiler: Sí. Ningún ingeniero quiere que su trabajo y su código sean la razón por la que el CEO tiene que pedir disculpas.

Traje de John: Así es.

¿Cuándo estará disponible KODA?

Bill Detwiler: ¿Cuándo podemos esperar que KODA llegue al mercado? Creo que es un prototipo y tienes modelos de preproducción disponibles. Entonces, ¿cuándo lo lanzarán como algo que la gente realmente pueda comprar?

Traje de John: Vamos a anunciar algo muy pronto. Nadie me ha dicho que puedo decir cuándo es, así que no voy a hacer eso. Mantendré ese nivel de seguridad, pero pronto. Piense en los KODA … serán geniales. Y son dispositivos de gama alta, por lo que no estamos planeando un lanzamiento masivo de nada. Estarán disponibles. Oirás de alguien que tiene, tal vez, una especie de cosa. Y la razón es que esta es realmente una plataforma para IA descentralizada. Y queremos innovar la IA descentralizada tan rápido, si no más rápido, que la plataforma robótica. Entonces, si eso significa que no vendemos tantos KODA desde el principio, que así sea. Si eso significa que podemos vender muchos más KODA más tarde con una IA descentralizada mucho mejor, esa es la idea, sacarlos. Pero estarán disponibles.

Bill Detwiler: Supongo que me suena muy similar a otras compañías que han intentado remodelar los mercados, que lanzan un producto que es de alta gama para los primeros usuarios, y luego planean iterar con software, y eso funciona muchas veces. Puedo pensar en una empresa para la que ha funcionado muy bien.

Traje de John: Tiene.

Bill Detwiler: Y eso es lo que te escucho describir. Aún no he visto los precios de los dispositivos, pero imagino que, dada la potencia informática, no estamos hablando de un perro de juguete de 29,95 dólares que compras en tu tienda de juguetes favorita.

Traje de John: No somos.

Bill Detwiler: Este es un dispositivo serio.

Traje de John: Es.

Bill Detwiler: Por lo tanto, es importante que, al realizar ese tipo de inversión, sea capaz de adaptarse, crecer y estar un tiempo con usted. ¿Estoy en lo correcto?

Traje de John: Si absolutamente. Eso es completamente correcto. Sí.

Entrevistas dinámicas para desarrolladores y más



Enlace a la noticia original