Nuestro Blog

La vigésima edición de Developer Economics reveló en su estudio que JavaScript es el lenguaje de programación más popular con bastante diferencia, casi 14 millones de desarrolladores a nivel mundial (de 24,3 millones activos) frente al resto. Asimismo, se destaca a dos lenguajes de programación Rust y Lua que, a pesar de ser aún desconocidos, han sido los que más han crecido en los últimos 12 meses. Por este motivo, queremos ahondar más en Rust, un lenguaje de programación que además de su reciente crecimiento, grandes empresas como Facebook y Microsoft están interesados en él.

Antes de desglosaros qué ventajas posee este lenguaje de programación de sistemas de código abierto, veamos brevemente un poco cómo fue su origen. Rust nace gracias a Mozilla Firefox en el año 2006, de la mano de Graydon Hoare, quien buscaba un lenguaje que permitiese escribir un código tan rápido como C o C++, eliminando los inconvenientes con el recolector de basura (garbage recollector) con el fin de evitar los problemas derivados de la gestión de memoria. Rust comienza a evolucionar gracias al impulso de Firefox y de un gran número de contribuidores de la comunidad. Sin embargo, debido a algunos problemas de capital de la compañía para asumir el proyecto, los responsables de Rust deciden independizarse creando una fundación homónima. Así nace la Fundación Rust en 2010, una nueva organización sin ánimo de lucro cuyo objetivo es dirigir y apoyar el desarrollo del lenguaje de programación Rust y su ecosistema. En la actualidad, Rust está financiada por grandes entidades como Amazon AWS, Microsoft Azure, Google Cloud, Facebook y, desde sus inicios, Mozilla Firefox.

¿Qué ventajas vienen de la mano de Rust?

Interoperabilidad fácil y segura de Rust con C++

Existe una gran cantidad de código C++ que es necesario para comunicarse con los sistemas de back-end en los que se basan los servicios. Por lo que es necesario que los desarrolladores puedan utilizar estas bibliotecas de forma segura y sencilla sin sacrificar los beneficios que ofrece Rust. Además, si se desea ver los componentes de Rust integrados con los binarios de C++ más grandes, se necesita una interoperabilidad inteligente en tiempo de ejecución en código asincrónico.

Asegurar una excelente gestión de memoria

Tal como hemos comentado antes, Rust  garantiza la seguridad de la memoria sin un recolector de basura. Si se llena una memoria, se produce un error en el sistema y, por lo tanto, una brecha que puede ser explotada. Un «garbage recollector» asegura que los objetos innecesarios desaparezcan de la memoria pero, claro está, esto hace que la ejecución del cogido se ralentice. Sin embargo, Rust somprueba si puede haber errores en la memoria en tiempo de compilación por lo que el recolector de basura se queda obsoleto.

Alta velocidad y lenguajes de alto nivel. No afecta al rendimiento.

Al igual que Co C++, el lenguaje Rust está muy cerca del hardware, lo que garantiza una alta velocidad. Adicionalmente, gracias al compilador de este, se cumplen convenientemente las garantías de seguridad del resto de las validaciones que conllevan que este lenguaje sea eficiente y seguro. Si te preguntas si estas sólidas medidas de seguridad provocan una bajada del rendimiento, la respuesta es que no.  Esto se debe, como hemos dicho, a la ausencia del recolector de basura pero también debido a que Rust permite programar de manera abstracta sin afectar el rendimiento.

Fácil uso

Por último, tanto los programadores con menos conocimientos, como los profesionales, pueden aprender a utilizar Rust rápidamente. En términos de uso, el lenguaje apenas difiere de las alternativas más conocidas. Una gran ventaja es su elaborado sistema de emisión de mensajes de error: donde otros lenguajes de programación solo generan avisos crípticos, Rust proporciona consejos aplicables para solucionar los errores.

¿Quieres aprender más de Rust?

Rust cuenta con una excelente documentación en su web oficial con recursos totalmente guiados, diversos ejercicios a modo de ejemplo en su site oficial en Github y múltiples recursos en su canal oficial en Youtube.

¿Por qué está creciendo tan rápido en el ultimo año?

Probablemente, el apoyo por parte de Facebook como miembro Platinum en la Fundación Rust y el lanzamiento de «Rust for Windows’ por parte de Azure, sean indicadores que existe un interés en la comunidad de implementar este lenguaje de programación.

Lo más significativo de «Rust for Windows» es que, no sólo ofrece un ‘crate’ (componente) que permite al software desarrollado en Rust comunicarse con cualquier API de Windows, sino que lo acompaña de todo un pack de herramientas para desarrollar con Rust en Windows. Microsoft está trabajando para buscar las características de seguridad de memoria de Rust para crear un nuevo lenguaje para la programación de infraestructura segura bajo el Proyecto Verona. La versión para Windows del compilador de Rust está disponible en la web, pero si vamos a usar ‘Rust for Windows’ necesitaremos usarlo conjuntamente con Visual Studio o con Visual Studio Code (acompañado, en este último caso, de las extensiones Rust-Analyzer y CodeLLDB).

 

portada facebook ai

Cuando estamos ante una imagen, los seres humanos reconocemos de forma innata cada uno de los elementos que componen dicha imagen y sus elementos diferenciadores en base al conocimiento que tenemos del mundo que nos rodea. Es por tanto, que podemos reconocer cuando aparece en una imagen un gato o un perro lo reconocemos, así como podemos identificar su raza, color o que posea algo que nunca antes habíamos encontrado, por ejemplo, un perro sin cola y cojo. Así mismo, podemos identificar a un Jack Russel, ya aparezca en la imagen de perfil, de frente, boca abajo, saltando o incluso bañándose en la playa.

Gracias a los modelos de Deep Learning, los sistemas de Inteligencia Artificial pueden interpretar patrones estadísticos entre píxeles y tags, aunque poseen alguna limitaciones para identificar correctamente los objetos en sus muchas variaciones naturales. ¿Es una quitanieves que viene por la carretera? ¿O un autobús escolar volcado de lado?

facbook ia

Fuente: ai.facebook.com Créditos: Figura basada en “Strike (with) a pose: Neural networks are easily fooled by strange poses of familiar objects” de M.A. Alcorn et al. muestra una red neuronal clasificando erróneamente un autobús como quitanieves.

Un humano lo sabría al instante, sin embargo para los modelos de Inteligencia Artificial factores como el color, el tamaño y la perspectiva complican una predicción con éxito. En este sentido, Facebook IA se centra en este desafío para capturar la variación natural e identificar las limitaciones de la solución tradicional, conocida como «desenredo». Asimismo, Facebook IA ha desarrollado recientemente la idea de un operador de cambio «equivariante». Se trata de una prueba de concepto para una solución alternativa que podría ayudar a los modelos de deep learning a comprender cómo un objeto puede variar al imitar las transformaciones más comunes.

El trabajo que está desarrollando Facebook IA actualmente es gran parte teórico, por el momento, aunque tiene un amplio potencial para los modelos de deep learning, en particular, en la «visión de una computadora»: a mayor interpretabilidad y precisión, mejor rendimiento, incluso cuando se entrena en pequeños conjuntos de datos, y mayor capacidad para generalizar. Tal como señalan en blog de Facebook IA: «We hope these contributions bring the computer vision community one step closer to developing AI systems that can better understand the visual world in all its complexity».

El «desenredo y sus limitaciones en el enfoque actual

El «desenredo» se trata de una solución para identificar las variaciones naturales que tiene un objeto. Su objetivo es identificar y distinguir entre los factores de variación dentro de los datos. Los enfoques actuales para solucionar el «desenredo» intentan aprender la transformación subyacente de los datos/objetos en un modelo codificando cada uno de sus factores en un subespacio separado de la representación interna del modelo. Y que su funcionamiento interno resulte más comprensible.

Aplicar el «desenredo» en el ejemplo anterior para identificar a un perro en una imagen, se podría codificar un conjunto de datos de imágenes de perros en subespacios de pose, color y raza. Un modelo desenredado intentaría separar los dos factores de variación, la forma y la orientación del objeto, en dos espacios de representación. Actualmente, el «desenredo» tradicional no logra aislar la rotación en un conjunto de datos de múltiples formas. Es de esperar que la forma resaltada gire, pero debido a que el desenredo puede fallar, la forma permanece fija. Por lo que este enfoque es bueno para identificar los factores de variación en conjuntos de datos rígidos.

Descubrir factores de variación a través de operadores «equivariantes»

Sin embargo, lo que aporta Facebook a esta solución es que, en lugar de restringir cada transformación a un componente de una representación, ¿qué pasaría si las transformaciones pudieran modificar toda la representación? El objetivo de este enfoque es descubrir operadores capaces de manipular la imagen y su representación, un solo operador para cada factor de variación. Estos se conocen como equivariantes.

Estos son desarrollos interesantes porque los modelos equivariantes basados ​​en la teoría de grupos amplían enormemente el alcance de la investigación del desenredo. Los modelos existentes se basan en una supervisión estricta, como comprender a priori las transformaciones de interés y hacerlas cumplir en el modelo. Pero, ¿cómo podemos descubrir las simetrías de un conjunto de datos utilizando una cantidad mínima de supervisión? Las investigaciones anteriores en esta área se han aplicado principalmente a datos sintéticos, por lo que el conocimiento de las simetrías subyacentes podría hacer que los modelos sean más robustos cuando se enfrentan a observaciones inusuales, como un autobús de costado o un perro con un juguete de gran tamaño en la boca.

Los humanos reconocen objetos desconocidos comparándolos intuitivamente con cosas que hemos visto antes. Los modelos se pueden entrenar para que sean equivalentes a las transformaciones de las subpartes de una imagen y, lo que es más importante, los modelos podrían recombinar las subpartes cuando se enfrenten a objetos desconocidos.

Procesamiento de imágenes con modelos IA en España 

Actualmente, un claro ejemplo de sistemas basados en IA con modelos de deep learning para el procesamiento de imágenes y detección de objetos en imágenes es nuestro sistema de Visual Sensing dentro de nuestra plataforma netContent, basada en la gestión inteligente de contenidos. El sistema de Visual Sensing de ITELLIGENT permite de forma rápida, detectar tanto objetos como personas, y es capaz de establecer mediciones en base a las imágenes obtenidas por cámaras de vídeos. En otras palabras, el sistema Visual Sensing consiste en utilizar cámaras de vídeo como sensores para abordar diferentes casos de aplicación.

bg-intro-visual-sensoring-netcontent

Asimismo, netContent permite realizar mucho más. Se trata una plataforma de datos que bajo modelos de Inteligencia Artificial posee diversas funcionalidades para el procesamiento tanto de imágenes como vídeos. Desde buscar «aquello que se dice» en un vídeo hasta buscar y reconocer objetos en imágenes y generar tags. Además de las funcionalidad de búsqueda, permite crear alertas sobre los objetos reconocidos en las imágenes así como detectar similitud de imágenes o en caso contrario, detectar duplicaciones. netContent posee dashboards con visualizaciones de los datos para su análisis, medición y evaluación de los resultados de forma sencilla y rápida.

  ¿Quieres saber más? ¡Escríbenos!

 

 

 

La Unión Europea ha alcanzado un acuerdo sobre el paquete de recuperación y el presupuesto 2021-2027 que contribuirá a la reconstrucción europea tras la pandemia del coronavirus y apoyará la inversión en transición ecológica y digital. En el Consejo Europeo del pasado mes de julio 2020 se acordó un paquete global de fondos europeos de 1,82 billones de euros, que abarca el nuevo Marco Financiero Plurianual (MFP), el Fondo de Garantía del BEI y medidas extraordinarias agrupadas en el Plan Europeo de Recuperación (Next Generation EU).

El Fondo de Recuperación Next Generation nace con el objetivo de apoyar proyectos con los requerimientos y condiciones de la Unión Europea, así como los principios de transición ecológica, digital y de reindustrialización.

Este Plan no parte de cero, se inspira y elabora sobre la Agenda 2030 y los Objetivos de Desarrollo Sostenible de la ONU, construye sobre el diagnóstico y trabajo previos, sobre las numerosas medidas normativas y económicas aprobadas en estos meses con el fin de mitigar el impacto de la emergencia sanitaria, y representa la continuación natural del Plan de Choque y del Plan de Reactivación ya puestos en marcha por el Gobierno.

Next Generation EU presenta los programas que canalizarán los fondos de reconstrucción, que descansan sobre tres pilares:

  1. Instrumentos para apoyar los esfuerzos de los Estados miembros para recuperarse, reparar los daños y salir reforzados de la crisis
  2. Medidas para impulsar la inversión privada y apoyar a las empresas en dificultades
  3. Refuerzo de los programas clave de la UE para extraer las enseñanzas de la crisis, hacer que el mercado único sea más fuerte y resiliente, y acelerar la doble transición ecológica y digital.

¿Por qué es importante la digitalización?

La digitalización es sin duda una pieza importante del plan de recuperación, ya que tras la crisis de la COVID-19 está basado sobre dos grandes principios: la inversión verde y la Transformación Digital. En este sentido, la inversión “verde” representa un 37% del total, seguida de la digitalización, con un 33%.

La generalización del teletrabajo provocada por la pandemia supone un punto de partida sobre el que apoyar este impulso de la digitalización. Las estrategias de la UE en el ámbito de de datos e IA buscan impulsar y desarrollar las nuevas tecnologías

  • Crear un único mercado europeo de datos, tanto públicos como privados, permitiendo que fluyan libremente por la UE y entre sectores.
  • Propuestas de la CE para promover el desarrollo de la Inteligencia Artificial (IA) estableciendo las opciones disponibles para maximizar los beneficios y abordar los retos

La digitalización tiene impacto en las políticas de infraestructuras, movilidad, reforma de la administración pública, agenda urbana y rural, ciencia e innovación. Tiene un efecto directo en la modernización y digitalización del tejido industrial y de las pymes de todos los sectores, representando una inversión -sólo en los próximos dos años- de 12.240 millones de euros, el 17% del total de 72.000 millones que el Gobierno de España destinará al Plan de Recuperación, Transformación y Resiliencia de la Economía Española.

La transformación digital en el Retail

La transformación digital del Retail permite la implantación de nuevas tecnologías para la mejora de procesos de gestión, análisis y organización del negocio. En empresas tradicionales que lleven muchos años afianzadas en su sector la transformación digital permite un incremento de la eficiencia y la medición de los resultados con inmediatez.

En empresas de nueva generación permite detectar y ofrecer servicios y soluciones innovadoras que responden a demandas reales del cliente final. Las empresas deben estar alineadas con las nuevas tecnologías, la transformación digital ya no es una opción, es una realidad y debe formar parte de la estrategia y de la filosofía de futuro de cualquier organización.

¿Quién puede acogerse a las ayudas?

Para autorizar las ayudas dedicadas a mitigar el impacto de la COVID-19 de un modo ágil, la Comisión autorizó en marzo de 2021 un Marco Temporal basado en varios artículos del Tratado de Funcionamiento de la UE.

La norma que hace referencia a las medidas frente a acontecimientos de carácter excepcional (107.2.b TFUE) incide en tres puntos relevantes:

  1. El primero indica que las ayudas se autorizan automáticamente si cumplen con unas condiciones concretas.
  2. El segundo, que las ayudas deben ir dirigidas a sectores especialmente afectados por la crisis, como lo son en este caso el turismo, la hostelería, el transporte o la cultura, entre otros.
  3. El tercer punto aclara que los fondos se dedicarán exclusivamente a compensar los daños ya pasados por la pandemia de la COVID-19 y no servirán para paliar daños futuros.

En todo caso, con respecto al programa Next Generation EU, no se excluye ningún sector, pero sí que se incide en la necesidad de que los proyectos susceptibles de obtener fondos europeos deban estar alineados con los cuatro ejes prioritarios de actuación: transformación digital, transición ecológica, cohesión social y territorial, e igualdad. Se materializarán a través de los Presupuestos Generales del Estado, una vez que la Comisión Europea apruebe el Plan de Recuperación, Transformación y Resiliencia (PRTR).

Fuente: Gobierno de España