![Imagen general del escenario del evento Google Cloud Next 2024](/recursos/image.axd?picture=/2024/2T/actualidad-04/google-cloud-next-24.jpg)
La semana pasada Google celebró su evento Cloud para desarrolladores en Las Vegas: Google Cloud Next. Irónicamente casi no se habló de cloud sino de (¡sorpresa!) Inteligencia Artificial.
Desde nuestro punto de vista como desarrolladores, quizá el lanzamiento más importante fue el de Gemini Code Assist, una herramienta de asistencia de código basada en el modelo de lenguaje Gemini de la empresa. Se trata de un competidor de GitHub Copilot Enterprise (hasta tiene el mismo precio), orientado más a las empresas que al desarrollador individual. Su principal ventaja es la enorme ventana de contexto de Gemini Pro, capaz de albergar todo el código de tu proyecto y por lo tanto capaz de darte una asistencia muy adaptada al mismo. Según Google es mejor generando código pero, sobre todo, es capaz de actuar en proyectos completos a la vez para hacer cambios, refactorizaciones o generar tests. Está disponible mediante extensiones en los principales editores (VSCode, JetBrains...) y es gratis hasta su lanzamiento oficial dentro de 3 meses.
Además de esto presentaron también otras herramientas basadas en IA, como Cloud Assist (un asistente para ayudarte con la gestión de los servicios en su cloud), Vertex AI Agent Builder (para crear asistentes propios sin tener que programar), o la inclusión de Gemini en BigQuery y Looker de modo que puedas interactuar con tus datos con lenguaje natural, sin programar. Hay muchas otras cosas, pero de menor interés para nosotros como desarrolladores.
Una cosa que quisieron dejar clara es que su futuro para por la IA, y que la empresa está totalmente comprometida con esta tecnología. Y no son solo ellos: Microsoft, Meta, Apple... todas las grandes empresas están cambiando sus productos y servicios en torno a la IA generativa y el aprendizaje automático en general.
¿Y tú? ¿Estás adoptando este tipo de tecnologías en tu trabajo diario? ¿Afectará a tu empleabilidad futura? ¿Cómo las va a incorporar tu empresa en sus productos y servicios? Estamos en un momento en el que todos debemos pensar muy seriamente en todo esta revolución que se nos viene encima.
Mientras tanto... Contenidos interesantes aquí 👇🏻👇🏻👇🏻
🌐 DESARROLLO WEB
🚫 Cómo detectar con CSS si el navegador bloquea JavaScript — Existe una media query que probablemente no conoces, que es relativamente reciente y que te permite detectar solo con el uso de CSS si los lenguajes de scripting están habilitados o no en el navegador. En nuestro blog te contamos cómo sacarle partido.
⚓ El posicionamiento anclado en CSS está cerca — Parece que para Chrome 125 tendremos por fin esta característica que permitirá "atar" unos elementos a otros teniendo en cuenta el espacio disponible y el grado de scroll. Es muy útil para crear tooltips o menús desplegables que no se salgan por los lados, como se explica en este detallado artículo de Google.
Cómo Photoshop resolvió el uso de archivos que no caben en memoria — En este artículo de Google Developers nos cuentan cómo Adobe logró que los usuarios pudieran editar incluso los archivos más grandes, varias veces mayores que la memoria disponible, en la versión web de su icónica aplicación Photoshop.
⚡ ¿Señales nativas en JavaScript? — Para desarrollar una UI complicada en JavaScript necesitamos almacenar, calcular, invalidar, sincronizar y mover el estado hacia la vista de la aplicación de manera eficiente. Muchas veces esto implica renderizar un estado calculado que depende de un árbol complejo de otros valores o estados. El objetivo de la propuesta de API Signals es no tener que utilizar bibliotecas como React o Angular para esto y disponer ya de manera nativa de la funcionalidad. Puedes probarla ya hoy en día con un polyfill.
No te dejes engañar por falsos expertos en rendimiento — Conseguir una buena puntuación en Lighthouse es el objetivo de cualquiera que tenga una Web. Y existen cantidad de expertos y, sobre todo, herramientas, que te "enseñan" cómo mejorarla. El problema es que se trata de engaños que "hackean" los resultados y que tienen cero impacto positivo en la realidad, más bien al contrario: hacen que la página vaya peor e impactan en la experiencia de usuario. Este artículo de Shopify te los cuenta para poder evitarlos y, de paso, que aprendas mucho sobre cómo funciona las puntuaciones.
🧑🏻💻 LENGUAJES Y PLATAFORMAS DE PROGRAMACIÓN
🌐 8 formas de definir los URLs de tu app ASP.NET Core — Por defecto, sin configuración adicional, las aplicaciones web con ASP.NET escuchan en la dirección URL http://localhost:5000
. Este post muestra 8 formas diferentes de cambiar este URL.
🎮 Cómo los videojuegos utilizan LUTs y cómo puedes hacer lo mismo tú — Un LUT es una tabla de valores que permite transformar completamente los colores de una imagen. Este (largo) post te explica cómo implementar diversos LUT 1D para colorear videos y conseguir efectos como visión térmica, escala de grises, LUT 3D para corregir el color y varios trucos interesantes sacados del mundo de los videojuegos.
🤖 IA y Datos
💎 Dos nuevas variantes de Gemma — Google acaba de liberar otras dos subvariantes de su modelo Gemma 2b, específicas para generación de código (CodeGemma) y para consumo bajo de memoria y velocidad (RecurrentGemma), que mantiene las buenas capacidades del modelo base. Muy interesantes para aplicaciones en sistemas convencionales, o sea, con (relativamente) bajos recursos.
Implementar modelos de Tensorflow en Azure Container Apps — En este interesante artículo en el blog de Azure, se describe cómo desplegar modelos de ML en Azure Container Apps, algo que de entrada quizá no pensabas hacer, pero que ofrece escalabilidad, integración, simplicidad y seguridad. Se incluye un tutorial práctico de cómo crear una aplicación de reconocimiento de alimentos con TensorFlow, FastAPI y React. Además, se explican algunas de las ventajas de Azure Container Apps para el ciclo de vida de los modelos de ML, como las revisiones y el tráfico dividido.
Construcción de la infraestructura GenAI de Meta — Artículo de la empresa en el que explica cómo está construyendo su infraestructura tecnológica de inteligencia artificial generativa, con la que entrenará Llama 3. Cifras astronómicas y datos interesantes si te gustan estas cosas de infraestructura a lo bestia.
😎 DevLife
🧑🏻🔧 Cómo leer códigos QR a mano — ¿Alguna vez te has preguntado cómo funcionan los códigos QR? Pues esta es una interesante explicación interactiva de cómo funcionan. Aprenderás la anatomía de los códigos QR y cómo decodificarlos QR a mano (si hiciera falta 😃).
🧷 Cómo Google "perfeccionó" la Web — Un artículo interesantísimo que además es una pieza de colección sobre diseño editorial moderno. Este artículo de The Verge nos muestra cómo el dominio de Google ha dado forma a la Web, dando como resultado una red llena de contenido diseñado para Google, no necesariamente para humanos. Puedes ver solo el scroll-art y dejar el texto, pero lee el último bloque. Imperdible.
🛠️ HERRAMIENTAS PARA PROGRAMADORES
🥪 DevProxy: testea tus APIs sin tocar una sola línea de código — En cualquier aplicación es solo cuestión de tiempo que las API que utilices fallen. Y cuando lo hacen, desea asegurarse de que tu app pueda manejar los fallos correctamente. Dev Proxy se centra en eso: que puedas simular fácilmente diferentes comportamientos de cualquier API, sin que tengas que cambiar una sola línea del código de tu app. Interesante nueva herramienta de Microsoft, pero no atada a sus tecnologías.
🛢️ Redis cambia su licencia a un modelo dual — Redis, el proveedor líder de bases de datos en memoria (para cachés fundamentalmente), adoptara un nuevo modelo de doble licencia a partir de su versión 7.4, imponiendo términos mucho más estrictos para las empresas que ofrecen Redis como servicio. Entre otras cosas, exigirá que las empresas que ofrecen Redis como servicio publiquen todo su código fuente. Se espera que el cambio de licencia provoque que algunas distribuciones de Linux eliminen Redis de sus repositorios. Este cambio subraya los desafíos continuos que enfrentan los proyectos de código abierto para encontrar modelos de negocio sostenibles 😖
🖼️ Google presenta Jpegli — el gigante de la búsqueda ha lanzado esta nueva biblioteca de codificación JPEG que mejora la compresión hasta en un 35% manteniendo la calidad y la compatibilidad con JPEG tradicional. Utiliza cuantificación adaptativa y selección mejorada de matrices de cuantificación, entre otras técnicas, para lograr estas mejoras. En GitHub está todo el código y los binarios para descargar.
🕺🏻FRIKADAS
![El experto mostrando un sistema de almacenamiento externo de tamaño medio 😱](/recursos/image.axd?picture=/2024/2T/actualidad-04/bbc-almacenamiento.jpg)
💾 Computer Programme de la BBC — Interesante documento visual de 1982 del programa "Computer Programme" de la BBC, en el que un experto explica al presentador cómo funcionan los sistemas de almacenamiento de un ordenador de la época. Antes de los discos flexibles incluso. El de la imagen es uno de "tamaño medio" 😂 Interesante recordatorio del progreso exponencial que ha vivido nuestro sector. En 𝕏 - 3 minutos - Inglés.
🖱️Cómo usar un solo teclado y ratón para dos ordenadores diferentes — ¿Te gustaría poder controlar dos ordenadores con un solo teclado y ratón? Este proyecto personal de Hrvoje Čavrak te permite hacerlo usando dos pequeñas y baratas placas Raspberry Pi Pico y un poco de ingenio. Podrás cambiar de un ordenador a otro con solo mover el ratón o pulsar una tecla, incluso si tienen sistemas operativos distintos. Buen proyecto friki para un fin de semana.
⚡ Procesar mil millones de filas en Go en 3,4s — El desafío: procesar un archivo de texto con mil millones de filas de datos de estaciones meteorológicas, identificando el mínimo, la media y el máximo de cada una. Ben Hoyt optimizó su código Go, pasando de 1 minuto y 45, a solo 3,4 segundos. Te explica las 9 mejoras implementadas para lograrlo: valores puntero en mapas, parseo manual para mejorar el rendimiento, paralelización... Interesante.
😱 GAMBADAS
🍎🧨 Vulnerabilidad en los chips M1, M2 y M3 de Apple. No se puede corregir — Se ha descubierto una vulnerabilidad irremediable en los chips de la serie M de Apple Silicon que afecta a los dispositivos Mac y MacBook desde 2020 (todos los "nuevos"). El ataque, denominado "GoFetch", permite a los atacantes explotar los prefetchers de datos para acceder a claves de cifrado y obtener información confidencial. Es irremediable porque solucionarlo implicaría una reducción enorme en el rendimiento de estos chips.
🐧 Un empleado de Microsoft salva el colapso de seguridad de Linux — El TOC de un desarrollador alemán de Microsoft, Andres Freund, ha salvado a Linux de una muy gorda. Andres, que notaba que su SSH iba lento, no pudo evitar investigarlo y, al hacerlo, descubrió una vulnerabilidad crítica en XZ Utils (un compresor incluido en Linux), calificada con una puntuación perfecta de 10.0 en el sistema CVSS. La puerta trasera permite acceso root al sistema en remoto 😱 y se trata de una puerta trasera introducida por alguien en las versiones 5.6.0 y 5.6.1 de la utilidad. ¡Hay que actualizarse ya!
![Imagen de la colisión](/recursos/image.axd?picture=/2024/2T/actualidad-04/md5-colision.png)
💥 Colisión de hash MD5 — Es la primera vez que se encuentra una colisión entre dos textos cortos y que constan tan solo de caracteres imprimibles y entre los que solo hay una letra de diferencia. Por el criptógrafo holandés Marc Stevens. Le llevó una mañana con un ordenador con 40 cores. MD5 ya no está recomendado hoy en día para aplicaciones que necesiten mucha seguridad, pero es interesante.