Visual Studio aterrizará pronto en Windows en ARM. Microsoft sólo llega 5 años tarde con la versión nativa

25/05/2022
Artículo original

Visual Studio aterrizará pronto en Windows en ARM. Microsoft sólo llega 5 años tarde con la versión nativa

Microsoft quiere apostar fuerte por la arquitectura ARM. Si, por el lado del hardware, sabemos que la compañía prepara el lanzamiento un PC con procesador Snapdragon destinado a permitir a los programadores desarrollar, probar y depurar las nuevas apps ARM para Windows 11 (el llamado Project Volterra)…

…a nadie se le escapa que hará falta toda una serie de herramientas con las que surtir a dichos equipos: entornos de desarrollo, entornos de ejecución, líneas de comandos, etc. De modo que Microsoft ya ha confirmado el lanzamiento de la versión (preliminar) nativa para ARM de las siguientes herramientas:

Arm Native Toolchain Logos

  • Visual Studio Code: El liviano ?y popular, dada su condición de multiplataforma y multilenguaje? editor de código de Microsoft llega por fin a Windows ARM. Cinco años tarde, sí? pero nunca es tarde si la dicha es buena, dicen.

  • Visual Studio 2022: La versión completa del IDE (entorno integrado de desarrollo, con compilador, debugger, etcétera) de Microsoft, integrado con la plataforma .NET. Han confirmado que la versión para ARM incluirá también el compilador integrado para C/C++ de Microsoft, MS Visual C++.

La versión completa de Visual Studio 2022 estará disponible "en las próximas semanas"
  • Frameworks: El framework .NET (para aplicaciones clásicas y 'modern'), así como en entorno Java de Microsoft, desembarcarán también ahora en Windows ARM.

  • Windows Terminal: La excelente herramienta multi-terminal de Microsoft, un 'must' para cualquier desarrollador Windows que se precie, también se ejecutará en la nueva plataforma.

  • Subsistemas: Aunque el objetivo sea fomentar el desarrollo de aplicaciones para Windows ARM, la mejor forma de atraer a desarrolladores a una plataforma es no limitarles el uso/desarrollo de herramientas para otros SO. Y por eso, Volterra contará también con los subsistemas de Linux y de Android para Windows (WSL y WSA, respectivamente).
"Queremos que crees aplicaciones de IA nativas de la nube. Con Visual Studio nativo para ARM, el soporte de .NET y [el lanzamiento de] Project Volterra a finales de este año, te damos las herramientas que te ayudarán a dar el primer paso en ese viaje"

¿Qué teníamos hasta ahora? ¿Cómo contrasta con lo hecho por Apple?

Hace dos años que Apple lanzó hardware ARM al mercado (con sus alabados M1) y, en el momento de presentar macOS para Apple Silicon (ARM), la compañía ofrecía desde el minuto 1 tanto hardware temporal para desarrollar (su Developer Transition Kit), como herramientas de programación disponibles como software nativo.

En algunos casos, parte de este software ya estaba se venía usando sobre Windows ARM, pero haciendo uso de emulación X64, lo que se traducía en rendimiento manifiestamente mejorable, y en un funcionamiento inestable.

En estos últimos años, el primer culpable de la falta de aplicaciones para la versión ARM de Windows ha sido la propia Microsoft, incapaz durante mucho tiempo de lanzar versiones nativas de algunas de sus aplicaciones más básicas y populares.

Incluso Microsoft OneDrive no ha pasado de ofrecer una versión 'preview' que sólo es posible descargar si eres miembro del programa Insider; de modo que se agradece este nuevo pequeño empujón por su parte.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Para crear una aplicación ya sólo tienes que dibujarla: esta nueva IA de Microsoft la convertirá en un ejecutable

24/05/2022
Artículo original

Para crear una aplicación ya sólo tienes que dibujarla: esta nueva IA de Microsoft la convertirá en un ejecutable

Hoy da comienzo el evento anual para desarrolladores Microsoft Build, en el que la compañía de Redmond, junto a sus principales partners, presentan sus nuevos productos e innovaciones. En esta ocasión, el evento se realizará simultáneamente en tres capitales europeas (Londres, París, Berlín), una americana (Buenos Aires) y una asiática (Tokio).

Pero que el evento se enfoque a desarrolladores, no impide a Microsoft ofrece herramientas de creación de apps dirigidas, precisamente, a los no-desarrolladores. "Con ese fin", explican en un comunicado de prensa, "hoy lanzamos herramientas que hacen uso de inteligencia artificial y automatización" con el fin de facilitarnos el desarrollo de software sin hacer uso de código fuente, lo que denominamos la 'programación no-code'.

Y una de las novedades más notables al respecto de esta edición en la nueva función 'Express Design' de la plataforma Power Apps, que permite subir a la misma una representación gráfica de la interfaz de usuario de una aplicación (en un fichero PDF o PowerPoint, en una captura de pantalla de una app preexistente, en un diseño Figma o incluso dibujada a mano)…

…y en cuestión de segundos, Express Design la convertirá en una aplicación real dotada de funcionalidad básica y de su pertinente esquema de datos.

El reconocimiento de elementos gráficos de la interfaz y su conversión en software real es posible gracias a que Power Apps hace uso de los modelos de detección de objetos de Azure Cognitive Services (esto es, de inteligencia artificial en la nube).

"Aunque los desarrolladores son el objetivo principal de este evento, somos conscientes de que a todo el mundo le gustaría contar con herramientas para dar forma a lo que quieren hacer de una manera simple, eficiente e inteligente".

Pasos a seguir

En el siguiente vídeo elaborado por Microsoft se aprecia la sencillez del proceso a seguir para crear aplicaciones gráficas básicas (en este ejemplo, un formulario de compra) con esta funcionalidad de Power Apps:

{"videoId":"x8b2pfz","autoplay":true,"title":"Express Design en Power Apps de Microsoft", "tag":""}

  • Captura el aspecto deseado de la app en una imagen y súbela a Power Apps. Express Design se encargará de interpretar qué es lo que has dibujado o fotografiado.

  • Etiqueta los componentes de la interfaz de la aplicación (nombre de los campos del formulario, texto de los botones, etcétera) para establecer cómo puede interactuar el usuario con cada elemento (cuál puede rellenar, en cuál puede hacer clic?). Ya puedes convertir el boceto en una interfaz real.

  • Conecta los elementos de la app a unos determinados datos o fuentes de los mismos (en el ejemplo, a fotos). En el ejemplo, se ve cómo se crea un listado de productos (con imágenes vinculadas a cada uno) que se mostrarán en un desplegable.

  • Añade elementos gráficos para terminar de personalizar la app: fondos, logotipos, etc.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

La IA de GitHub Copilot ya escribe el 35% de código de lenguajes como Java o Python. Y llegará muy pronto a todo el mundo

24/05/2022
Artículo original

La IA de GitHub Copilot ya escribe el 35% de código de lenguajes como Java o Python. Y llegará muy pronto a todo el mundo

Hoy tiene lugar la conferencia de desarrolladores de Microsoft, el BUILD 2022, y Microsoft está mostrando sus novedades para este año. Probablemente, de lo más grande de la conferencia de 2021 fue la [integración de GPT-3 con su plataforma 'low code'](BUILD 2022) Power Apps, con la que Microsoft hacía posible programar sin código, con lenguaje natural.

De aquellos barros nació GitHub Copilot, el sorprendente servicio con el que Microsoft daba la opción a algunos desarrolladores de ayudarse de porciones de códigos escrita por las sugerencias de su IA. No llegaba como un sustituto para los desarrolladores, pero sí como un asistente con el que agilizar increíblemente ciertas tareas.

Durante el BUILD 2022, Microsoft acaba de anunciar que GitHub Copilot estará disponible para todos los desarrolladores este verano. Hasta ahora, el acceso a Copilot era limitado, aunque Microsoft afirma que ya generaban código con él "decenas de miles de desarrolladores" en su vista previa técnica.

GitHub Copilot ya escribe el 35% de algunos de los lenguajes más usados

En enero de este año, Microsoft mencionó que Copilot ya era responsable del 30% del código total de GitHub, aunque luego lo matizó, haciendo la cifra válida solamente para algunos de los lenguajes más usados.

Hoy, Microsoft ha anunciado que con menos de un año, GitHub Copilot ya sugiere sobre un 35% del código de lenguajes populares como Java y Python. Microsoft también mencionó hace un tiempo que más del 50% de las personas que prueban este asistente con IA sigue usándolo con el paso del tiempo.

El paso del tiempo dirá cuán exitoso es Copilot, pero con cosas como DALL-E 2 e IMAGEN, la nueva IA de Google que es capaz de crear arte con solo introducir lenguaje natural, queda claro que el futuro es impresionante para cualquier ámbito donde haya aprendizaje automático bien entrenado. Aun así, hay que probar muy bien estas novedades, pues según un experimento de la Universidad de Nueva York, GitHub Copilot generó código inseguro en un 40% de los casos. Fue el año pasado, sí, pero ahí queda.

{"videoId":"x80kt27","autoplay":true,"title":"La carrera de programador en 2017 y en el futuro (con Javier Santana)", "tag":"desarrollo de software"}

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Para crear una aplicación gráfica ya sólo tienes que dibujarla: esta nueva IA de Microsoft la convertirá en un ejecutable

24/05/2022
Artículo original

Para crear una aplicación gráfica ya sólo tienes que dibujarla: esta nueva IA de Microsoft la convertirá en un ejecutable

Hoy da comienzo el evento anual para desarrolladores Microsoft Build, en el que la compañía de Redmond, junto a sus principales partners, presentan sus nuevos productos e innovaciones. En esta ocasión, el evento se realizará simultáneamente en tres capitales europeas (Londres, París, Berlín), una americana (Buenos Aires) y una asiática (Tokio).

Pero que el evento se enfoque a desarrolladores, no impide a Microsoft ofrece herramientas de creación de apps dirigidas, precisamente, a los no-desarrolladores. "Con ese fin", explican en un comunicado de prensa, "hoy lanzamos herramientas que hacen uso de inteligencia artificial y automatización" con el fin de facilitarnos el desarrollo de software sin hacer uso de código fuente, lo que denominamos la 'programación no-code'.

Y una de las novedades más notables al respecto de esta edición en la nueva función 'Express Design' de la plataforma Power Apps, que permite subir a la misma una representación gráfica de la interfaz de usuario de una aplicación (en un fichero PDF o PowerPoint, en una captura de pantalla de una app preexistente, en un diseño Figma o incluso dibujada a mano)…

…y en cuestión de segundos, Express Design la convertirá en una aplicación real dotada de funcionalidad básica y de su pertinente esquema de datos.

El reconocimiento de elementos gráficos de la interfaz y su conversión en software real es posible gracias a que Power Apps hace uso de los modelos de detección de objetos de Azure Cognitive Services (esto es, de inteligencia artificial en la nube).

"Aunque los desarrolladores son el objetivo principal de este evento, somos conscientes de que a todo el mundo le gustaría contar con herramientas para dar forma a lo que quieren hacer de una manera simple, eficiente e inteligente".

Pasos a seguir

En el siguiente vídeo elaborado por Microsoft se aprecia la sencillez del proceso a seguir para crear aplicaciones gráficas básicas (en este ejemplo, un formulario de compra) con esta funcionalidad de Power Apps:

{"videoId":"x8b2pfz","autoplay":true,"title":"Express Design en Power Apps de Microsoft", "tag":""}

  • Captura el aspecto deseado de la app en una imagen y súbela a Power Apps. Express Design se encargará de interpretar qué es lo que has dibujado o fotografiado.

  • Etiqueta los componentes de la interfaz de la aplicación (nombre de los campos del formulario, texto de los botones, etcétera) para establecer cómo puede interactuar el usuario con cada elemento (cuál puede rellenar, en cuál puede hacer clic?). Ya puedes convertir el boceto en una interfaz real.

  • Conecta los elementos de la app a unos determinados datos o fuentes de los mismos (en el ejemplo, a fotos). En el ejemplo, se ve cómo se crea un listado de productos (con imágenes vinculadas a cada uno) que se mostrarán en un desplegable.

  • Añade elementos gráficos para terminar de personalizar la app: fondos, logotipos, etc.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Machine Learning: ¿Qué es y para qué sirve el análisis exploratorio? (con un ejemplo para que lo veas claro)

24/05/2022
Artículo original

Imagen ornamental: un montón de piezas de Lego todas mezcladas

La máxima más famosa en Machine Learning y, en general, en todas aquellas disciplinas que se fundamentan en el uso de datos es: "Si entra basura, sale basura". Y es que no sólo llega con tener algoritmos buenos: hay que tener también datos buenos. Ya hemos hablado aquí por ejemplo de los sesgos en los datos y sus peligros, pero es que hay muchas otras circunstancias negativas en los datos que son mucho menos sutiles y que debiésemos detectar.

Por supuesto, el objetivo final de las disciplinas de Inteligencia Artificial es que crear modelos de aprendizaje automático a partir de un conjunto de datos, y que estos modelos extraigan el conocimiento útil de forma autónoma, y el estudio del análisis exploratorio puede parecer muy aburrido. Es por eso que muchas formaciones de Machine Learning lo dejan de lado, lo cual es un error.

A priori, realizar un análisis exploratorio sobre unos datos que posteriormente vamos a procesar mediante un programa puede parecer superfluo. Sin embargo, los algoritmos de aprendizaje no son infalibles, y como he comentado requieren que les proporcionemos los datos lo más limpios que sea posible.

Si no llevamos a cabo un análisis exploratorio de calidad, podemos encontrarnos con algunos problemas, entre otros:

  • Valores incorrectos en algunas variables que pueden deberse a malas mediciones o errores de anotación y que alterarán el comportamiento de un modelo de aprendizaje.

  • Variables que son idénticas o están muy relacionadas, de forma que no aportan información nueva sino redundante.

  • Variables que no tienen relación con el propósito de nuestro análisis, como identificadores únicos sin significado, fechas o con el mismo valor para todas las muestras.

Aunque parezcan pequeños inconvenientes fáciles de resolver, si no los tratamos podemos encontrarnos con modelos cuyo rendimiento sea mucho peor del esperado. Esto es debido a que, por lo general, los algoritmos de aprendizaje no son capaces de discernir qué datos consideramos válidos y útiles y cuáles no.

Además, con una exploración más a fondo del conjunto de datos podremos obtener intuiciones sobre muchas cuestiones, como:

  • qué modelo de aprendizaje funcionará mejor
  • qué variables nos sirven realmente y cuáles podemos eliminar
  • cómo recuperar los datos que hayan sido incorrectamente anotados o no anotados...

El análisis exploratorio en ocasiones también puede aportarnos información muy relevante sobre los datos, sin llegar a aplicar un modelo. La distribución de los valores de una variable visualizada en un histograma o las correlaciones entre las variables y la clase, en una gráfica de correlaciones, resultan útiles por sí mismas y nos pueden ayudar a tomar algunas decisiones.

Un ejemplo sencillo pero muy aclarador

Consideremos un caso en el que tenemos dos versiones de un mismo conjunto de datos: una versión limpia y una versión sin limpiar, con algunos errores en valores y variables inútiles. El propósito de este conjunto de datos es tratar de estimar el precio final de un coche de segunda mano dadas algunas de sus características y el kilometraje.

En la siguiente figura podrás observar que, a la izquierda, el conjunto de datos contiene:

  • Valores extremos, como por ejemplo 1.000.000 en Mileage (que indicaría que se ha recorrido un millón de millas con ese coche, más de un millón seiscientos mil kilómetros)
  • Columnas como:
    • Id que contiene un identificador aleatorio
    • Valid que simplemente contiene 1
    • HalfCyl que equivale a la mitad de Cylinder.

Datos de ejemplo, sucios

A continuación, tenemos el conjunto ya limpio, donde los valores extremos se han sustituido por un valor más adecuado, y las columnas inservibles se han eliminado:

Datos de ejemplo, ya limpios

OJO: en este ejemplo no explicamos cómo se ha realizado el análisis y la limpieza de los datos, ni cómo se han entrenado los modelos de predicción del precio de coches. El objetivo es tan solo que te sirva para ver el efecto del análisis exploratorio.

Para comprobar si nuestro proceso de limpieza ha tenido éxito, vamos a utilizar una técnica de aprendizaje para obtener modelos que se hayan entrenado con los datos sin limpiar y los datos limpios. Una vez entrenados, evaluamos cada uno calculando una métrica que nos da idea del error típico del modelo (valores más bajos indican mejor rendimiento):

> # Evaluamos mediante el error cuadratico medio
> RMSE(cleanpred, cars$Price[testidx])
[1] 2038.236
> RMSE(dirtypred, cars$Price[testidx])
[1] 2702.444

La variable cleanpred del listado anterior contiene las predicciones de precios según el modelo de datos limpios para una lista nueva de coches que el modelo no conoce, y análogamente para el modelo de datos sin limpiar en la variable dirtypred. Como ves, el error en este último caso es mucho mayor (del orden de un 33% mayor), por lo que podemos decir que, al limpiar el conjunto de datos, nuestro error se reduce en un 25%.

Esta mejora viene dada únicamente por la calidad de los datos, ya que el algoritmo que se ha usado para obtener un modelo es exactamente el mismo en ambos casos.

Incluso en un ejemplo con datos tan simples como estos puedes observar la enorme importancia que tiene el análisis exploratorio.

Más de 20.000 desarrolladores responden sobre qué nuevas tecnologías se están formando más y las variantes del blockchain que triunfan

23/05/2022
Artículo original

Más de 20.000 desarrolladores responden sobre qué nuevas tecnologías se están formando más y las variantes del blockchain que triunfan

La encuesta de SlashData sobre el estado de los desarrolladores en 2022 (o SlashData's 2022 State of the Developer Survey) ofrece las tecnologías que más atraen la atención de los desarrolladores de software en el mundo.

Según su encuesta realizada a más de 20.000 programadores repartidos en 166 países, las aplicaciones de blockchain, las criptomonedas y las NFT son las que más aprenden los desarrolladores.

El cripto triunfa

Blockchain

A pesar de la enorme caída que están sufriendo las criptomonedas en el mundo, como el bitcoin (o más recientemente LUNA), los desarrolladores apuestan por las criptomonedas sobre todas las demás tecnologías.

Como puedes ver en el gráfico, un poco más de un tercio (34%) de los desarrolladores encuestados dijeron que estaban aprendiendo sobre criptomonedas, mientras que el 16% afirmó estar trabajando activamente en proyectos relacionados con las criptomonedas y ya las han adoptado.

Por otro lado, aunque solo un 11% de desarrolladores ha adoptado los NFT o tókens no fungibles, los cuales vivieron su gran impulso en 2021 (y ahora muchos de estos han perdido su valor), un 32% de expertos en programación informatica ha declarado que tiene intención de apostar por ellos. SlashData la califica como "un nicho potencialmente rentable para los que se involucren.

Asimismo, el 30% de los desarrolladores están aprendiendo sobre aplicaciones de blockchain distintas de las criptomonedas. SlashData descubrió que hay mucho interés por aprender sobre las aplicaciones de blockchain (y que muchos desarrolladores se han puesto a hacerlo). Este sector es el que más ha aumentado de todas las tecnologías. De todos modos, la adopción de aplicaciones de blockchain entre los desarrolladores se ha estancado en comparación con hace un año. Solo el 12% de los desarrolladores están trabajando actualmente en proyectos de blockchain.

Inteligencia artificial y metaverso

desarrollo

Estas tres tecnologías adyacentes a las criptomonedas tuvieron las tasas más altas de adopción y aprendizaje entre todas las tecnologías incluidas en el informe de SlashData.

Las siguientes tecnologías más populares destacadas por los expertos en programación fueron el metaverso y el desarrollo de software asistido por IA o inteligencia artificial: el 28% de los desarrolladores están aprendiendo sobre estas tecnologías. De todos modos, en el momento en el que se realizó el informe, solo el 9% había comenzado su adopción de tecnologías del metaverso.

Además, 1 de cada 4 programadores (alrededor del 25%) tienen ganas de aprender de Edge Computing y de robótica y están en ello.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Más de 20.000 desarrolladores responden: las tecnologías sobre las que más están aprendiendo y las variantes del blockchain que triunfan

23/05/2022
Artículo original

Más de 20.000 desarrolladores responden: las tecnologías sobre las que más están aprendiendo y las variantes del blockchain que triunfan

La encuesta de SlashData sobre el estado de los desarrolladores en 2022 (o SlashData's 2022 State of the Developer Survey) ofrece las tecnologías que más atraen la atención de los desarrolladores de software en el mundo.

Según su encuesta realizada a más de 20.000 programadores repartidos en 166 países, las aplicaciones de blockchain, las criptomonedas y las NFT son las que más aprenden los desarrolladores.

El cripto triunfa

Blockchain

A pesar de la enorme caída que están sufriendo las criptomonedas en el mundo, como el bitcoin (o más recientemente LUNA), los desarrolladores apuestan por las criptomonedas sobre todas las demás tecnologías.

Como puedes ver en el gráfico, un poco más de un tercio (34%) de los desarrolladores encuestados dijeron que estaban aprendiendo sobre criptomonedas, mientras que el 16% afirmó estar trabajando activamente en proyectos relacionados con las criptomonedas y ya las han adoptado.

Por otro lado, aunque solo un 11% de desarrolladores ha adoptado los NFT o tókens no fungibles, los cuales vivieron su gran impulso en 2021 (y ahora muchos de estos han perdido su valor), un 32% de expertos en programación informatica ha declarado que tiene intención de apostar por ellos. SlashData la califica como "un nicho potencialmente rentable para los que se involucren.

Asimismo, el 30% de los desarrolladores están aprendiendo sobre aplicaciones de blockchain distintas de las criptomonedas. SlashData descubrió que hay mucho interés por aprender sobre las aplicaciones de blockchain (y que muchos desarrolladores se han puesto a hacerlo). Este sector es el que más ha aumentado de todas las tecnologías. De todos modos, la adopción de aplicaciones de blockchain entre los desarrolladores se ha estancado en comparación con hace un año. Solo el 12% de los desarrolladores están trabajando actualmente en proyectos de blockchain.

Inteligencia artificial y metaverso

desarrollo

Estas tres tecnologías adyacentes a las criptomonedas tuvieron las tasas más altas de adopción y aprendizaje entre todas las tecnologías incluidas en el informe de SlashData.

Las siguientes tecnologías más populares destacadas por los expertos en programación fueron el metaverso y el desarrollo de software asistido por IA o inteligencia artificial: el 28% de los desarrolladores están aprendiendo sobre estas tecnologías. De todos modos, en el momento en el que se realizó el informe, solo el 9% había comenzado su adopción de tecnologías del metaverso.

Además, 1 de cada 4 programadores (alrededor del 25%) tienen ganas de aprender de Edge Computing y de robótica y están en ello.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Más de 20.000 programadores responden: las tecnologías sobre las que más están aprendiendo y las variantes del blockchain que triunfan

23/05/2022
Artículo original

Más de 20.000 programadores responden: las tecnologías sobre las que más están aprendiendo y las variantes del blockchain que triunfan

La encuesta de SlashData sobre el estado de los desarrolladores en 2022 (o SlashData's 2022 State of the Developer Survey) ofrece las tecnologías que más atraen la atención de los desarrolladores de software en el mundo.

Según su encuesta realizada a más de 20.000 programadores repartidos en 166 países, las aplicaciones de blockchain, las criptomonedas y las NFT son las que más aprenden los desarrolladores.

El cripto triunfa

Blockchain

A pesar de la enorme caída que están sufriendo las criptomonedas en el mundo, como el bitcoin (o más recientemente LUNA), los desarrolladores apuestan por las criptomonedas sobre todas las demás tecnologías.

Como puedes ver en el gráfico, un poco más de un tercio (34%) de los desarrolladores encuestados dijeron que estaban aprendiendo sobre criptomonedas, mientras que el 16% afirmó estar trabajando activamente en proyectos relacionados con las criptomonedas y ya las han adoptado.

Por otro lado, aunque solo un 11% de desarrolladores ha adoptado los NFT o tókens no fungibles, los cuales vivieron su gran impulso en 2021 (y ahora muchos de estos han perdido su valor), un 32% de expertos en programación informatica ha declarado que tiene intención de apostar por ellos. SlashData la califica como "un nicho potencialmente rentable para los que se involucren.

Asimismo, el 30% de los desarrolladores están aprendiendo sobre aplicaciones de blockchain distintas de las criptomonedas. SlashData descubrió que hay mucho interés por aprender sobre las aplicaciones de blockchain (y que muchos desarrolladores se han puesto a hacerlo). Este sector es el que más ha aumentado de todas las tecnologías. De todos modos, la adopción de aplicaciones de blockchain entre los desarrolladores se ha estancado en comparación con hace un año. Solo el 12% de los desarrolladores están trabajando actualmente en proyectos de blockchain.

Inteligencia artificial y metaverso

desarrollo

Estas tres tecnologías adyacentes a las criptomonedas tuvieron las tasas más altas de adopción y aprendizaje entre todas las tecnologías incluidas en el informe de SlashData.

Las siguientes tecnologías más populares destacadas por los expertos en programación fueron el metaverso y el desarrollo de software asistido por IA o inteligencia artificial: el 28% de los desarrolladores están aprendiendo sobre estas tecnologías. De todos modos, en el momento en el que se realizó el informe, solo el 9% había comenzado su adopción de tecnologías del metaverso.

Además, 1 de cada 4 programadores (alrededor del 25%) tienen ganas de aprender de Edge Computing y de robótica y están en ello.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Así puedes crear tu primer documento usando LaTeX, el lenguaje de maquetación por excelencia

21/05/2022
Artículo original

Así puedes crear tu primer documento usando LaTeX, el lenguaje de maquetación por excelencia

La Wikipedia define LaTeX como un 'sistema de composición de textos', que facilita la creación de documentos de alta calidad tipográfica. Técnicamente no podríamos calificarlo como un lenguaje: realmente se trata 'sólo' de un enorme conjunto de macros 'de alto nivel' para el mucho más complejo lenguaje TeX.

LaTeX se usa por dos grandes razones: su ya mencionada calidad tipográfica, y las facilidades que da para representar correctamente fórmulas de todo tipo, lo que lo convierte en una herramienta muy valorada en entornos académicos; de hecho, está detrás de la mayor parte de libros técnicos, artículos académicos y tesis del mundo.

Formulas
Código LaTeX de fórmulas matemáticas, y su correspondiente salida en el documento generado.

Además, LaTeX facilita enormemente la introducción de citas bibliográficas; podemos introducir una usando un identificador elegido por nosotros (\cite{ManualWindowsVista}, por ejemplo) y que luego, a la hora de compilar, extraiga automáticamente toda la información necesaria desde un archivo .bib en el que hayamos recopilado previamente los libros a citar.

Como aspecto negativo, debe destacarse la pronunciada curva de aprendizaje de LaTeX: conseguir un documento complejo requiere conocer muchos más comandos y argumentos que los expuestos hasta ahora. Pero incluso siendo un usuario avanzado, nunca estará de más tener cerca un buen manual.

Uno de los aspectos más inesperados de LaTeX es que incluye elementos propios de un lenguaje de programación propiamente dicho, como los bucles y los condicionales. ¿Que para qué puede servir una instrucción condicional a la hora de maquetar un documento? Pues, por ejemplo, para introducir automáticamente una página en blanco después de cada página que contenga un título de capítulo.

Existen diversos paquetes de software que nos proporcionarán la capacidad de compilar documentos LaTeX: por ejemplo, MikTex en Windows, o TeX-Live (multiplataforma). El primero incluye un editor gráfico básico (TeXworks), sin embargo, existen múltiples editores independientes open source que podemos usar, destacando los multiplataforma LyX y TexStudio. En la imagen que encabeza este artículo podemos ver LaTeX Base, un editor online freemium de este lenguaje.

Algunas nociones previas

  • Todos los comandos de LaTeX comienzan con una barra invertida: '\'.

  • Los argumentos de dichos comandos se indican entre llaves: '{}'.

  • Los comentarios comienzan con un símbolo de porcentaje: '%', todo lo que se sitúe a su derecha será ignorado por el compilador.

  • Aunque escribamos varios espacios en blanco o saltos de línea seguidos, el compilador los interpretará como uno solo.

  • La mayoría de los editores LaTeX generarán un documento PDF al compilarlo:

Ejemplo Compilado
Resultado de compilar el documento de ejemplo en TeXworks de MikTeX, en Windows.

Estructura general de un documento

Este es el código usado en la imagen que encabeza este artículo. Intenta reproducirlo en tu editor:

% Declaración de documento

\documentclass[a4paper,12pt]{article}

% Preámbulo

% Las siguientes tres líneas sólo son metadatos, aunque podemos utilizarlos más adelante dentro del documento

\title{Mi primer documento}

\date{2022-05-21}

\author{Genbeta}

% Las siguientes dos líneas especifican paquetes de funciones no estándar que, en este caso, permiten al documento manejar adecuadamente textos en español

\usepackage[spanish]{babel}

\usepackage[utf8]{inputenc}

% Inicio del documento propiamente dicho

\begin{document}

% Aquí comienza el cuerpo del artículo

\maketitle

\section{¡Hola, mundo!}

La energía es igual a la masa multiplicada por el cuadrado de la velocidad de la luz:

% Las fórmulas matemáticas se escriben entre 4 símbolos de dólar (dos delante, y dos detrás)

$$E=mc^2$$

% Así se introduce una lista con dos ítems

\begin{itemize}

\item Primer elemento de la lista

\item Segundo elemento de la lista

\end{itemize}

%Fin del documento

\end{document}

No te asustes: LaTeX también permite insertar imágenes, columnas, márgenes, cuadros de texto y todo eso (si no, no serviría para maquetar), pero aprendamos a andar antes de correr
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Descubren fallos día zero en Windows 11 y Teams: así han logrado estos expertos en seguridad 800.000 dólares

19/05/2022
Artículo original

Descubren fallos día zero en Windows 11 y Teams: así han logrado estos expertos en seguridad 800.000 dólares

En el primer día del evento Pwn2Own Vancouver 2022, los participantes consiguieron explotar con éxito 16 fallos de día cero para hackear varios productos, entre ellos el sistema operativo Windows 11 de Microsoft y la plataforma de comunicación Teams. Los organizadores del evento llegaron a repartir 800.000 dólares entre quienes consiguieron realizar estos descubrimientos.

Este año se celebra el 15º aniversario del concurso. Esta edición reúne a 17 concursantes que intentan explotar 21 objetivos en múltiples categorías. Y una de las firmas de software con más errores descubiertos ha sido el gigante de Redmond. Durante el concurso, los investigadores de seguridad han tenido que analizar navegadores web, software de virtualización, escalada local de privilegios, servidores, comunicaciones empresariales y automóviles.

Una vez demostradas y reveladas las vulnerabilidades de seguridad durante Pwn2Own, los proveedores de software y hardware tienen 90 días para desarrollar y publicar correcciones de seguridad para todos los fallos notificados.

Los errores de Teams

teams

El primero en caer fue Microsoft Teams en la categoría de comunicaciones empresariales: se pudo explotar un fallo de configuración inadecuado. Otro de los equipos participantes descubrió además una cadena de exploits de cero clicks de 2 fallos (inyección y escritura arbitraria de archivos).

En una tercera ocasión, otro de los participantes eexplotó una cadena de 3 bugs de inyección, desconfiguración y escape de sandbox dentro de Teams.

Cada uno de ellos ganó 150.000 dólares por demostrar con éxito sus fallos de día cero o zzero-day en Microsoft Teams.

Problemas en otros programas de software

STAR Labs, un grupo que destacó en el evento, ganó 40.000 dólares adicionales tras elevar los privilegios en un sistema que ejecutaba Windows 11 utilizando una debilidad de Use-After-Free y otros 40.000 dólares adicionales al lograr una escalada de privilegios en Oracle Virtualbox.

Otro de los participantes demostró con éxito dos errores (contaminación de prototipos y validación de entrada inadecuada) para hackear Mozilla Firefox y una escritura fuera de banda en Apple Safari. Ubuntu Desktop, el sistema de infoentretenimiento del Tesla Model 3 (con Sandbox Escape) y Ethernet de diagnóstico (con Root Persistence), fueron otros programas con exploits de día cero.

Vía| Bleeping Computer

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Página Siguiente