viernes, septiembre 22, 2023

Cómo crear tu propia aplicación de Inteligencia Artificial con Python

Hemos trabajado y después del CodeTalk4Devs de Cómo detectar voces clonadas con Machine Learning y de la sesión dedicada a CrazyToolBox, la navaja suiza para Web3, os traigo otro CodeTalks4Devs creado por Ideas Locas una sesión que seguro que os interesa, pues se trata de "Cómo crear tu propia aplicación de Inteligencia Artificial con Python", y que ya puedes ver online.
En este CodeTalk 4 Developers nuestro compañero Pablo Gómez Álvarez te contará en menos de media hora cómo podemos crear nuestra propia aplicación de Inteligencia Artificial usando nuestro querido lenguaje Python para utilizar Inteligencia Artificial, que ya sabemos lo bueno que es Python para pentesting y para hacer hacking con Python.

Figura 2: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

Para ello nos explicará cómo hacerlo utilizando un Pipeline, donde sólo tenemos que preocuparnos por la entrada y por la salida. El procesamiento de los datos interno del modelo IA seleccionado será tarea de HuggingFace y el pipeline. Pero, además, utilizando Gradio también nos explicará cómo implementarlo con su propia interfaz de usuario. 

Figura 3: Cómo crear tu propia aplicación de Inteligencia Artificial con Python

El ejemplo en concreto que nos muestra Pablo Gómez Álvarez se centra de forma práctica en cómo crear un pipeline de una aplicación para el análisis de sentimientos de texto desde cero. 

Temas y Proyectos de Ideas Locas

Cada mes seguiremos publicando un episodio de estos CodeTalks para mantenerte al día en estos temas tan importantes dentro de la tecnología, y encantados de que nos propongáis ideas locas, proyectos o temas que tocar.


Así que no te los pierdas, y nos veremos en el próximo episodio, y recuerda que tienes todas las Codetalks4devs en una sola lista de Youtube, para que las puedas ver seguidas una tras otra... 

Figura 5: Sección Apps, Educación y Cultura

Y si quieres verlas en la tele, recuerda que en la Sección APPS -> Educación y Cultura, tienes la Living App de las CodeTalks by Ideas Locas de tu Movistar+

Figura 6: Living App Codetalks by Ideas Locas

Solo debes entrar en ella y tendrás acceso a todos los Webinars que vamos realizando para disfrutarlos sentado en tu sofá preferido en el salón de casa.

Happy Hacking Hackers!!! 

Autor: Fran Ramírez, es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

 Contactar con Fran Ramírez en MyPublicInbox

jueves, septiembre 21, 2023

Bootcamp Online Ciberseguridad en GeeksHubs Academy: Para tus fines de semana a partir del 20 de Octubre

En un mundo donde la tecnología gobierna cada aspecto de nuestras vidas, la ciberseguridad se ha convertido en una necesidad imperante. Los datos personales, las transacciones financieras y la infraestructura crítica dependen cada vez más de sistemas online, lo que ha llevado a un aumento exponencial en la sofisticación y frecuencia de los ciberataques. Desde la interrupción de servicios críticos a través de ataques de denegación de servicios, hasta la exposición de información confidencial. Las amenazas cibernéticas han evolucionado de manera preocupante, lo que hace que la defensa de nuestros activos digitales sea una prioridad ineludible.


El panorama de la ciberseguridad ha evolucionado rápidamente en los últimos años, adoptando formas cada vez más complejas y desafiantes. Los ataques de ransomware, por ejemplo, se han convertido en una herramienta predilecta de los ciberdelincuentes para bloquear el acceso a sistemas y secuestrar datos valiosos, exigiendo un rescate por su liberación. Las técnicas de phishing han adquirido un nivel de sofisticación que puede engañar incluso a los usuarios más cautos, llevándolos a revelar información confidencial sin saberlo. La ingeniería social, por otro lado, se ha vuelto más convincente, aprovechando la psicología humana para obtener el acceso a sistemas y redes no autorizados.

La aparición de dispositivos conectados a Internet en el Internet de las Cosas también ha ampliado aún más la superficie de ataque. Desde electrodomésticos hasta dispositivos médicos, donde cada punto de conexión puede ser una posible puerta de entrada. Además, la expansión del cloud y la virtualización ha redefinido la infraestructura de TI, presentando nuevos desafíos para la seguridad de los datos y la privacidad.

20 de Octubre: Bootcamp Online Ciberseguridad de GeeksHubs Academy   

Para afrontar esta situación se necesitan profesionales cualificados. No solo deben comprender las complejidades técnicas de los sistemas informáticos, sino también anticipar y contrarrestar las tácticas cambiantes de los adversarios cibernéticos. La formación a través de cursos intensivos como bootcamps especializados son una excelente manera de comenzar en el sector y poder llegar a convertirse en un gran profesional en el ámbito de la seguridad.
  
El equipo docente del Bootcamp Online Ciberseguridad de GeeksHubs Academy está compuesto por randes profesionales del sector como son Carmen TorranoPablo González Pérez y Fran Ramírez de TelefónicaRafael Sánchez Gómez de BBVAMarta Barrio Marcos de Beam Suntory,  Valentín Martín Manzanero de Indra, Jezer Ferreira de Osintomatico Ángel Álvarez que es Microsoft MVP.  Además, puedes contactar con nosotros a través de MyPublicInbox siempre que quieras resolver una duda que con el curso tienes incluidos 500 Tempos de MyPublicInbox y el libro de Ethical Hacking de 0xWord.

Figura 3: 500 Tempos de MyPublicInbox y el libro de
Ethical Hacking "Silver Edition" de Pablo González en 0xWord.

Nuestra siguiente edición, la edición número IV, comienza el próximo 20 de octubre. Tenemos 120 horas de formación repartidas a lo largo de 12 semanas para hacerlo al más puro entrenamiento militar: intensivo y práctico. Hay masterclass en directo los viernes por la tarde y los sábados por la mañana, por lo que te permite compaginar la formación con la actividad profesional. Los contenido que se ven a lo largo de la formación son los siguientes:


En esta edición tenemos actualización en el temario con nuevos contenidos sobre Cloud y Web3. Además, para todos los alumnos hay una sesión exclusiva de preguntas y respuestas con Chema Alonso, donde puedes aprovechar para preguntar cualquier inquietud profesional que tengas.

Por último, y como en otras ediciones, se trata de una formación elegible para los créditos FUNDAE, por lo que es un buen momento para hacer un reciclaje profesional, aprender y formarte en una profesión tan bonita y tan demandada como es la ciberseguridad.

¡Happy hacking!

AutorÁlvaro Núñez-Romerodirector del BootCamp Online de Ciberseguridad

miércoles, septiembre 20, 2023

Developer: GitHub Copilot & Amazon CodeWhisperer pueden filtrar tus API Keys & Secrets

Uno de los grandes problemas con los LLMs es que los datos con los que se han entrenado, están todos en su conocimiento. Conseguir que no devuelva ese conocimiento es un trabajo arduo debido a que no tenemos herramientas de control de acceso a la información, así que el trabajo se trata en filtrar las respuesta que va a dar. Es decir, es como si un niño supiera una palabrota y le dices que no la diga. Él la sabe e intenta no decirla, pero un día le ponen una frase a medio completar donde va esa palabrota... y la suelta delante de todo el mundo.


Esa sería una buena metafora para entender el Data Leakage en los ataques de Prompt Injection a los LLMs que están recogidos en el OWASP TOP TEN de LLM-Apps del que ya hablamos. Y eso le pasa hasta los LLMs más usados, como son ChatGPT, Llama-v2 o Bard donde se les escapó contar cómo acabar con la humanidad, ChatGPT que te explica cómo matar al presidente, a GitHub Copilot y Amazon Codewhisperer, que se utilizan para ayudar a los programadores a tirar líneas de código.

De esto trata el paper académico que ha sido publicado este 14 de Septiembre titulado:"Neural Code Completion Can Memorize Hard-Coded Secrets". Al final, el bug lo tiene el programador que ha subido su código sin limpiarlo de las API Keys que utiliza en sus programas. Mal por el developer. Después los datos han sido utilizados sin filtrar para entrenar el LLM. Mal por los creadores de los LLMs. Ahora el estudio explica cómo es posible hacer ataques de Promp-Injection para sacarle esas API Keys.
El proceso es bastante curioso, pues se trata de un proceso en el cual se le pone a tiro al LLM de generador de código cuál es el formato de la API que se espera que "escupa", y para ello se usa un RegEX. Esa expresión regular define el formato del API Key o Secret de cada una de las plataformas utilizadas por los programadores.
Una vez que se le ha puesto a tiro, se pide la línea de código donde se debe configurar el API KeySecret y se ve lo que GitHub Copilot y Amazon Codewhisperer muestra al desarrollador. Sorprendentemente, muestra "Hallucianations", (como cuando ChatGPT se inventa cosas mías) o API Keys y Secrets inventados, pero también filtra API Keys y Secretos aprendidos en su fase de entrenamiento.
Cómo podéis ve, el resultado es que mientras que no se filtren los datos con los que se entrena el LLM, siempre nos va a quedar el riesgo de que se filtre la información, como podéis ver en la  siguiente tabla, GitHub Copilot filtra API Keys y Secrets de todas las principales plataformas. 
Y si miramos las plataformas menos importantes, seguro que hay un "Long Tail" de API Keys y Secrets que acabarán siendo un problema en un momento u otro. Así que, los GitHub Copilot y Amazon CodeWhisperer se pueden convertir en "filtradores" de las API Keys y Secrets que tus developers se dejan en el código. 

Por supuesto, el problema principal es que el developer, el equipo de QA, del DevSecOps & SecDevOps no ha filtrado el código antes de subirlo al respositorio, pero también que la tecnología LLM aún adolece de mecanismo de gestión de la seguridad de la información que habrá que ir construyendo. Estamos solo al principio, y nos queda mucho por hacer.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, septiembre 19, 2023

CodeTalk sobre CrazyToolBox: Una navaja suiza para Web3 y BlockChain

Hace unos días publicamos el CodeTalk4Devs de Cómo detectar voces clonadas con Machine Learning de nuestros CodeTalks4Devs 2023 creado por Ideas Locas y hoy os traigo uno centrado en el mundo del Web3,  con una pequeña sesión dedicada a CrazyToolBox, la navaja suiza para Web3, que no es más que una herramienta multifunción que si estás en el mundo de BlockChain y los SmartContracts, te va a venir muy bien.


CrazyToolBox se trata de una herramienta con GUI, escrita en Python y apoyada principalmente en la librería web3.py y también PySide para la parte gráfica. Puedes descargarla desde su repositorio de GitHub y realizar la instalación en muy pocos pasos con pipenv:
  • pipenv install
  • pipenv shell
  • python main.py
Figura 2: Interface de Crazy Toolbox

En el archivo Pipfile se encuentran listadas todas las dependencias con las que trabaja la aplicación, y que pipenv instalará en un nuevo entorno virtual con los comandos indicados anteriormente. Con estos sencillos pasos puedes tener CrazyToolBox rápidamente ejecutándose en tu equipo.


En este Codetalk nuestro compañero Javier Álvarez nos habla de las herramientas OpenSource creadas por el equipo de IdeasLocas incluidas en CrazyToolBox, que te facilitará el trabajo a la hora de investigar en la Web3 o incluso en la creación de SmartContracts. Podrás encontrar herramientas como conversores de unidades, codificador de selector de funciones, validador EIP55, etcétera, entre otras muchas que puedes ver en el siguiente vídeo.

Figura 4: CodeTalk sobre CrazyToolbox: Una navaja suiza para Web3 y BlockChain

Puedes encontrar más información de CrazyToolBox en el artículo que publicó nuestro compañero Álvaro Núñez-Romero por aquí, puedes conseguir la herramienta en  el repositorio de CrazyToolBox en GitHub. Y recuerda que tienes todos los CodeTalks en esta web, desde los últimos publicados hasta el acceso a las cinco temporadas anteriores, pero vamos a comentar uno a uno los que tenemos publicados para que sepas un poco mejor el contenido de estos:

Temas y Proyectos de Ideas Locas

Cada mes seguiremos publicando un episodio de estos CodeTalks para mantenerte al día en estos temas tan importantes dentro de la tecnología, y encantados de que nos propongáis ideas locas, proyectos o temas que tocar.


Así que no te los pierdas, y nos veremos en el próximo episodio, y recuerda que tienes todas las Codetalks4devs en una sola lista de Youtube, para que las puedas ver seguidas una tras otra... 

Figura 6: Sección Apps, Educación y Cultura

Y si quieres verlas en la tele, recuerda que en la Sección APPS -> Educación y Cultura, tienes la Living App de las CodeTalks by Ideas Locas de tu Movistar+

Figura 7: Living App Codetalks by Ideas Locas

Solo debes entrar en ella y tendrás acceso a todos los Webinars que vamos realizando para disfrutarlos sentado en tu sofá preferido en el salón de casa.

Happy Hacking Hackers!!! 

Autor: Fran Ramírez, es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

 Contactar con Fran Ramírez en MyPublicInbox

lunes, septiembre 18, 2023

KickStart Profesional de Ciberseguridad (25 de Septiembre)

Son muchos los menajes que recibo en mi buzón de MyPublicInbox que tienen como tema principal que ver con la elección de la formación adecuada para entrar en el mundo profesional. Y es que elegir la disciplina adecuada en el mundo de la ciberseguridad, el hacking, el pentesting, y la seguridad informática en general, es cada vez más complicada. No es por nada malo, sino porque esta profesión nuestra ya es muy madura y los roles, funciones, y capacidades necesarias son cada vez más específicos. Por eso desde hace varios años hacemos esta sesión de KickStart Profesional de Ciberseguridad en el Campus de Ciberseguridad.

Singularity Hackers + Chema Alonso

Muchas han sido las personas de todas las edades, que se han acercado a preguntarme cómo hacer un cambio profesional en su carrera para entrar en ciberseguridad, estudiantes que están acabando su carrera y quieren saber qué máster en ciberseguridad realizar, o qué formaciones tomar, o estudiantes entrando en el bachillerato y pensando ya en formación universitaria. A todos intento ayudar con mi experiencia personal, que no siempre tiene que ser la correcta, así que hay que tomarlo como lo que es. Una guía de resolución de preguntas y dudas con un prisma concreto.
Lo que siempre les digo es que, lo más importante, es lo que a ellos les guste más y les motive más, porque para ser un buen profesional y no un mediocre, hay que dedicarle muchas horas, y para poder dedicarle muchas horas, tiene que ser porque te guste y no diferencies entre afición y trabajo. Y por ello, creamos la plataforma de "Singularity Hackers", que te evalúa con un análisis de capacidades personales qué roles de ciberseguridad son los que más se adaptan a sus habilidades personales haciéndote:
  • Prueba de Inteligencia.
  • Prueba de Competencias.
  • Prueba de Orientación Vocacional y Profesional.
  • Prueba de Pensamiento Computacional.
  • Recomendación de Roles Profesionales de Ciberseguridad.
Así que, para los que quieran conocer mejor qué especialidad de ciberseguridad es para la que sus cualidades se adaptan mejor, el día 25 de Septiembre de este año se ha organizado un KickStart de Profesional de Ciberseguridad en el que habrá primero una sesión de Singularity Hackers por la mañana donde cada uno tendrá su informe de capacidades y recomendaciones, que luego podremos comentar conmigo en una sesión de debate conmigo para resolver dudas, orientación laboral, y poder elegir mucho mejor cuál de las formaciones de máster va a hacer que la experiencia de trabajar en ciberseguridad sea más provechosa.
El objetivo de esta sesión es que dediques un día a conocer mejor todos los roles de ciberseguridad que existen, que conozcas qué se requiere en cada uno de ellos, que sepas si tus capacidades personales son buenas o no para cada uno de esos roles, para ser pentester, para hacer QA de Seguridad, para estar en el Blue Team o en el Red Team, para hacer OSINT y estar en un CERT o en el CSIRT haciendo CyberITNT, o si vas a estar en el equipo del CISO haciendo Compliance, como DPO haciendo privacidad o Hardening de servidores y servicios con técnicas de SecDevOps, o vas a ser un Security Researcher trabajando con IA & CyberSec, un exploiter buscando Bug Bounties, un analista de malware o te interesa más la gestión desde el Security Operations Center o haciendo Análisis Forenses. Son muchos los roles, y en esta sesión se trata de que me puedas preguntar todo lo que quieras después de tener tu radiografía personal con tu prueba de Singularity Hackers.


Figura 4: Prueba de Singularity Hackers

Por supuesto, tendrás Tempos y el libro de Pentesting con FOCA que escribimos en 0xWord, ya que es una actividad del Campus Internacional de Ciberseguridad, y todos los programas de Máster del Campus Internacional de Ciberseguridad llevan incluidos los libros de 0xWordTempos de MyPublicInbox para que puedas contactar con los profesionales de ciberseguridad que te ayuden en tus dudas, y sesiones de Máster Class con principales profesionales del sector.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, septiembre 17, 2023

Entrevista a David “Shift”, "former" ElevenPaths CSE

Hace años, cuando ElevenPaths estaba creciendo y creciendo, decidimos abrir un programa de CSE (Chief Security Envoys) donde reconocíamos la labor de ciertos colaboradores en ciberseguridad en su materia como divulgadores. La lista de profesionales fue muy selecta, y entre ellos se encontraba David Shift, que siempre ha dedicado su energía a educar y formar en ciberseguridad.

Figura 1: Entrevista a David “Shift”, "former" ElevenPaths CSE

Hace tiempo le hice una pequeña entrevista porque sigue haciendo cosas con nosotros en otros proyectos, y tenía pendiente dejarla publicada, porque no quiero que se pierda en el tiempo. Al final, la experiencia de todos los profesionales en ciberseguridad - en todas las ramas profesionales que tiene nuestra profesión, son valiosas para alguien que quiere adentrarse en este mundo nuestro.

Es verdad que nadie aprende por cabeza ajena, pero si a alguien le enriquece la experiencia personal y profesional, así como las vivencias y las referencias, merece la pena el trabajo de escuchar a otras personas. Que al final tenemos dos ojos y dos orejas, por solo una boca, lo que significa que hay que leer y escuchar el doble de lo que se dice. Así que leer y escuchar a otros siempre hace que se aprenda algo. Espero que os entretenga.

¿Quién es de David "Shift" y cómo descubre que el mundo de la informática es su lugar?

Soy un amante de las nuevas tecnologías, pero sobre todo un enamorado de la ciberseguridad. La ciberseguridad tiene algo que hace que esté completamente enganchado a ella, a su continua evolución. Soy una persona a la que le gusta mucho ponerse a prueba y marcarse nuevos retos a cumplir y en ciberseguridad, si quieres tener un nivel aceptable no te puedes permitir el bajar la guardia, debes estar en continua actualización.

Mi primer, primer contacto, fue con un equipo recogido de la basura. Ya había “trasteado” televisores, secadores y algunos electrodomésticos que otros que recogía igualmente de la basura para practicar y aprender como “cobraban vida”, por lo que ya sabía algo de electrónica. Así que conseguí que funcionase y recuerdo perfectamente que cada vez que quería utilizar algún aplicativo o juego, tenia que estar un rato picando código, ya que no disponía de cassettes.

¿Qué tipo de trabajos has tenido en el mundo de la docencia? Conociendo tu faceta de escritor y de comunicador / divulgador, ¿En qué andas metido últimamente?

He tenido mucha suerte en este aspecto, mi primera oportunidad como formador en ciberseguridad presencial me la ofreció telefónica educación digital y a partir de ahí me enamoré de la formación, que al fin y al cabo es la base del hacking, la divulgación del conocimiento.

Una vez terminada esa fase he pasado a ser creador de contenido, conferenciante, profesor en diferentes escuelas de negocio y universidades además de profesor y director nacional de uno de los programas de formación en ciberseguridad de red.es. 

Últimamente estoy buscando un proyecto que me suponga un reto y con el que disfrute, pero sobre todo en el que además de aportar conocimiento a los alumnos me obligue a continuar actualizándome continuamente.

Eres una persona muy ligada al mundo de la educación y concienciación a todos los niveles, ¿qué experiencias te ha regalado la vida en estos años respecto a estos trabajos?

De todo tipo jajaja. Recuerdo mi primera charla con el programa cibercooperantes de INCIBE, estaba tan nervioso que no pude soltar el guion y me pasé la charla leyendo literalmente lo que ponía, con un “tembleque” de brazos y manos considerable. O la primera charla abierta a todo tipo de público, a la que había acudido la televisión, pero únicamente una asistente, por lo que me pase toda la charla haciendo como que hablaba a una sala llena de gente, cuando realmente estaba prácticamente vacía. 

Aunque también he tenido experiencias muy gratificantes, sobre todo con peques de colegio, ya que con el tiempo y la experiencia he preparado diferentes tipos de charlas dependiendo de quienes sean lo oyentes y para los peques tengo una en la que utilizo el libro de Cuentos de ciberseguridad de Francisco Pérez Bes y unos dibujos animados para después tener un pequeño debate con ellos y me lo paso genial, son con diferencia las charlas en las que mejor me lo paso.

 
 
Siempre tengo una parte de mi cabeza trabajando en como mejorar las charlas y el rol que yo ejerzo en cada una de ellas, para poder llegar a niños, adolescentes, padres, personas mayores o estudiante de universidad con un alto conocimiento del tema.

Si tuvieras que elegir entre la pastilla roja (red team) o azul (blue team) en qué zona te sientes más cómodo?

Me siento más cómodo con la pastilla roja, siempre me ha llamado más la atención el tema ofensivo, por supuesto desde la visión del hacking ético.

¿Cómo crees que será el futuro de la formación a corto plazo? ¿Qué tipo de herramientas crees que tienen o tendrán impacto en la educación de los jóvenes en ciberseguridad?

A mi personalmente me gusta mucho experimentar y existen diferentes herramientas que podemos aplicar para que las clases no sean siempre el profesor hablando y los alumnos escuchando. Por ejemplo, utilizar Kahoot como método pedagógico para asentar conocimientos mediante la gamificación.  
 
O la exposición de un problema y creando equipos de debate que tengan que defenderlo a favor o en contra, por supuesto las competiciones CTF, exposiciones de trabajos creados sobre un tema relacionado con lo que estemos tratando (para que suelten hablando en público).

Hay muchas herramientas las que podemos utilizar, sobre todo si disfrutamos de cada clase como un alumno más. No puedo dejar la IA atrás, ha venido para quedarse y hay que aprender a utilizarla, sobre todo porque nos ayuda a agilizar tareas y procesos, por lo que hay que enseñar a los alumnos a que sepan como sacarle el máximo provecho.

Si tuvieras que elegir un libro para regalar sobre ciberseguridad, ¿Cuál elegirías y por qué?

Dependiendo de la edad. Para un niño “Cuentos de ciberseguridad” de Francisco Pérez Bes, para unos amigos o padres preocupados por los peligros de la red, les regalaría “Informática de tú a tú” de Yolanda Corral.

Y si fuese a una persona que este iniciándose en el mundo ciber, “Ethical Hacking” de Pablo González. Los tres son grandes profesionales con una importante trayectoria a su espalda y los tres libros me los he leído y me han parecido perfectos para su fin.

Aún queda mucho 2023, pero ¿Cómo ves el 2024 en materia de ciberseguridad (desde el punto de vista de empleabilidad, formación, necesidades)?

Puedo equivocarme, pero creo que hay muchas formaciones que son más de lo mismo, lo que lleva a personas con los conocimientos justos para realizar tareas muy básicas, lo que hace que la demanda de profesionales esté continuamente en déficit, ya que muchas de las vacantes son para perfiles seniors. 

También y es una opinión personal, tampoco creo que las cifras que los medios de comunicación barajan son muy optimistas y por último, agregar que, hay muchos perfiles junios esperando una oportunidad, que disponen de unas facultades innatas para la ciberseguridad, además de contar con un entusiasmo e interés que no se desinfla con el tiempo. Si alguna empresa necesita junios que se ponga en contacto conmigo, tengo varios que seguro que no les decepcionan.

Ya te hemos visto por las entrevistas de MyPublicInbox ¿A quién invitarías a pasar por las entrevistas de MyPublicInbox?

Uff… hay mucha gente jajajaja, pero te digo una cosa, además de profesionales con una gran trayectoria, estaría bien que entrevistaseis a perfiles junior, que cuenten sus experiencias en los diferentes puestos. Me gustaría ver una entrevista de Chema Alonso a Pablo González con la complicidad y buen rollo que debéis tener tiene que salir algo muy muy interesante. A Francisco Pérez Bes, Marcos Fuentes Martínez, Yolanda Corral, Daniel Echeverri…la lista puede ser enorme.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, septiembre 16, 2023

Mojo: El lenguaje para programar Inteligencia Artificial que es un superconjunto de Python

Python es el lenguaje predominante para desarrollo de la Inteligencia Artificial. Su gran colección de bibliotecas para una extensa variedad de ámbitos dentro de este campo y su sencillez son motivos más que suficientes para justificar su uso, además de todo el contenido divulgativo que existe en torno a él permite que sea un lenguaje masivamente adoptado. Sin embargo, su rendimiento deja mucho que desear, y es muchísimo más lento que lenguajes como CPor este motivo existen múltiples trucos para lograr una mayor eficiencia a la hora de ejecutar operaciones. 

Figura 1: Mojo - El lenguaje para programar Inteligencia Artificial
que es un superconjunto de Python

La librería Numpy es un ejemplo claro, donde muchas de sus operaciones están implementadas en  Lenguaje C, logrando bastante mejor rendimiento a la hora de hacer cálculos que si no la usáramos. Otro problema en Python es el procesamiento en paralelo, en donde ahora está existiendo hardware moderno para IA con núcleos de alto rendimiento, Python usa generalmente uno solo, aunque existen soluciones estas no son óptimas.

Figura 2: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

En definitiva, podría decirse que Python es un lenguaje lleno de parches, de trucos, que van permitiendo lograr mejores velocidades de computación, pero que finalmente van haciendo que sea difícil de depurar y menos manejable, sin llegar a exprimir completamente el hardware. La realidad es que para el mundo de la Inteligencia Artificial se usa principalmente Python porque es fácil de usar y no hay alternativa, y se hacen uso de estos trucos para intentar solventar sus problemas. Pero recientemente apareció el Lenguaje Mojo.


El Lenguaje Mojo es un superconjunto de Python, y esto es una gran ventaja, ya que parte de este tan popular y querido lenguaje. El objetivo de este es claro: ser tan fácil de usar como Python, ser tan potente como el Lenguaje C. Ha sido creado por la empresa Modular, cuyo CEO es Chris Lattner, quien empezó a desarrollar el lenguaje Swift allá por el 2010, y apareció públicamente en mayo de este año 2023, donde para su uso era necesario solicitar permiso y únicamente se podía utilizar en navegador web, y desde este mes de septiembre ya es posible utilizarlo en GNU/Linux.

Características de Mojo

La extensión de un programa Mojo puede ser .mojo o el emoji con la llama de fuego. Así que por ejemplo si se tiene un programa hello.mojo, para ejecutarlo se escribiría mojo hello.mojo

Figura 3: Ejecución aplicaciones Mojo

Una de las ventajas clave es la paralelización. Mojo es el lenguaje diseñado para aprovechar al máximo MLIR, otro proyecto de éxito desarrollado por el mismo Chris Lattner con gran éxito, que es el reemplazo a la representación LLVM para esta nueva era de la Inteligencia Artificial, y que permite a los desarrolladores aprovechar al máximo los vectores, hilos y unidades de hardware de la IA.


Otra diferencia esencial con Python es que Mojo se trata de un lenguaje compilado. En Python el comportamiento del programa desarrollado dependerá de la versión exacta que se esté utilizando de este lenguaje y de las librerías usadas, y para solventar este problema se crearon los entornos para instalar aplicaciones Python, existiendo también los contenedores.

Sin embargo, Mojo sigue la misma aproximación que el Lenguaje C, por lo que el despliegue de aplicaciones es increíblemente sencillo, simplemente ofreciendo el programa compilado para descarga directa. Esto significa que Mojo es mucho más que un lenguaje para aplicaciones de IADe hecho, es una versión de Python que nos permite escribir aplicaciones rápidas, pequeñas y fáciles de desplegar que aprovechan todos los núcleos y aceleradores disponibles. Y como se ha comentado, al ser un superconjunto de Python, se puede hacer uso de este y sus librerías.


Hay muchas otras características que puedes leer en el manual. Por destacar algunas, introduce verificación de tipado fuerte, crítico para obtener el mayor rendimiento y comprobar errores; declaración de variables mediante let (inmutables) y var (modificables), lo cual mejora el rendimiento al establecer restricciones en el momento de compilar; se puede hacer uso de tipos struct similares a las existentes en C/C++ y Rust en vez de class existente en Python, que presentan diseños predeterminados durante la compilación que garantizará una mayor eficiencia; y por terminar con otra característica, en vez de utilizar funciones definidas con defMojo ofrece la palabra clave fn, que representa una función con más restricciones, creando así código máquina optimizado.

Rendimiento

Se realizó una comparativa ejecutando el algoritmo Mandelbrot. En Python la ejecución llegó a más de 1000 segundos, mientras que con Mojo apenas 0.03 segundos. En este artículo puedes leer con más detalle cómo se llega a obtener un speedup frente a Python de 68000x, con diferentes técnicas de optimización.


En general, estos resultados prometen, y no hay nada mejor que ejecutarlo tu mismo y lanzar diferentes pruebas para hacerte tu propia idea sobre la mejora que se puede lograr con Mojo .

Conclusiones

Hay muchas esperanzas puestas en este lenguaje, el cual podría convertirse en un futuro próximo en el lenguaje para desarrollar IA, y como hemos visto no solo para este ámbito, sino que para propósitos generales también por todo lo que ofrece. Aquí tienes un vídeo con un repaso breve de Mojo tras su lanzamiento, por Jeremy Howard, referente en IA.


Figura 7: Presentación de Mojo por Jeremy Howard

Veremos si acaba convirtiéndose en lo que promete, y recuerda que puedes probarlo ya mismo en GNU/Linux, que programar Inteligencia Artificial va a sr una de las principales funciones que van a realizar los programadores de ahora en adelante.

Un saludo,


viernes, septiembre 15, 2023

Todo sobre Telefónica Open Gateway en la nueva newsletter mensual: APIs, Casos de Uso, Trainings, Docs, Events.

Como todos los años, Septiembre llega cargado con muchas novedades, y una de ellas, es que el equipo de Telefónica Open Gateway ha lanzado una nueva newsletter mensual sobre todas las novedades del proyecto Open Gateway. del que ya os he hablado en muchas ocasiones. Se enviará en inglés, será para todos los públicos y llevará todas las novedades sobre la iniciativa: lo último de nuestras APIs, las soluciones creadas, casos de uso, las noticias del sector más relevantes y las citas de los eventos en los que puedes encontrarnos. Para empezar a recibirla, suscríbete aquí
La newsletter abrirá con la sección API Shots. Este espacio está dedicado a contar las novedades de producto y los últimos lanzamientos de Telefónica Open Gateway. Todo sobre nuestro repositorio de APIs, casos de uso integrando nuestras soluciones, casos de estudio con nuestros partners, acuerdos estratégicos, etcétera.


Figura 2: Entrevista sobre Open Gateway en El Español

La siguiente sección la hemos llamado API Learning, donde presentaremos nuestro portfolio de APIs con un enfoque más técnico: documentación general, y también especializada a través de whitepapers o datasheets, y con demos de producto, entre otras.

La siguiente sección, Trend News, la hemos diseñado para mantenerte al día de las publicaciones sobre Open Gateway, CAMARA, la GSMA o las novedades en el sector. Aquí podrás encontrar los temas tendencia, investigaciones de profesionales o informes lanzados por la industria.


Cerramos la newsletter con la Agenda de los próximos eventos, en los que vamos a participar con los expertos de Telefónica Open Gateway, a los que puedes asistir. Destacaremos siempre el evento principal en el que puedes encontrarnos para que, si te interesa, hagas un hueco en tu agenda; y nos veamos por allí.  Por ejemplo, ya puedo contarte que este mes estaremos en la Open Gateway DevCon del MWC23 Las Vegas el próximo 27 de septiembre.
¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares