Publicado Thoughtworks Technology Radar, Volumen 31
(thoughtworks.com)Visualiza y explica las tendencias más recientes en técnicas/herramientas/plataformas/lenguajes de programación y frameworks en 4 etapas: Hold/Assess/Trial/Adopt
Antipatrones de asistentes de codificación
- Como era de esperarse, en este Radar predominan las discusiones sobre la IA generativa y los LLM que usan comúnmente los desarrolladores
- Los patrones inevitablemente llevan a antipatrones, es decir, situaciones contextualizadas que los desarrolladores deben evitar
- En el sobrecalentado espacio de la IA están empezando a aparecer algunos antipatrones:
- La idea equivocada de que una persona con IA como compañera puede reemplazar por completo la programación en pareja
- Dependencia excesiva de las sugerencias de asistencia para programar
- Problemas de calidad del código generado
- Una tasa de crecimiento más rápida del codebase
- La IA tiende a resolver problemas de forma indiscriminada en lugar de usar abstracción
- Ej.: usar decenas de sentencias condicionales en lugar del patrón de diseño Strategy
- En particular, los problemas de calidad del código resaltan un área en la que desarrolladores y arquitectos deben mantener atención constante para no caer en código “funciona, pero es terrible”
- Por eso, los equipos deben poner aún más énfasis en buenas prácticas de ingeniería, como pruebas unitarias, funciones de adecuación arquitectónica y otras técnicas comprobadas de gobernanza y validación
- Esto es para asegurarse de que la IA realmente esté ayudando al esfuerzo, en lugar de cifrar el codebase con complejidad
Rust is anything but rusty - Rust no está oxidado en absoluto
- Rust se está convirtiendo gradualmente en el lenguaje preferido para programación de sistemas
- En cada sesión del Radar, Rust aparece repetidamente en el contexto de las conversaciones
- Muchas de las herramientas discutidas están escritas en Rust
- Rust es el lenguaje preferido al reemplazar utilidades antiguas a nivel de sistema o al reescribir parte del ecosistema para mejorar el rendimiento
- El calificativo más común para las herramientas basadas en Rust parece ser “increíblemente rápidas”
- Por ejemplo, en el ecosistema de Python hay varias herramientas con alternativas basadas en Rust para ofrecer un rendimiento notablemente mejor
- Los diseñadores del lenguaje y la comunidad han logrado crear un ecosistema muy apreciado de SDK principales, bibliotecas y herramientas de desarrollo que ofrece una velocidad de ejecución sobresaliente con menos trampas que muchos lenguajes previos
- Muchas personas del equipo son fans de Rust, y parece que la mayoría de los desarrolladores que lo usan lo valoran mucho
El ascenso gradual de WASM
- WASM (WebAssembly) es un formato binario de instrucciones para una máquina virtual basada en pila
- Puede sonar demasiado arcano y de bajo nivel para la mayoría de las preocupaciones de los desarrolladores, pero la gente ve su significado: la capacidad de ejecutar aplicaciones complejas dentro del sandbox del navegador
- WASM puede ejecutarse dentro de las máquinas virtuales de JavaScript existentes, lo que permite a los desarrolladores integrar en el navegador aplicaciones que antes solo podían implementarse con frameworks y extensiones nativas
- Los 4 navegadores principales (Chrome, Firefox, Safari, Edge) ahora son compatibles con WASM 1.0, lo que abre posibilidades interesantes para un desarrollo sofisticado, portable y multiplataforma
- Durante los últimos años han seguido este estándar con gran interés, y ahora se alegran de verlo empezar a demostrar su capacidad como un objetivo de despliegue legítimo
La explosión cámbrica de las herramientas de IA generativa
- Si se seguía la trayectoria presentada en las últimas ediciones del Radar, se esperaba que la IA generativa ocupara un lugar destacado en nuestras discusiones
- Aun así, seguimos sorprendidos por la explosión del ecosistema tecnológico que soporta a los modelos de lenguaje:
- Guardrails, evaluación, herramientas para construir agentes, frameworks para trabajar con salidas estructuradas, bases de datos vectoriales, servicios en la nube y herramientas de observabilidad
- Este crecimiento rápido y diverso es perfectamente comprensible en muchos sentidos
- La experiencia inicial —la simplicidad de dar prompts de texto plano a un modelo de lenguaje— terminó derivando en ingeniería de productos de software
- Puede que esto no esté a la altura de los sueños y las afirmaciones exageradas que surgieron después de que la gente enviara su primer prompt a ChatGPT, pero vemos en muchos clientes un uso sensato y productivo de la IA generativa, y todas estas herramientas, plataformas y frameworks cumplen un papel importante para llevar soluciones basadas en LLM a producción
- Al igual que con la explosión del ecosistema de JavaScript alrededor de 2015, se espera que este crecimiento caótico continúe por un tiempo
[Techniques]
Adopt
-
1% canary
- Fomentar retroalimentación temprana sobre nuevas versiones de software y reducir el riesgo usando despliegues canary
- Técnica para hacer rollout de nuevas funciones al 1% de los usuarios, permitiendo a los equipos capturar feedback, observar el impacto y responder si es necesario
- Importante para despliegues a gran escala, como apps móviles, dispositivos de edge computing o vehículos definidos por software
-
Component testing
- La automatización de pruebas es un pilar de un desarrollo de software eficaz
- Enfocarse en las pruebas de frontend para asegurar estabilidad y velocidad
- Usar jsdom para pruebas de componentes ejecutadas en memoria
- Para pruebas end-to-end, usar herramientas de navegador
-
Continuous deployment
- Adoptar la práctica de despliegue continuo siempre que sea posible
- Desplegar automáticamente a producción cualquier cambio que pase las pruebas automatizadas
- Permite ciclos de retroalimentación rápidos y una entrega ágil de valor al cliente
- Consultar el libro de Valentina Servile, "Continuous Deployment", que ofrece una hoja de ruta para alcanzar la madurez necesaria
-
Retrieval-augmented generation (RAG)
- Patrón preferido para mejorar la calidad de las respuestas de los modelos de lenguaje grandes
- Usado con éxito en proyectos como la plataforma Jugalbandi AI
- Almacenar en una base de datos información sobre documentos relevantes y confiables
- Recuperar y aumentar con documentos relevantes para el prompt, proporcionando un contexto más rico
- Produce mejor calidad de salida y reduce significativamente las alucinaciones
Trial
-
Domain storytelling
- El diseño guiado por dominio (DDD) se ha convertido en la base de nuestro enfoque de desarrollo de software
- Para muchos equipos, empezar con DDD es difícil
- Domain storytelling es una alternativa o complemento para el desarrollo inicial del modelo de dominio
- Aclara el entendimiento compartido al diagramar cómo los expertos del negocio describen sus actividades
-
Fine-tuning embedding models
- Al construir apps con LLM basadas en retrieval-augmented generation, la calidad de los embeddings afecta directamente la recuperación y la respuesta
- Puede mejorar la precisión y adecuación de los embeddings para una tarea o dominio específico
- Nuestro equipo realiza fine-tuning de embeddings cuando la extracción precisa de información es importante en apps con LLM específicas de dominio
- Es necesario considerar las ventajas y desventajas de este enfoque
-
Function calling with LLMs
- Funcionalidad en la que, con base en una consulta dada y documentos relacionados, un LLM decide y llama la función adecuada
- Amplía al LLM para que pueda hacer más que solo generar texto
- Mediante disparadores de funciones o API, el LLM puede realizar tareas que antes estaban fuera del alcance de sus capacidades independientes
- El LLM también puede conectarse a sistemas internos, bases de datos o incluso buscar en internet a través de un navegador
- Un patrón abstracto que debe entenderse en el contexto de retrieval-augmented generation y arquitecturas de agentes
-
LLM as a judge
- Se construyen sistemas que pueden ofrecer respuestas basadas en preguntas sobre grandes datasets, pero es difícil rastrear cómo llegaron a esas respuestas
- Usar un LLM para evaluar la respuesta de otro sistema (que también puede estar basado en LLM)
- Se usa para evaluar la relevancia de resultados de búsqueda en catálogos de productos y la dirección de orientación al usuario en chatbots basados en LLM
- Requiere una configuración y calibración cuidadosas del sistema evaluador
- Puede llevar a mayor eficiencia y reducción de costos
-
Passkeys
- Impulsadas por la FIDO Alliance y respaldadas por Apple, Google y Microsoft, se están acercando al uso masivo
- Al configurar un nuevo inicio de sesión, se genera un par de claves: el sitio web recibe la clave pública y el usuario conserva la clave privada
- El inicio de sesión se procesa usando criptografía asimétrica
- Se demuestra la posesión de la clave privada, que se almacena en el dispositivo del usuario y no se transmite al sitio web
- El acceso a la passkey está protegido con biometría o PIN
- Para usuarios multiplataforma, es posible guardar una passkey en un dispositivo distinto al requerido para generar la clave o iniciar sesión mediante CTAP
-
Modelos de lenguaje pequeños
- Los modelos de lenguaje grandes (LLM) son útiles, pero su tamaño puede generar problemas
- Requieren muchos recursos computacionales para responder prompts, por lo que son lentos y costosos
- Como los modelos suelen ser propietarios y de gran tamaño, deben alojarse en la nube de terceros, lo que plantea problemas con los datos sensibles
- En la mayoría de los casos, entrenar el modelo es excesivamente costoso
- El patrón RAG puede resolver la necesidad de entrenar y hacer fine-tuning del modelo base, pero los problemas de costo y privacidad siguen presentes
- Está creciendo el interés por los modelos de lenguaje pequeños (SLM)
- Tienen menos pesos y menor precisión (por lo general, entre 3.5 y 10 mil millones de parámetros)
- Si se configuran correctamente dentro del contexto adecuado, pueden rendir igual o mejor que un LLM
- Por su tamaño, pueden ejecutarse en dispositivos edge
- Es un campo que evoluciona rápidamente, con ejemplos como Gemini Nano de Google y la serie Phi-3 de Microsoft
- Los modelos de lenguaje grandes (LLM) son útiles, pero su tamaño puede generar problemas
-
Datos sintéticos para probar y entrenar modelos
- Implica generar datos artificiales que puedan imitar escenarios reales sin depender de fuentes de datos sensibles o de acceso restringido
- Los datos sintéticos para conjuntos de datos estructurados se han explorado ampliamente
- Está aumentando la reutilización de datos sintéticos para datos no estructurados
- Esto es especialmente relevante para empresas que enfrentan escasez de datos etiquetados y específicos de dominio para entrenar o hacer fine-tuning de LLM
- Herramientas como Bonito y AgentInstruct de Microsoft pueden generar datos sintéticos de ajuste por instrucciones a partir de fuentes en bruto, como documentos de texto y archivos de código
- Esto acelera el entrenamiento de modelos al reducir el costo y la dependencia de la curación manual de datos
- La generación de datos sintéticos también es un caso de uso importante para resolver problemas de datos desbalanceados o escasos
- Es común en tareas como detección de fraude o segmentación de clientes
- Técnicas como SMOTE equilibran los conjuntos de datos al generar artificialmente instancias de clases minoritarias
- En industrias como la financiera, se usan GAN para simular transacciones poco frecuentes, lo que hace que los modelos sean más robustos para detectar casos límite y mejora el rendimiento general
-
Uso de GenAI para entender codebases legados
- La IA generativa (GenAI) y los modelos de lenguaje grandes (LLM) ayudan a los desarrolladores a escribir y entender código
- Son especialmente útiles en codebases legados con documentación deficiente, desactualizada o engañosa
- Las técnicas y productos para usar GenAI con el fin de entender codebases legados están avanzando más
- Se han usado con éxito especialmente para apoyar tareas de ingeniería inversa en la modernización de mainframes
- Resulta prometedor el enfoque de generación aumentada por recuperación (RAG), donde la recuperación de información se realiza desde grafos de conocimiento sobre el codebase
- Los grafos de conocimiento pueden conservar información estructural sobre el codebase más allá de lo que un LLM puede derivar del texto del código
- Esto ayuda especialmente con codebases legados que tienen poca capacidad explicativa propia y baja cohesión
- También existen oportunidades para enriquecer aún más estos grafos con documentación existente y generada por IA, dependencias externas y conocimiento del dominio del negocio, lo que puede facilitar el trabajo de la IA
Assess
-
Asistentes de IA para equipos
- Las herramientas de asistencia de IA para programación suelen discutirse principalmente en el contexto de apoyar y mejorar el trabajo de contribuyentes individuales
- Sin embargo, el desarrollo de software ha sido y seguirá siendo trabajo en equipo, por lo que es necesario explorar cómo crear asistentes de IA para equipos que ayuden a formar equipos 10x en lugar de ingenieros 10x
- Los avances recientes del mercado de herramientas nos acercan un paso más a hacer esto realidad
- Unblocked es una plataforma que integra todas las fuentes de conocimiento del equipo y las incorpora de forma inteligente en las herramientas de sus integrantes
- Rovo de Atlassian introduce IA en una de las plataformas de colaboración de equipos más utilizadas y ofrece nuevos tipos de búsqueda y acceso a documentos
- Estamos explorando directamente el potencial de la IA para amplificar el conocimiento y apoyar las prácticas del equipo
- Ofrecemos el asistente de equipo Haiven como open source y empezamos a aprender sobre el soporte de IA para tareas no relacionadas con código, como el análisis de requisitos
-
Prompting dinámico con few-shot
- Basado en prompting few-shot, incluye dinámicamente ejemplos específicos en el prompt para guiar las respuestas del modelo
- Al ajustar la cantidad y relevancia de estos ejemplos, se optimizan la longitud del contexto y su pertinencia, mejorando la eficiencia y el rendimiento del modelo
- Bibliotecas como scikit-llm implementan esta técnica usando búsqueda de vecinos más cercanos para recuperar los ejemplos más relevantes que coincidan con la consulta del usuario
- Permite aprovechar mejor la ventana de contexto limitada del modelo y reducir el consumo de tokens
- El generador SQL open source vanna usa prompting dinámico con few-shot para mejorar la precisión de las respuestas
-
GraphQL para productos de datos
- Técnica que usa GraphQL como puerto de salida de productos de datos para que los clientes consuman el producto
- Con GraphQL se crea una capa de API unificada que abstrae la complejidad de los datos subyacentes y ofrece a los clientes una interfaz más consistente y fácil de gestionar
- Al usar GraphQL en productos de datos, los consumidores pueden descubrir sin fricción los formatos y relaciones de los datos mediante el esquema GraphQL y usar herramientas cliente familiares
- Nuestro equipo está explorando esta técnica en casos de uso específicos para explorar y descubrir insights de big data con ayuda de LLM
- El LLM construye consultas GraphQL a partir del prompt del usuario y de un esquema GraphQL de referencia
-
Agentes autónomos impulsados por LLM
- Con la aparición de frameworks como Autogen y CrewAI, esto está evolucionando más allá de sistemas de agente único y sistemas multiagente estáticos
- Es una técnica que descompone actividades complejas en varias tareas pequeñas y las ejecuta asignando roles específicos a cada agente
- Los desarrolladores usan herramientas preconfiguradas para ejecutar tareas, y los agentes pueden conversar entre sí y coordinar el flujo
- Aún está en una etapa temprana de desarrollo, y nuestro equipo ha enfrentado problemas como agentes que caen en bucles continuos o comportamientos fuera de control
- Bibliotecas como LangGraph ofrecen mayor control sobre las interacciones entre agentes gracias a funciones que permiten definir el flujo como un grafo
- Al usar esta técnica, se recomienda implementar mecanismos de seguridad ante fallas, incluidos timeouts y supervisión humana
-
Observabilidad 2.0
- Cambio desde herramientas de monitoreo tradicionales y heterogéneas hacia un enfoque unificado que aprovecha datos de eventos estructurados y de alta cardinalidad en un único almacén de datos
- Captura eventos ricos y en bruto junto con metadatos detallados para ofrecer una única fuente de verdad para un análisis integral
- Almacena los eventos en su forma bruta para simplificar la correlación, apoyar análisis en tiempo real y forense, y permitir una comprensión más profunda de sistemas complejos y distribuidos
- Ofrece monitoreo de alta resolución y capacidades de investigación dinámica
- Prioriza la captura de datos de alta cardinalidad y alta dimensionalidad para una inspección detallada sin cuellos de botella de rendimiento
- Un almacén de datos unificado reduce la complejidad, ofrece una vista consistente del comportamiento del sistema y alinea más estrechamente las prácticas de observabilidad con el ciclo de vida del desarrollo de software
-
Inferencia de LLM en el dispositivo
- Ahora es posible ejecutar modelos de lenguaje grandes (LLM) en navegadores web y en dispositivos edge como smartphones y laptops
- Esto permite procesar datos sensibles de forma segura sin enviarlos a la nube, ofrecer latencia muy baja para tareas como edge computing y procesamiento en tiempo real de imágenes y video, reducir costos al realizar el cómputo localmente y brindar funcionalidad incluso cuando la conexión a internet es inestable o no está disponible
- Es un área con intensa investigación y desarrollo; anteriormente se destacó MLX, un framework open source para machine learning eficiente en Apple Silicon
- Están surgiendo nuevas herramientas como Transformers.js y Chatty
- Transformers.js permite ejecutar transformers en el navegador usando ONNX Runtime (admite modelos convertidos desde PyTorch, TensorFlow y JAX)
- Chatty aprovecha WebGPU para ejecutar LLM en el navegador de forma nativa y privada, ofreciendo una experiencia de IA con funciones avanzadas
-
Salida estructurada de los LLM
- Se refiere a la práctica de restringir las respuestas de los modelos de lenguaje a un esquema definido
- Se puede lograr indicándole a un modelo generalizado que responda en un formato específico o afinando el modelo para una salida "predeterminada" como JSON
- OpenAI ahora admite salidas estructuradas, lo que permite a los desarrolladores restringir las respuestas del modelo proporcionando un esquema JSON, objetos pydantic o Zod
- Es especialmente útil cuando la precisión y el cumplimiento del formato son importantes, como en llamadas a funciones, interacciones con API e integraciones externas
- No solo mejora la forma de interactuar con el código, sino que también admite casos de uso más amplios, como la generación de marcado para renderizar gráficos
- También ayuda a reducir la posibilidad de alucinaciones en la salida del modelo
Mantener
-
Complacencia con el código generado por IA
- Los asistentes de programación con IA como GitHub Copilot y Tabnine son muy populares
- Según la encuesta de desarrolladores de StackOverflow de 2024, "el 72% de todos los encuestados tienen una opinión favorable o muy favorable sobre las herramientas de IA para desarrollo"
- Nosotros también reconocemos sus beneficios, pero advertimos sobre su impacto a mediano y largo plazo en la calidad del código, y pedimos a los desarrolladores que eviten caer en la complacencia con el código generado por IA
- Después de unas cuantas experiencias positivas, es fácil bajar la guardia al revisar sugerencias de IA
- Según una investigación de GitClear, se observa una tendencia a codebases que crecen más rápido, lo que sospechan que coincide con pull requests más grandes
- Este estudio de GitHub cuestiona si el aumento del 15% en la tasa de fusión de pull requests realmente es algo bueno, o si la gente está confiando demasiado en los resultados de la IA y fusionando pull requests más grandes con mayor rapidez
- Seguimos usando el consejo básico de "cómo empezar" que dimos hace un año, y hay que tener cuidado con el sesgo de automatización, la falacia del costo hundido, los estereotipos y la fatiga de revisión
- También es recomendable desarrollar un buen marco mental sobre dónde y cuándo los programadores deben usar la IA y cuándo no deben confiar en ella
-
Entornos de prueba de integración a nivel empresarial
- Son una práctica común y desperdiciadora que vuelve todo más lento
- Tienden a convertirse en recursos valiosos difíciles de replicar y en cuellos de botella para el desarrollo
- Dan una falsa sensación de seguridad debido a inevitables inconsistencias de datos entre entornos y a la sobrecarga de configuración
- Irónicamente, una razón habitual para oponerse a alternativas como entornos efímeros o múltiples entornos de prueba on-premises es el costo
- Sin embargo, no se considera el costo de la demora causada por los entornos de prueba de integración para toda la empresa
- Esto ocurre mientras los equipos de desarrollo esperan a que otros equipos terminen o a que se desplieguen nuevas versiones de sistemas dependientes
- En su lugar, los equipos deberían usar entornos efímeros y comenzar con conjuntos de pruebas baratos de crear y desechar, propiedad del equipo de desarrollo, usando stubs falsos en lugar de réplicas reales
- Otras técnicas que respaldan esta alternativa se enfocan en pruebas de contrato, separar despliegue y release, tiempo medio de recuperación y pruebas en producción
-
Prohibiciones de LLM
- En lugar de imponer prohibiciones generales de LLM en el trabajo, el enfoque debería estar en dar acceso a un conjunto de herramientas de IA aprobadas
- Las prohibiciones solo hacen que los empleados busquen soluciones alternativas no aprobadas y potencialmente inseguras
- Como en los inicios de las computadoras personales, la gente hará su trabajo con las herramientas que considere efectivas sin importar las barreras
- Si no se ofrecen alternativas seguras y garantizadas, las empresas exponen su propiedad intelectual, arriesgan fugas de datos y asumen riesgos de responsabilidad porque los empleados usarán LLM no aprobados
- En cambio, proporcionar LLM o herramientas de IA seguras y aprobadas por la empresa garantiza tanto la seguridad como la productividad
- Con un enfoque bien gestionado, las organizaciones pueden dar a sus empleados las capacidades que ofrecen los LLM mientras administran temas de privacidad de datos, seguridad, cumplimiento y costos
- En el mejor de los casos, un acceso bien gestionado a herramientas de IA puede acelerar el aprendizaje organizacional sobre la mejor manera de usar IA en el trabajo
-
Reemplazar la programación en pareja con IA
- Cuando se habla de asistentes de programación, el tema de la programación en pareja surge inevitablemente
- Nuestra profesión tiene una relación de amor y odio con la programación en pareja
- Algunos la defienden con convicción y otros no la soportan
- Ahora los asistentes de programación plantean la pregunta de si, en lugar de emparejarse con otra persona, los humanos pueden emparejarse con IA y obtener los mismos resultados para el equipo
- GitHub Copilot incluso se presenta como "tu programador en pareja con IA"
- Aunque creemos que los asistentes de programación pueden ofrecer algunos de los beneficios de la programación en pareja, no recomendamos reemplazarla por completo con IA
- Si se considera al asistente de programación como un programador en pareja, se pasa por alto uno de los beneficios principales del pairing: llevar al equipo, y no solo al colaborador individual, en una mejor dirección
- Los asistentes de programación pueden ayudar a destrabar problemas, aprender nuevas tecnologías, hacer onboarding o resolver tareas tácticas más rápido para poder enfocarse en el diseño estratégico
- Sin embargo, no ayudan con los beneficios de colaboración del equipo, como mantener bajo el trabajo en curso, reducir handoffs y reaprendizaje, permitir integración continua y mejorar la propiedad colectiva del código
[Platforms]
Adopt : ninguno
Trial
-
Databricks Unity Catalog
- Es una solución de gobernanza de datos para activos como archivos, tablas y modelos de ML en el Lakehouse
- Es una solución administrada y de código abierto que puede usarse para gestionar y consultar datos en almacenamiento externo o administrados por Databricks
- Tiene la ventaja de ofrecer soporte integrado para gobernanza, gestión de metastore y descubrimiento de datos, reduciendo la necesidad de administrar múltiples herramientas
- Se identificó como desventaja la ausencia de recuperación automática ante desastres en Unity Catalog administrado por Databricks
- El equipo tuvo que configurar por su cuenta funciones de respaldo y recuperación
- Aunque es una solución centralizada, permite delegar permisos para que equipos individuales administren sus propios activos
-
FastChat
- Es una plataforma abierta para entrenamiento, serving y evaluación de modelos de lenguaje de gran tamaño
- Permite alojar de forma consistente varios modelos (Llama 3.1, Mistral 7B, Llama-SQL y otros) con formato de API de OpenAI
- Usa una arquitectura controller-worker para alojar distintos modelos en múltiples workers
- Admite varios tipos de workers, incluidos vLLM, LiteLLM y MLX
- Según el caso de uso, es posible crear y escalar distintos tipos de model workers de FastChat
- Las sugerencias de código en el IDE del desarrollador requieren baja latencia, por lo que se escalan a múltiples workers
- Text-to-SQL tiene menor demanda, por lo que no necesita múltiples workers
- Puede usarse para pruebas A/B
- Permite identificar valores óptimos estableciendo distintos valores de hiperparámetros para el mismo modelo
- Permite validar migraciones sin interrupciones al cambiar modelos en servicios en vivo
-
GCP Vertex AI Agent Builder
- Es una plataforma flexible para crear agentes de IA con un enfoque de lenguaje natural o code-first
- Se integra sin problemas con datos empresariales mediante conectores de terceros
- Proporciona todas las herramientas necesarias para construir, prototipar y desplegar agentes de IA
- Permite a los desarrolladores prototipar agentes rápidamente con una configuración mínima y manejar tareas de datos complejas
- Es útil para construir bases de conocimiento o sistemas de soporte automatizado que gestionen datos estructurados y no estructurados de manera eficiente
-
Langfuse
- Es una herramienta para observabilidad, monitoreo y evaluación de aplicaciones basadas en LLM
- A través de funciones de tracing, análisis y evaluación, permite analizar el rendimiento y la precisión de las completions
- Permite hacer mejoras basadas en datos al gestionar costos y latencia y comprender patrones de uso en producción
- Aprovecha datos de instrumentación que ofrecen trazabilidad completa del flujo de solicitud-respuesta y de los pasos intermedios
- Puede usarse con RAG y agentes autónomos basados en LLM
- Al analizar trazas de conversaciones con puntajes bajos, se pueden identificar áreas de la arquitectura que necesitan mejoras
-
Qdrant
- Es un motor de búsqueda por similitud vectorial y base de datos de código abierto escrito en Rust
- Admite varios modelos de embeddings densos de texto y multimodales
- Embeddings de código abierto como MiniLM-v6 y BGE pueden aprovecharse en múltiples bases de conocimiento de productos
- Se usa como vector store empresarial con soporte para multitenancy
- Los embeddings vectoriales se almacenan en colecciones separadas para aislar la base de conocimiento de cada producto
- Las políticas de acceso de usuarios se administran en la capa de aplicación
-
Vespa
- Es un motor de búsqueda de código abierto y una plataforma de procesamiento de big data.
- Es adecuado para aplicaciones que requieren baja latencia y alto rendimiento.
- Permite implementar búsqueda híbrida usando múltiples tecnologías de búsqueda.
- Admite filtrado y ordenamiento eficientes de diversos metadatos.
- Permite implementar ranking multinivel.
- Puede indexar varios vectores por documento sin duplicación.
- Permite buscar datos en varios campos indexados al mismo tiempo.
Assess
-
Azure AI Search
- Es un servicio de búsqueda en la nube para procesar datos estructurados y no estructurados para aplicaciones como las basadas en conocimiento.
- Admite varios tipos de búsqueda, como por palabras clave, vectorial e híbrida.
- Puede ingerir automáticamente formatos comunes de datos no estructurados como PDF, DOC y PPT para generar contenido buscable.
- Se integra con otros servicios de Azure, como Azure OpenAI, lo que permite crear aplicaciones con una integración manual mínima.
- Es adecuado para proyectos alojados en entornos Azure y muestra un rendimiento estable.
- Permite definir etapas específicas de procesamiento de datos mediante habilidades personalizadas.
-
Databricks Delta Live Tables
- Es un framework declarativo para construir pipelines de procesamiento de datos confiables, mantenibles y comprobables.
- Define las transformaciones de datos con un enfoque declarativo y gestiona automáticamente la infraestructura subyacente y el flujo de datos.
- Ofrece capacidades sólidas de monitoreo y representa visualmente el DAG de todo el pipeline de datos.
- Es útil para el seguimiento de linaje de datos y dependencias.
- Está profundamente integrado con el ecosistema de Databricks, por lo que puede haber limitaciones para personalizar la interfaz.
-
Elastisys Compliant Kubernetes
- Es una distribución especializada de Kubernetes para industrias altamente reguladas, como salud, finanzas y gobierno.
- Proporciona procesos de seguridad automatizados.
- Admite entornos multicloud y on-premises.
- Está construido sobre una arquitectura de seguridad de confianza cero.
- Incorpora cumplimiento de normativas como GDPR y HIPAA, así como de controles como ISO27001.
-
FoundationDB
- Es una base de datos multimodelo adquirida por Apple en 2015 y convertida en código abierto en 2018.
- Su núcleo es un almacén distribuido de clave-valor que ofrece transacciones estrictamente serializables.
- Ha recibido mejoras importantes, como distribución inteligente de datos para evitar hotspots de escritura y nuevos motores de almacenamiento.
- Su arquitectura desacoplada permite escalar de forma independiente distintas partes del clúster.
- A pesar de su amplio conjunto de funciones, es fácil de operar en clústeres grandes.
-
Golem
- Es una plataforma de computación distribuida que usa una arquitectura explícita de máquina de estados para computación duradera.
- Es adecuada para flujos de trabajo de sagas de microservicios de larga ejecución o para la orquestación de agentes de IA.
- Los componentes WebAssembly pueden escribirse en cualquier lenguaje compatible.
- Es determinista y ofrece tiempos de arranque rápidos.
-
Iggy
- Es una plataforma persistente de streaming de mensajes escrita en Rust.
- Admite múltiples streams, topics y particiones.
- Ofrece entrega como máximo una vez, expiración de mensajes y soporte TLS para protocolos QUIC/TCP/HTTP, entre otras funciones.
- Logra alto rendimiento de lectura/escritura con un solo servidor.
- Tiene previsto añadir clustering y soporte para io_uring, por lo que podría convertirse en una alternativa a Kafka.
-
Iroh
- Es un sistema distribuido de almacenamiento de archivos y entrega de contenido que amplía IPFS.
- No tiene límite máximo de tamaño de bloque y ofrece un mecanismo de sincronización de datos mediante ajuste de conjuntos basado en rangos.
- El soporte para navegador a través de WASM está incluido en su hoja de ruta.
- Se puede usar como servicio en la nube a través de iroh.network.
- Ofrece SDK en varios lenguajes y es más amigable para el usuario que IPFS.
-
Large vision model (LVM) platforms
- Son plataformas de modelos de visión a gran escala capaces de segmentar, sintetizar, reconstruir y analizar flujos de video e imágenes.
- Pueden usarse en combinación con modelos de difusión o CNN estándar.
- Existen desafíos relacionados con su adopción en entornos de producción.
- Entre ellos están la recolección de datos de entrenamiento, la segmentación y etiquetado de objetos, y el ajuste fino del modelo.
- Han surgido herramientas como V7, Nvidia Deepstream SDK y Roboflow para resolver estos desafíos.
- Deepstream y Roboflow ofrecen de forma integrada GUI y API para la gestión de flujos de video.
-
OpenBCI Galea
- Es una plataforma tecnológica no invasiva para interfaces cerebro-computadora (BCI).
- Usa señales electrofisiológicas como EEG para ofrecer una alternativa menos riesgosa que los implantes cerebrales.
- Es el producto más reciente de OpenBCI y combina funciones de headset VR con BCI.
- Ofrece streams de datos fisiológicos sincronizados en el tiempo, sensores de posición espacial y seguimiento ocular.
- Los datos de los sensores pueden usarse en Unity o Unreal.
- Se ofrece como plataforma de código abierto para impulsar la innovación de investigadores.
-
PGLite
- Es una compilación WASM de la base de datos PostgreSQL.
- Puede ejecutarse directamente en el navegador web sin una máquina virtual Linux.
- Permite crear una base de datos temporal en memoria u ofrecer persistencia en disco mediante indexedDB.
- Junto con Electric, permite construir aplicaciones reactivas local-first basadas en PostgreSQL.
-
SpinKube
- Es un runtime serverless de código abierto para WebAssembly sobre Kubernetes.
- Aprovecha los tiempos de arranque de milisegundos de WebAssembly para ofrecer una solución serverless más dinámica y flexible para cargas de trabajo bajo demanda.
- Simplifica el desarrollo y despliegue de cargas de trabajo basadas en WebAssembly.
-
Unblocked
- Es una herramienta de búsqueda de activos y artefactos del SDLC.
- Se integra con herramientas de ALM y colaboración para ayudar a entender la base de código y los recursos relacionados.
- Proporciona contexto inmediato y relevante sobre el código, lo que facilita navegar y comprender sistemas complejos.
- Permite que los equipos de ingeniería accedan de forma segura a discusiones, activos y documentación relacionados con su trabajo.
- Captura y comparte el conocimiento de los miembros más experimentados del equipo para que todos puedan aprovecharlo.
Hold : ninguno
[Tools]
Adopt
-
Bruno
- Bruno es una alternativa de escritorio de código abierto a Postman e Insomnia para pruebas, desarrollo y depuración de API.
- Su diseño simple y exclusivamente offline busca ofrecer excelente colaboración, privacidad y seguridad.
- Las colecciones se escriben en Bru Lang, un lenguaje de marcado de texto plano personalizado, y se almacenan directamente en el sistema de archivos, lo que permite compartirlas y colaborar mediante Git o la herramienta de control de versiones que se prefiera.
- Puede usarse como aplicación de escritorio y como herramienta CLI, ofrece una extensión oficial para VS Code y planea añadir soporte para más IDE.
- Se ha convertido en la opción predeterminada de varios equipos de Thoughtworks, pero conviene tener cuidado porque se han reportado fallos inesperados en solicitudes al trabajar en entornos con VPN y proxy.
-
K9s
- K9s ha mejorado sus capacidades de visualización al integrar gráficos y vistas más detallados.
- Ahora representa mejor logs y métricas, y muestra los recursos personalizados (CRD) con mayor flexibilidad.
- Se ampliaron las operaciones sobre pods, se reforzó la integración con herramientas de depuración (por ejemplo,
kubectl debug) y mejoró el soporte para entornos multiclúster. - El soporte para CRD ha mejorado significativamente, por lo que ahora es posible explorar y gestionar mejor estos recursos, y la interacción con los recursos personalizados es más fluida.
- El panel de atajos también se ha mejorado, lo que facilita el acceso para desarrolladores menos familiarizados con
kubectl. - Como K9s al principio estaba enfocado principalmente en equipos de DevOps, esta es una mejora importante.
-
SOPS
- SOPS es un editor de archivos cifrados que admite varios formatos de archivo cifrados con KMS.
- En la gestión de secretos, nuestra recomendación siempre ha sido mantenerlos separados del código fuente.
- Sin embargo, con el espíritu de la infraestructura como código, cuando hay que elegir entre la automatización completa y algunos pasos manuales para gestionar, inicializar y rotar secretos semilla (usando herramientas como Vault), los equipos a menudo enfrentan una disyuntiva.
- Por ejemplo, nuestro equipo usa SOPS para gestionar credenciales semilla para el bootstrap de infraestructura.
- Pero en algunas situaciones no es posible eliminar los secretos de un repositorio de código heredado.
- En esos casos, usamos SOPS para cifrar los secretos en archivos de texto.
- SOPS se integra con almacenes de claves administrados en la nube como AWS y GCP Key Management Service (KMS) o Azure Key Vault como fuente de claves de cifrado.
- Además, funciona en múltiples plataformas y admite claves PGP.
- Cuando es necesario gestionar secretos en un repositorio de código, varios de nuestros equipos usan SOPS por defecto.
-
Visual regression testing tools
- Antes ya habíamos destacado las herramientas de pruebas de regresión visual y hemos observado cómo los algoritmos evolucionaron desde comparaciones a nivel de píxel sin procesar hasta emparejamiento de patrones sofisticado y reconocimiento óptico de caracteres (OCR).
- Las primeras herramientas de pruebas de regresión visual generaban muchos falsos positivos y solo resultaban útiles en etapas tardías del desarrollo, cuando la interfaz ya se había estabilizado.
- BackstopJS evita este problema al realizar pruebas visuales precisas sobre elementos específicos de una página mediante la configuración de selectores y viewports.
- Sin embargo, el machine learning ha facilitado detectar y comparar elementos visuales con mayor precisión, incluso cuando se han movido o contienen contenido dinámico.
- Estas herramientas se han vuelto cada vez más útiles y están bien posicionadas para aprovechar los desarrollos más recientes en AI y machine learning.
- Varias herramientas comerciales como Applitools y Percy ahora afirman usar AI en pruebas de regresión visual.
- Uno de nuestros equipos ha usado ampliamente Applitools Eyes y está satisfecho con los resultados.
- Las pruebas de regresión visual no pueden sustituir pruebas funcionales end-to-end bien escritas, pero son una valiosa adición a la caja de herramientas de testing.
- Las estamos adoptando porque se han convertido en una opción predeterminada segura como parte de una estrategia integral de pruebas de UI.
-
Wiz
- Wiz ha sido la plataforma de seguridad en la nube elegida en muchos proyectos.
- Nuestros equipos valoran que inspecciona continuamente los cambios, lo que le permite detectar riesgos y amenazas más rápido que herramientas similares.
- Wiz puede detectar y alertar sobre configuraciones incorrectas, vulnerabilidades y secretos filtrados tanto en artefactos no desplegados en entornos en vivo (imágenes de contenedores, infraestructura como código) como en cargas de trabajo en vivo (contenedores, VM y servicios en la nube).
- También valoramos sus sólidas capacidades de generación de reportes, tanto para los equipos de desarrollo como para liderazgo.
- Este análisis ayuda a entender cómo una vulnerabilidad podría afectar a un servicio específico, lo que permite resolver el problema en ese contexto.
Trial
-
AWS Control Tower
- AWS Control Tower sigue siendo la mejor opción para gestionar cuentas de AWS en entornos con múltiples equipos.
- Proporciona un mecanismo conveniente para preconfigurar controles de seguridad y cumplimiento que se aplicarán automáticamente a nuevas landing zones.
- Este es un ejemplo de "cumplimiento en el momento del cambio", donde los controles se aplican y validan cada vez que se crea nueva infraestructura, evitando la necesidad de revisiones manuales de cumplimiento posteriores.
- AWS Control Tower Account Factory for Terraform (AFT) ha seguido evolucionando desde el volumen anterior y ahora está disponible en más regiones de AWS.
- Con AFT es posible aprovisionar cuentas de Control Tower mediante pipelines de infraestructura como código.
- Nos gusta que AFT pueda personalizarse para enviar webhooks o realizar acciones específicas a fin de integrarse de manera segura y confiable con herramientas externas como GitHub Actions.
- Nuestros equipos han obtenido grandes resultados gestionando cuentas con AWS Control Tower, pero esperamos que AWS acepte contribuciones de la comunidad al proyecto cuando haya oportunidades de mejora.
-
CCMenu
- Para los equipos que practican integración continua, es importante conocer el estado del build central desde el sistema de integración continua (CI).
- Antes de la pandemia, un dashboard en una gran pantalla de TV en la sala del equipo mostraba esta información de un vistazo.
- Con la continuidad del trabajo remoto, se necesita una solución que funcione en la estación de trabajo individual de cada desarrollador.
- En Mac, ese vacío lo cubre una pequeña app llamada CCMenu, escrita por un Thoughtworker.
- Originalmente parte de CruiseControl, esta app funciona con cualquier servidor que pueda proporcionar información en formato cctray, incluidos Jenkins y TeamCity.
- Tras una reescritura reciente, se añadió soporte para GitHub Actions y se abrió el camino para una integración más profunda con más servidores de CI y estilos de autenticación.
-
ClickHouse
- ClickHouse es una base de datos OLAP columnar de código abierto para analítica en tiempo real.
- Comenzó en 2009 como un proyecto experimental y ha madurado hasta convertirse en una base de datos analítica de alto rendimiento y escalado lineal.
- Gracias a su eficiente motor de procesamiento de consultas y sus capacidades de compresión de datos, es adecuada para ejecutar consultas interactivas sin agregación previa.
- ClickHouse es una buena opción para almacenar datos de OpenTelemetry.
- Su integración con Jaeger permite almacenar grandes volúmenes de datos de trazas y analizarlos de forma eficiente.
-
Devbox
- A pesar de la evolución de las herramientas de desarrollo, para muchos equipos mantener un entorno de desarrollo local consistente sigue siendo un desafío.
- Incorporar a nuevos ingenieros a menudo requiere ejecutar comandos o scripts personalizados que pueden fallar de manera impredecible en distintos sistemas, lo que puede generar inconsistencias.
- Para abordar este problema, nuestros equipos dependen cada vez más de Devbox.
- Devbox es una herramienta de línea de comandos que ofrece una interfaz accesible para crear entornos locales de desarrollo reproducibles y específicos por proyecto aprovechando el gestor de paquetes Nix, sin usar máquinas virtuales ni contenedores.
- Una vez configurado para un codebase, basta con un solo comando de CLI (
devbox shell) para reproducir el entorno definido en un nuevo dispositivo, lo que simplifica enormemente el flujo de onboarding. - Devbox admite hooks de shell, scripts personalizados y la generación de
devcontainer.jsonpara integrarse con VSCode.
-
Difftastic
- Difftastic es una herramienta que resalta diferencias entre archivos de código de una manera consciente de la sintaxis.
- Esto es bastante diferente de herramientas de diferencias de texto como el comando Unix diff.
- Por ejemplo, Difftastic ignora los saltos de línea insertados para dividir sentencias largas en lenguajes delimitados por punto y coma, como Java o TypeScript.
- La herramienta solo resalta cambios que afectan la sintaxis del programa.
- Para ello, primero analiza los archivos en árboles de sintaxis abstracta y luego usa el algoritmo de Dijkstra para calcular la distancia entre los árboles.
- Descubrimos que Difftastic es especialmente útil para entender cambios al revisar codebases grandes.
- Difftastic puede usarse con cualquier lenguaje de programación para el que haya un parser disponible, y admite por defecto más de 50 lenguajes de programación y formatos de texto estructurado como CSS y HTML.
- No es una herramienta nueva, pero creemos que vale la pena destacarla en la era de los asistentes de programación con LLM, donde la revisión con humanos en el ciclo es cada vez más importante.
-
LinearB
- LinearB, una plataforma de inteligencia para ingeniería de software, proporciona a los líderes de ingeniería información basada en datos para apoyar la mejora continua
- Alinea áreas clave como benchmarking, automatización de flujos de trabajo e inversiones dirigidas para mejorar la experiencia del desarrollador y la productividad
- La experiencia con LinearB resalta su capacidad para fomentar una cultura de mejora y eficiencia dentro de los equipos de ingeniería
- Nuestro equipo usó esta plataforma para rastrear métricas clave de ingeniería, identificar áreas que necesitaban mejoras e implementar acciones basadas en evidencia
- Estas capacidades encajan bien con la propuesta de valor central de LinearB: benchmarking, automatización de la recolección de métricas y habilitación de mejoras basadas en datos
- LinearB se integra con herramientas de código fuente, ciclo de vida de aplicaciones, CI/CD y comunicación, y ofrece información cuantitativa integral sobre la experiencia del desarrollador, la productividad y el desempeño del equipo mediante métricas de ingeniería preconfiguradas y métricas personalizadas
- Como defensores de DORA, valoramos que LinearB destaque estas métricas específicas y aumente la capacidad de medir aspectos clave del desempeño en la entrega de software, esenciales para mejorar la eficiencia
- Históricamente, los equipos han tenido dificultades para recopilar métricas específicas de DORA y a menudo han dependido de dashboards personalizados complejos o de procesos manuales
- LinearB sigue ofreciendo una solución atractiva al automatizar el seguimiento de estas métricas y proporcionar datos en tiempo real que respaldan decisiones proactivas sobre experiencia del desarrollador, productividad y previsibilidad
-
pgvector
- pgvector es una extensión open source de PostgreSQL para búsqueda de similitud vectorial, que permite almacenar vectores junto con datos estructurados en una sola base de datos bien configurada
- Aunque carece de algunas funciones avanzadas de las bases de datos vectoriales especializadas, se beneficia del cumplimiento de ACID, recuperación a un punto en el tiempo y otras capacidades sólidas de PostgreSQL
- Con el aumento de las aplicaciones basadas en IA generativa, vemos un patrón creciente de almacenar vectores de embeddings y recuperarlos de forma eficiente para similitud, algo que pgvector resuelve eficazmente
- Dado el aumento de uso de pgvector en entornos de producción, especialmente entre equipos que ya usan proveedores cloud con PostgreSQL administrado, y su capacidad demostrada para cubrir necesidades comunes de búsqueda vectorial sin requerir un almacén vectorial separado, confiamos en el potencial de pgvector
- Nuestro equipo lo ha usado con buenos resultados en proyectos que comparan datos estructurados y no estructurados, lo que demuestra su potencial de adopción más amplia
- Por lo tanto, estamos moviendo pgvector a la etapa de prueba
-
Snapcraft build tool
- Snapcraft es una herramienta open source de línea de comandos para compilar y empaquetar aplicaciones autocontenidas llamadas snaps para Ubuntu, otras distribuciones de Linux y macOS
- Los snaps pueden desplegarse y mantenerse fácilmente en distintas plataformas de hardware, incluidas computadoras Linux, entornos virtuales y sistemas informáticos integrados en vehículos
- Snapcraft ofrece una app store pública para publicar snaps, pero nuestro equipo usa la herramienta de build para empaquetar sistemas de conducción autónoma como snaps sin publicarlos en la app store pública
- Esto permite compilar, probar y depurar sistemas de software embebido localmente, al mismo tiempo que se publican en un repositorio interno de artefactos
-
Spinnaker
- Spinnaker es una plataforma open source de entrega continua creada por Netflix
- Implementa como funciones de primera clase la administración de clústeres y el despliegue de imágenes baked en la nube
- Nos gusta el enfoque opinado de Spinnaker para desplegar microservicios
- Antes señalamos que las versiones anteriores no permitían configurar pipelines como código, pero ese problema se resolvió con la incorporación de la CLI
spin - No recomendamos Spinnaker para escenarios simples de CD, pero en situaciones complejas se ha convertido en la herramienta elegida por muchas personas junto con pipelines de despliegue igualmente complejos
-
TypeScript OpenAPI
- TypeScript OpenAPI (o tsoa) es una alternativa a Swagger para generar especificaciones OpenAPI a partir del código
- Sigue un enfoque code-first y usa controladores y modelos de TypeScript como única fuente de verdad, empleando anotaciones o decoradores de TypeScript en lugar de requerir archivos y configuraciones más complejos al usar herramientas OpenAPI desde TypeScript
- Genera especificaciones de API tanto 2.0 como 3.0 y puede generar rutas para Express, Hapi y Koa
- Si escribes APIs en TypeScript, vale la pena revisar este proyecto
-
Unleash
- Aunque sigue siendo nuestro enfoque recomendado usar el feature toggle más simple posible, el crecimiento en el tamaño de los equipos y el desarrollo más rápido han hecho más compleja la gestión manual de toggles
- Unleash es una opción ampliamente usada por nuestros equipos para resolver esta complejidad y habilitar CI/CD
- Puede usarse como servicio o autohospedarse
- Proporciona SDK en varios lenguajes y cuenta con una UI familiar para la experiencia del desarrollador y la administración
- Aún no hay soporte oficial para la especificación OpenFeature, pero se pueden encontrar proveedores mantenidos por la comunidad para Go y Java
- Unleash puede usarse no solo para feature toggles simples, sino también para segmentación y lanzamientos graduales, lo que lo convierte en una buena opción para la gestión de funcionalidades a escala
Assess
-
Astronomer Cosmos
- Astronomer Cosmos es un plugin de Airflow diseñado para ofrecer más soporte nativo para flujos de trabajo de dbt core en Airflow
- Una vez instalado el plugin,
DbtDagconvierte los nodos de dbt en tareas/grupos de tareas de Airflow al envolver el flujo de trabajo de dbt, lo que permite a los ingenieros visualizar directamente en la UI de Airflow el grafo de dependencias de dbt y el progreso de ejecución - También permite usar conexiones de Airflow en lugar de perfiles de dbt, lo que puede reducir la dispersión de configuración
- Estamos experimentando con esta herramienta por su potencial para hacer más fluidas las tareas de dbt en Airflow
-
ColPali
- ColPali es una nueva herramienta para buscar documentos PDF usando modelos de visión y lenguaje, y aborda la dificultad de construir aplicaciones sólidas de generación aumentada por recuperación (RAG) que puedan extraer datos de documentos multimedia con imágenes, diagramas y tablas
- A diferencia de los métodos tradicionales que dependen de embeddings basados en texto o de tecnologías de reconocimiento óptico de caracteres (OCR), ColPali procesa páginas completas de PDF y aprovecha transformadores visuales para generar embeddings que consideran tanto el texto como el contenido visual
- Este enfoque holístico no solo mejora la búsqueda, sino que también permite razonar por qué se recupera un documento específico, lo que mejora significativamente el desempeño de RAG sobre PDFs ricos en datos
- Hemos probado ColPali con varios clientes y ha mostrado resultados prometedores, aunque esta tecnología sigue en una etapa temprana
- Vale la pena evaluarlo, especialmente para organizaciones con datos documentales visuales complejos
-
Cursor
- La competencia entre herramientas de programación asistida por IA sigue creciendo, y la más destacada es Cursor
- Cursor es un editor de código AI-first diseñado para aumentar la productividad de los desarrolladores mediante una integración profunda de IA en el flujo de trabajo de programación
- Ya habíamos destacado Cursor en una evaluación anterior del Radar, pero ahora está claro que sus mejoras continuas han producido un cambio cualitativo
- En nuestro uso, Cursor ha mostrado una fuerte capacidad de inferencia contextual basada en codebases existentes
- Mientras que otras herramientas de código con IA, como GitHub Copilot, tienden a generar fragmentos de código y colaborar en ellos, las operaciones de edición de múltiples líneas y múltiples archivos de Cursor lo hacen destacar
- Cursor está desarrollado a partir de un fork de VSCode y ofrece una forma de interacción rápida e intuitiva que encaja con la intuición de los desarrolladores
- Las acciones potentes pueden realizarse con
ctrl/cmd+Kyctrl/cmd+L - Cursor está liderando una nueva competencia en herramientas de programación con IA en lo que respecta a la interacción con desarrolladores y la comprensión del codebase
-
Data Mesh Manager
- Data Mesh Manager proporciona la capa de metadatos de una plataforma de data mesh típica
- En particular, se centra en la definición de productos de datos y en las especificaciones de contratos de datos usando la iniciativa OpenContract, y puede integrarse en pipelines de build mediante el DataContract CLI asociado
- Además, esta aplicación ofrece un catálogo de datos para buscar y explorar productos de datos y sus metadatos, y permite una gobernanza federada que incluye la definición de métricas de calidad de datos y la gestión de reglas de calidad de datos
- Es una de las primeras herramientas nativas que han aparecido en este espacio, y no busca adaptar plataformas existentes al paradigma de data mesh
-
GitButler
- La interfaz de línea de comandos de Git es potente y útil, pero tiene fama de volverse muy compleja al gestionar múltiples ramas y hacer staging de commits dentro de ellas
- GitButler es un cliente de Git que ofrece una interfaz gráfica con el objetivo de simplificar este proceso
- Lo hace rastreando cambios de archivos no confirmados de forma independiente a Git y luego haciendo staging de esos cambios en ramas virtuales
- Se podría argumentar que esta es una solución para un problema que no debería existir en primer lugar. Si haces cambios pequeños con frecuencia y haces push al trunk, no necesitas varias ramas
- Sin embargo, si tu flujo de trabajo incluye pull requests, especialmente cuando hay ciclos de revisión largos antes de fusionar un PR, la estructura de ramas puede volverse compleja
- Para resolver esto, GitButler se integra con GitHub para agrupar cambios de forma selectiva en pull requests y publicarlos directamente desde la herramienta
- GitButler es otra incorporación a la creciente categoría de blips orientados a gestionar la complejidad inherente al proceso de PR
-
JetBrains AI Assistant
- JetBrains AI Assistant es un asistente de programación diseñado para integrarse de forma fluida con todos los IDE de JetBrains, con soporte para autocompletado de código, generación de pruebas y cumplimiento de guías de estilo
- Está construido sobre modelos como OpenAI y Google Gemini, y destaca por su capacidad de recordar el estilo de programación para sesiones futuras, lo que ayuda a garantizar resultados consistentes
- Nuestros desarrolladores consideraron especialmente útil la función de generación de pruebas y destacaron su capacidad para manejar salidas más largas sin problemas de estabilidad
- Sin embargo, a diferencia de algunos competidores, JetBrains no hospeda sus propios modelos, por lo que puede no ser adecuado para clientes preocupados por el tratamiento de datos por parte de terceros
- Aun así, el hecho de que esta herramienta esté integrada con los IDE de JetBrains la convierte en una opción prometedora para equipos que exploran asistentes de programación impulsados por IA
-
Mise
- Los desarrolladores que trabajan en entornos polyglot suelen enfrentarse a la necesidad de gestionar múltiples versiones de distintos lenguajes y herramientas
- mise busca resolver este problema ofreciendo una sola herramienta que puede reemplazar a nvm, pyenv, rbenv, rustup y otros, además de poder sustituir a asdf
- Mise está escrito en Rust para mejorar la velocidad de interacción con el shell y, a diferencia de asdf, que usa shims basados en shell, mise modifica por adelantado la variable de entorno PATH para que el tiempo de ejecución de las herramientas sea el de una invocación directa
- Esa es una de las razones por las que mise es más rápido que asdf
- Para desarrolladores que ya están familiarizados con asdf, mise ofrece la misma funcionalidad, pero con algunas diferencias clave
- Está escrito en Rust, por lo que es más rápido, y tiene varias funciones que asdf no ofrece. Por ejemplo, permite instalar varias versiones de la misma herramienta al mismo tiempo y ofrece comandos más flexibles, incluyendo fuzzy matching
- También proporciona un task runner integrado que resulta útil para ejecutar linters, pruebas, builders, servidores y otras tareas específicas del proyecto
- Si ya te cansó tener que usar varias herramientas para gestionar tu entorno de desarrollo y la sintaxis a veces torpe de otras opciones, definitivamente vale la pena echarle un vistazo a mise
-
Mockoon
- Mockoon es una herramienta open source para mocking de API
- Ofrece una interfaz intuitiva, rutas personalizables y respuestas dinámicas, además de capacidades para automatizar la generación de conjuntos de datos simulados
- Mockoon es compatible con OpenAPI y puede crear distintos escenarios para probar localmente e integrarse con pipelines de desarrollo
- También puede interceptar solicitudes y simular solo las llamadas definidas en Mockoon para crear un "mocking parcial"
- El mocking parcial ayuda a simular rutas o endpoints específicos de una API mientras envía las demás solicitudes al servidor real
- El mocking parcial puede ser útil en ciertos escenarios, pero si se usa en exceso existe el riesgo de introducir complejidad innecesaria
- Fuera de eso, Mockoon sigue siendo una herramienta útil para configurar rápidamente API simuladas y mejorar y automatizar flujos de trabajo de desarrollo
-
Raycast
- Raycast es un launcher premium para macOS que permite iniciar aplicaciones rápidamente desde el teclado, ejecutar comandos, buscar archivos y automatizar tareas
- Nuestro equipo valora mucho sus funciones integradas para desarrolladores y su fácil extensibilidad para interactuar con apps y servicios de terceros como VSCode, Slack, Jira y Google
- Raycast está enfocado en la productividad y es una herramienta útil para quienes buscan simplificar tareas cotidianas minimizando los cambios de contexto
- Los usuarios Pro pueden acceder a Raycast AI, un asistente de búsqueda especializado impulsado por IA
-
ReadySet
- ReadySet es una caché de consultas para MySQL y PostgreSQL
- A diferencia de las soluciones de caché tradicionales que dependen de la invalidación manual, ReadySet aprovecha el flujo de replicación de la base de datos para actualizar la caché de forma incremental
- Mediante la materialización parcial de vistas, ReadySet logra una latencia de cola más baja que las réplicas de lectura tradicionales
- ReadySet es wire-compatible con MySQL y PostgreSQL, por lo que puede desplegarse delante de la base de datos sin cambios en la aplicación para escalar horizontalmente las cargas de trabajo de lectura
-
Rspack
- Muchos de nuestros equipos que trabajan en frontend web ya se han pasado de herramientas de bundling más antiguas como Webpack a Vite
- Un nuevo participante en este espacio es Rspack, que lanzó la versión 1.0 tras 18 meses de desarrollo
- Está diseñado como reemplazo de Webpack y es compatible con plugins y loaders del ecosistema de Webpack
- Esto puede ser una ventaja frente a Vite al migrar configuraciones complejas de Webpack
- La razón principal por la que nuestros equipos migran a herramientas modernas como Vite y Rspack es la experiencia de desarrollador, especialmente la velocidad
- Nada rompe más el flujo de desarrollo que tener que esperar entre 1 y 2 minutos antes de recibir feedback sobre el último cambio de código
- Escrito en Rust, Rspack ofrece un rendimiento muy superior al de Webpack y, en muchos casos, incluso más rápido que Vite
-
Semantic Router
- Al crear aplicaciones basadas en LLM, es importante determinar la intención del usuario antes de enrutar una solicitud a un agente específico o invocar un flujo concreto
- Semantic Router actúa como una capa de decisión ultrarrápida para LLM y agentes, permitiendo enrutar solicitudes de manera eficiente y confiable en función de su significado semántico
- Al inferir la intención mediante embeddings vectoriales, Semantic Router reduce llamadas innecesarias al LLM y ofrece un enfoque más simple y rentable para comprender la intención
- Su potencial va más allá de la inferencia de intención y se extiende como un componente versátil para diversas tareas semánticas
- Gracias a la velocidad y flexibilidad que ofrece, se perfila como un fuerte contendiente en entornos que requieren decisiones rápidas y en tiempo real sin la sobrecarga de un LLM
-
Agentes de ingeniería de software
- Actualmente, uno de los temas más candentes en el espacio de GenAI es el concepto de los agentes de ingeniería de software.
- Estas herramientas de apoyo para programación hacen más que ayudar a los ingenieros a escribir fragmentos de código aquí y allá. Amplían el tamaño de los problemas que pueden resolver para, idealmente, ejecutar tareas de forma autónoma y con una intervención humana mínima.
- La idea es que estas herramientas puedan tomar issues de GitHub o tickets de Jira y proponer planes y cambios de código, o incluso generar pull requests para que una persona las revise.
- Este es el siguiente paso lógico para aumentar el impacto de la asistencia de codificación con IA, pero el objetivo de un agente general que pueda abordar el amplio rango de tareas de programación que suele anunciarse es muy ambicioso, y el estado actual de las herramientas no lo demuestra de manera concluyente.
- Sin embargo, vemos que esto podría funcionar pronto para tareas simples de alcance más limitado, con el fin de liberar tiempo de los desarrolladores para problemas más complejos.
- Algunas herramientas con versiones beta de agentes son GitHub Copilot Workspace, qodo flow, el agente de Tabnine para JIRA y Amazon Q Developer.
- El benchmark SWE Bench enumera más herramientas de este espacio, pero advierten que los benchmarks en el ámbito de la IA deben tomarse con algo de cautela.
-
uv
- Rust es adecuado para escribir herramientas de línea de comandos debido a su rápido rendimiento de arranque, y estamos viendo que algunas toolchains se reescriben en Rust.
- En un Radar anterior mencionamos Ruff, el linter de Python escrito en Rust.
- En este volumen evaluamos uv, una herramienta de gestión de paquetes de Python escrita en Rust.
- La propuesta de valor de uv es ser "ridículamente rápido", y en benchmarks supera ampliamente a otras herramientas de gestión de paquetes de Python.
- Sin embargo, durante la evaluación del Radar discutimos si optimizar herramientas de build a nivel de segundos es una mejora marginal.
- Más importante que el rendimiento, en un sistema de gestión de paquetes importan el ecosistema, una comunidad madura y el soporte a largo plazo.
- Aun así, la retroalimentación de los equipos de proyecto mostró que esta pequeña mejora de rendimiento puede ayudar mucho a mejorar los ciclos de feedback y la experiencia general del desarrollador; tendemos a hacer muy complejos los cachés manuales de CI/CD para lograr esta pequeña mejora de rendimiento, y uv simplifica la gestión de entornos de Python.
- Considerando que todavía hay mucho espacio de mejora en la gestión de paquetes y de
envpara el desarrollo en Python, creemos que uv es una opción que vale la pena evaluar.
-
Warp
- Warp es una terminal para macOS y Linux.
- Divide la salida de los comandos en bloques para mejorar la legibilidad.
- Warp incluye funciones impulsadas por IA, como sugerencias inteligentes de comandos y procesamiento de lenguaje natural.
- También incluye una función de notebook que permite a los usuarios organizar comandos y salidas, y agregar anotaciones y explicaciones.
- Aprovechando estas funciones, se pueden crear archivos README o materiales de onboarding, y presentar y gestionar flujos de trabajo de terminal de forma estructurada e interactiva.
- Warp se integra fácilmente con Starship, un prompt flexible compatible con múltiples shells, lo que permite personalizar la experiencia en la terminal consultando información sobre procesos en ejecución, versiones específicas de las herramientas en uso, detalles de Git o incluso el usuario actual de Git.
-
Zed
- Después del cierre del proyecto del editor de texto Atom, sus creadores desarrollaron un nuevo editor llamado Zed.
- Escrito en Rust y optimizado para aprovechar el hardware moderno, Zed se siente rápido.
- Tiene todas las funciones que se esperan de un editor moderno, incluido soporte para muchos lenguajes de programación, terminal integrada y edición multibúfer.
- La asistencia de codificación con IA está disponible mediante integraciones con varios proveedores de LLM.
- Como entusiastas de la programación en pareja, nos han fascinado las funciones de colaboración remota integradas en Zed.
- Los desarrolladores pueden encontrarse entre sí mediante su ID de GitHub y luego colaborar en tiempo real en el mismo espacio de trabajo.
- Aún es pronto para determinar si los equipos de desarrollo pueden, o quieren, escapar del atractivo del ecosistema de Visual Studio Code.
- Sin embargo, Zed es una alternativa que vale la pena explorar.
Hold
- CocoaPods
- CocoaPods es una herramienta de gestión de dependencias muy apreciada desde hace tiempo en proyectos Cocoa de Swift y Objective-C.
- Durante más de 10 años ha sido una herramienta importante para los desarrolladores de iOS y macOS.
- El equipo de CocoaPods anunció que el proyecto pasará ahora a modo de mantenimiento y que el desarrollo activo se detendrá.
- La herramienta CocoaPods y los recursos relacionados seguirán estando disponibles, pero ya no habrá desarrollo de nuevas funciones ni mejoras.
- Se recomienda a los desarrolladores migrar a Swift Package Manager.
- Swift Package Manager ofrece integración nativa con Xcode y puede contar con el soporte a largo plazo de Apple.
[Language and Frameworks]
Adopt
-
dbt
- sigue considerándose una opción sólida e inteligente para implementar transformaciones de datos en pipelines ELT.
- Nos gusta que habilite rigor de ingeniería y prácticas como modularidad, capacidad de prueba y reutilización en transformaciones basadas en SQL.
- Se integra bien con muchos data warehouses, lakehouses y bases de datos en la nube, como Snowflake, BigQuery, Redshift, Databricks y Postgres, y cuenta con un ecosistema saludable de paquetes de la comunidad a su alrededor.
- El soporte nativo recientemente incorporado para pruebas unitarias (dbt core 1.8+ y la experiencia "versionless" de dbt Cloud introducida recientemente) refuerza aún más su lugar en la caja de herramientas.
- La nueva funcionalidad de pruebas unitarias permite definir fácilmente datos de prueba estáticos, establecer expectativas de salida y probar tanto el modo incremental como el de full refresh de los pipelines, algo muy valorado por los equipos.
- En muchos casos, esto les ha permitido descartar scripts hechos en casa manteniendo el mismo nivel de calidad.
-
Testcontainers
- Testcontainers se percibe como una opción predeterminada útil para crear entornos confiables para la ejecución de pruebas.
- Es una biblioteca portada a varios lenguajes que dockeriza dependencias de prueba comunes, incluidos distintos tipos de bases de datos, tecnologías de colas, servicios en la nube y dependencias para pruebas de UI como navegadores web, y también puede ejecutar Dockerfiles personalizados cuando sea necesario.
- Recientemente se lanzó una versión de escritorio que ofrece gestión visual de sesiones de prueba y funciones para manejar escenarios más complejos, lo que los equipos consideran muy útil.
Trial
-
CAP
- Biblioteca de .NET para implementar el patrón Outbox y realizar de forma atómica actualizaciones de base de datos y publicación de eventos en sistemas de mensajería distribuidos.
- Resuelve el problema registrando, dentro de la misma transacción de base de datos, la intención de publicar eventos.
- Es útil porque admite varias bases de datos y plataformas de mensajería, y garantiza entrega al menos una vez.
-
CARLA
- Simulador open source para investigación en conducción autónoma, usado para probar sistemas de conducción autónoma antes de desplegarlos en producción.
- Permite crear y reutilizar con flexibilidad modelos 3D de vehículos, terreno, humanos, animales y más, lo que hace posible simular diversos escenarios.
- Los sistemas de conducción autónoma deben reconocer estos objetos dinámicos y tomar medidas apropiadas, como frenar.
- Se utiliza para el desarrollo y las pruebas continuas de sistemas de conducción autónoma.
-
Databricks Asset Bundles
- Los DABs, que alcanzaron GA en abril de 2024, se están consolidando como una herramienta de empaquetado y despliegue de activos de Databricks que impulsa la adopción de prácticas de ingeniería de software en los equipos de datos.
- Permiten empaquetar en bundles las configuraciones de workflows y jobs junto con el código que se ejecutará en esos jobs, para luego desplegarlos en múltiples entornos mediante pipelines de CI/CD.
- Admiten plantillas para tipos de activos comunes y plantillas personalizadas, lo que permite crear plantillas de servicio a medida para proyectos de ingeniería de datos y ML.
- Se están adoptando cada vez más como una parte clave de los flujos de trabajo de ingeniería.
- Aunque incluyen plantillas de notebooks y admiten su despliegue a producción, no recomiendan llevar notebooks a producción.
- En su lugar, fomentan escribir código de producción de manera intencional con prácticas de ingeniería que respalden requisitos de mantenibilidad, resiliencia y escalabilidad.
-
Instructor
- Biblioteca útil cuando se usa un LLM para solicitar respuestas estructuradas (JSON, YAML, etc.), parsearlas y utilizarlas en una aplicación
- Como los LLM no son deterministas, puede que no siempre funcionen como se les pide
- Permite definir la estructura de salida esperada y configurar reintentos cuando el LLM no devuelve la estructura solicitada
- También ofrece la capacidad de parsear estructuras parciales en un stream, lo que permite transmitir resultados sin esperar la respuesta completa
-
Kedro
- Ha mejorado considerablemente como herramienta de MLOps y mantiene su enfoque en la modularidad y las prácticas de ingeniería
- Enfatiza la modularidad, por ejemplo separando código y datos con la introducción del paquete independiente
kedro-datasets - Mejoras en la CLI, las plantillas iniciales de proyectos y las funciones de telemetría
- El reciente lanzamiento de una extensión para VS Code mejora la experiencia del desarrollador
-
LiteLLM
- Biblioteca que se integra sin fricciones con las API de múltiples proveedores de LLM y estandariza la interacción mediante el formato de la API de OpenAI
- Soporta una amplia gama de proveedores y modelos, y ofrece una interfaz unificada para completions, embeddings y generación de imágenes
- Simplifica la integración al transformar las entradas para ajustarlas a los requisitos específicos de endpoint de cada proveedor
- Proporciona un framework para implementar capacidades operativas necesarias en aplicaciones de producción, como caché, logging, rate limiting y balanceo de carga
- Facilita reemplazar distintos modelos con facilidad, una capacidad necesaria en el contexto actual de rápida evolución de los modelos
- Hay que reconocer que, como las respuestas de los modelos varían para el mismo prompt, un método de invocación consistente por sí solo puede no ser suficiente para optimizar el rendimiento de completions
- Como cada modelo implementa funciones adicionales de manera única, puede ser difícil cubrir todas las capacidades con una sola interfaz
-
LlamaIndex
- Incluye un motor para diseñar aplicaciones de LLM especializadas por dominio y basadas en contexto, con soporte para tareas como ingesta de datos, indexación vectorial y preguntas y respuestas en lenguaje natural sobre documentos
- Con LlamaIndex es posible automatizar la ingesta de documentos, indexar embeddings de documentos y construir pipelines de RAG (Retrieval-Augmented Generation) que consultan esos embeddings según la entrada del usuario
- Con LlamaHub se pueden extender o personalizar los módulos de LlamaIndex y crear aplicaciones de LLM junto con el proveedor de LLM, embeddings y vector store de preferencia
-
LLM Guardrails
- Conjunto de lineamientos, políticas o filtros para evitar que un LLM genere contenido dañino, engañoso o irrelevante
- También puede usarse para proteger aplicaciones de LLM frente a usuarios maliciosos que intenten abusar del sistema con técnicas como la manipulación de entradas
- Funciona como una red de seguridad al establecer límites sobre cómo el modelo procesa y genera contenido
- Frameworks emergentes en este ámbito, como NeMo Guardrails, Guardrails AI y Aporia Guardrails, resultan útiles
- Se recomienda colocar guardrails en todas las aplicaciones de LLM y mejorar continuamente las reglas y políticas
- Es importante para construir aplicaciones de chat con LLM responsables y confiables
-
Medusa
- La mayoría de las soluciones de comercio electrónico para construir sitios web de compras tienden a caer en la trampa del 80/20
- Medusa es una plataforma de comercio open source altamente personalizable y bien equilibrada que permite a los desarrolladores crear experiencias de compra únicas y a medida
- Construida sobre Next.js y PostgreSQL, acelera el proceso de desarrollo con una gama integral de módulos, desde carrito de compras y gestión de pedidos hasta funciones avanzadas como módulos de gift cards y cálculo de impuestos por región
- Se ha aplicado en varios proyectos y ha sido evaluada como un framework valioso
-
Pkl
- Lenguaje y herramienta de configuración open source creado inicialmente para uso interno en Apple
- Su función principal es un sistema de tipos y validación que permite detectar errores de configuración antes del despliegue
- Reduce la duplicación de código (por ejemplo, en casos de overrides por entorno) y permite validar cambios de configuración antes de aplicarlos a un entorno en vivo
- Ofrece amplia integración con IDE y lenguajes, incluida la generación de archivos JSON, PLIST, YAML y
.properties, así como generación de código
-
ROS 2
- Framework open source para el desarrollo de sistemas robóticos
- Proporciona bibliotecas y herramientas que permiten una implementación modular de aplicaciones que abordan funciones como comunicación entre procesos, ejecución multihilo y calidad de servicio
- Ha mejorado respecto de su versión anterior, con mejores capacidades en tiempo real, mayor modularidad, soporte ampliado para distintas plataformas y valores predeterminados razonables
- Para fabricantes con aplicaciones automotrices complejas y en evolución, como funciones de conducción autónoma, su arquitectura basada en nodos y su modelo de comunicación basado en topics resultan especialmente atractivos
- Cada vez se usa más en la industria automotriz
-
seL4
- En escenarios de SDV u otros casos críticos para la seguridad, la estabilidad en tiempo real del sistema operativo es crucial
- Debido a la alta barrera de entrada, unas pocas empresas dominan este campo, por lo que soluciones open source como seL4 son valiosas
- seL4 es un microkernel de sistema operativo de alto aseguramiento y alto rendimiento
- Utiliza métodos de verificación formal para comprobar que el comportamiento del sistema operativo cumple con las especificaciones de forma "matemática"
- La arquitectura de microkernel minimiza las responsabilidades centrales para garantizar la estabilidad del sistema
- Empresas de vehículos eléctricos como NIO están colaborando con el ecosistema de seL4, y podría haber más avances en este campo a futuro
-
SetFit
- Actualmente, la mayoría de las herramientas basadas en IA son generativas, generan texto e imágenes y usan GPT
- Para tareas de texto tradicionales (clasificación de texto o determinación de intención), se prefieren los sentence transformers
- SetFit es un framework para ajustar finamente sentence transformers
- Usa aprendizaje contrastivo para separar distintas clases de intención y a menudo logra una separación clara incluso con muy pocos ejemplos
- Los sentence transformers también pueden desempeñar un papel en sistemas de IA generativa
- En sistemas de chatbot orientados al cliente que usan LLM, SetFit se ha utilizado con éxito para detección de intención, y se eligieron clasificadores basados en SetFit para un filtrado más estricto
-
vLLM
- Motor de inferencia para LLM de alto rendimiento y eficiencia de memoria que puede ejecutarse en la nube o on-premises
- Soporta sin fricciones múltiples arquitecturas de modelos y modelos open source populares
- Se han desplegado workers de vLLM en contenedores Docker sobre plataformas GPU como NVIDIA DGX e Intel HPC para alojar modelos como Llama 3.1 (8B y 70B), Mistral 7B y Llama-SQL para asistencia de programación, búsqueda de conocimiento e interacción con bases de datos en lenguaje natural, entre otros usos
- Es compatible con el estándar del SDK de OpenAI, lo que facilita un serving de modelos consistente
- El AI Model Catalog de Azure mejora el rendimiento del serving de modelos con contenedores de inferencia personalizados y usa vLLM como motor de inferencia predeterminado gracias a su alto throughput y gestión eficiente de memoria
- El framework vLLM está surgiendo como la opción predeterminada para despliegues de modelos a gran escala
Assess
-
Apache XTable™
- Entre los formatos de tabla abiertos disponibles, aún no ha surgido un ganador claro
- Herramientas como Delta UniForm permiten la interoperabilidad entre estos formatos
- Apache XTable™ es un proyecto incubado de Apache que promueve la interoperabilidad bidireccional entre Hudi, Delta e Iceberg
- Debido a las diferencias de capacidades entre estos formatos, depender en gran medida de la interoperabilidad bidireccional a largo plazo podría hacer que los equipos solo puedan usar funciones del "mínimo común denominador"
-
dbldatagen
- Preparar datos de prueba para ingeniería de datos es un desafío considerable
- Transferir datos desde producción a un entorno de pruebas puede ser riesgoso, por lo que los equipos a menudo dependen de datos falsos o sintéticos
- dbldatagen (Databricks Labs Data Generator) es una biblioteca de Python para generar datos sintéticos dentro de entornos de Databricks para pruebas, benchmarking, demos y más
- dbldatagen puede generar miles de millones de filas en cuestión de minutos, lo que permite crear datos sintéticos a gran escala para diversos escenarios, incluidas múltiples tablas, captura de datos de cambios y operaciones de merge/join
-
DeepEval
- DeepEval es un framework de evaluación open source basado en Python para evaluar el rendimiento de los LLM
- Puede usarse para evaluar RAG (retrieval-augmented generation) y otros tipos de aplicaciones construidas con frameworks populares como LlamaIndex o LangChain, y para establecer líneas base y benchmarks al comparar distintos modelos según sea necesario
- DeepEval ofrece métricas y funciones integrales para evaluar el rendimiento de los LLM, como detección de alucinaciones, relevancia de respuestas y optimización de hiperparámetros
- Ofrece integración con
pytest, por lo que es fácil incorporar conjuntos de pruebas en pipelines de CI (continuous integration) junto con assertions
-
DSPy
- Hoy en día, la mayoría de las aplicaciones basadas en modelos de lenguaje dependen de plantillas de prompts ajustadas manualmente para tareas específicas
- DSPy es un framework para desarrollar estas aplicaciones que adopta un enfoque diferente al eliminar la ingeniería de prompts directa
- En su lugar, introduce abstracciones de alto nivel relacionadas con el flujo del programa (mediante módulos que pueden apilarse entre sí), las métricas a optimizar y los datos para entrenar o probar
- Luego optimiza los prompts o los pesos del modelo de lenguaje subyacente con base en las métricas definidas
- El codebase resultante es muy similar al entrenamiento de redes neuronales con PyTorch
-
Flutter for Web
- Flutter es conocido por su soporte multiplataforma para aplicaciones de iOS y Android
- Ahora se ha expandido a más plataformas
- Es posible crear apps para iOS, Android y navegador desde el mismo codebase
- No todas las aplicaciones web tienen sentido en Flutter, pero resulta especialmente adecuado para progressive web apps, single-page apps y para convertir al entorno web apps móviles existentes de Flutter
- Flutter ya había soportado WebAssembly (WASM) como objetivo de compilación en el canal experimental, lo que significaba que estaba en desarrollo activo con posibles bugs y problemas de rendimiento
- En lanzamientos recientes, esto se ha estabilizado
- El rendimiento de las aplicaciones web de Flutter compiladas para el objetivo WASM es muy superior al del objetivo de compilación JavaScript
- El rendimiento casi nativo en distintas plataformas también es una de las razones por las que muchos desarrolladores eligieron Flutter desde el principio
-
kotaemon
- kotaemon es una herramienta y framework open source basado en RAG para crear aplicaciones de Q&A sobre documentos de una base de conocimiento
- Puede entender varios tipos de documentos, incluidos formatos PDF y DOC, y ofrece una interfaz web basada en Gradio para que los usuarios organicen su base de conocimiento e interactúen mediante una interfaz de chat
- Tiene un pipeline de RAG integrado con vector store y puede ampliarse mediante SDK
- También cita documentos fuente en las respuestas junto con vista previa inline basada en web y puntajes de relevancia
- Para quienes buscan una aplicación de Q&A de documentos basada en RAG, este framework personalizable es un muy buen punto de partida
-
Lenis
- Lenis es una librería de smooth scrolling ligera pero potente, diseñada para navegadores modernos
- Permite experiencias de smooth scrolling como sincronización de scroll con WebGL y efectos de paralaje, por lo que es ideal para equipos que crean páginas con interacciones de scroll flexibles y fluidas
- Los desarrolladores han encontrado que Lenis es simple y fácil de usar, y que ofrece un enfoque simplificado para crear smooth scrolling
- Sin embargo, la librería puede presentar problemas de accesibilidad y, en particular, las interacciones de scroll vertical y horizontal pueden confundir a usuarios con discapacidades
- Aunque es visualmente atractiva, su implementación requiere cuidado para mantener la accesibilidad
-
LLMLingua
- LLMLingua aumenta la eficiencia de los LLM al comprimir prompts mediante la eliminación de tokens no esenciales usando modelos de lenguaje pequeños, minimizando la pérdida de rendimiento
- Este enfoque permite que los LLM procesen prompts más largos de forma eficiente mientras conservan la capacidad de razonamiento y el aprendizaje en contexto, abordando desafíos como costo, latencia de inferencia y manejo del contexto
- Compatible con varios LLM sin entrenamiento adicional y con soporte para frameworks como LLamaIndex, LLMLingua es adecuado para optimizar el rendimiento de inferencia de los LLM
-
Microsoft Autogen
- Microsoft Autogen es un framework open source que simplifica la creación y orquestación de agentes de IA, haciendo posible la colaboración multiagente para resolver tareas complejas
- Soporta tanto workflows autónomos como human-in-the-loop, y ofrece compatibilidad con diversas herramientas para distintos LLM e interacciones entre agentes
- En un equipo usaron Autogen para un cliente con el fin de construir una plataforma basada en IA en la que cada agente representa una habilidad específica, como generación de código, revisión de código o resumen de documentos
- Al definir con el framework los modelos y workflows adecuados, el equipo puede crear nuevos agentes de manera fluida y consistente
- Aprovechando LlamaIndex para orquestar workflows, los agentes pueden gestionar de forma eficiente tareas como búsqueda de productos y sugerencias de código
- Aunque Autogen ha mostrado potencial, especialmente en entornos de producción, siguen existiendo preocupaciones sobre la escalabilidad y la gestión de la complejidad a medida que se agregan más agentes
- Se necesita evaluación adicional para valorar su viabilidad a largo plazo en la expansión de sistemas basados en agentes
-
Pingora
- Pingora es un framework en Rust para crear servicios de red rápidos, estables y programables
- Desarrollado originalmente por Cloudflare para resolver las limitaciones de Nginx, Pingora ya muestra un gran potencial, y nuevos proxies como River ya se están construyendo sobre esta base
- Aunque la mayoría de las personas no se enfrentan a una escala del nivel de Cloudflare, sí se encuentran con escenarios donde el enrutamiento flexible en la capa de aplicación es esencial para los servicios de red
- La arquitectura de Pingora permite aprovechar todas las capacidades de Rust en estas situaciones sin sacrificar seguridad ni rendimiento
-
Ragas
- Ragas es un framework diseñado para evaluar el rendimiento de pipelines de retrieval-augmented generation (RAG), abordando el desafío de evaluar tanto los componentes de recuperación como los de generación
- Proporciona métricas estructuradas como fidelidad, relevancia de la respuesta y uso del contexto para ayudar a evaluar la efectividad de sistemas basados en RAG
- Los desarrolladores han encontrado útil ejecutarlo de forma regular para ajustar parámetros como el top k de recuperación y los modelos de embeddings
- Algunos equipos han integrado Ragas en pipelines que se ejecutan a diario cada vez que cambian las plantillas de prompts o los modelos
- Aunque sus métricas aportan insights sólidos, existe la preocupación de que el framework no capture todos los matices ni las interacciones complejas de los pipelines RAG complejos, por lo que se recomienda considerar frameworks de evaluación adicionales
- Aun así, Ragas destaca por su capacidad para simplificar la evaluación de RAG en producción y ofrecer mejoras basadas en datos
-
Score
- Muchas organizaciones que implementan su propia plataforma interna de desarrollo tienden a crear su propio sistema de orquestación de plataformas para aplicar estándares organizacionales entre los desarrolladores y los equipos que alojan la plataforma
- Sin embargo, las capacidades básicas de una plataforma de despliegue "paved road" para alojar cargas de trabajo en contenedores de forma segura, consistente y conforme a regulaciones son similares entre organizaciones
- ¿No sería bueno contar con un lenguaje compartido para especificar estos requisitos?
- Score está mostrando potencial para convertirse en un estándar en esta área
- Es un lenguaje declarativo en formato YAML que describe cómo desplegar cargas de trabajo en contenedores y los servicios y parámetros específicos necesarios para ejecutarlas
- Score fue desarrollado originalmente como lenguaje de configuración para el producto Platform Orchestrator de Humanitec, pero ahora es un proyecto de código abierto bajo la gestión de la CNCF (Cloud Native Computing Foundation)
- Con el respaldo de la CNCF, Score podría usarse más ampliamente más allá de los productos de Humanitec
- Fue lanzado junto con dos implementaciones de referencia: Kubernetes y Docker Compose
- Se espera que la extensibilidad de Score impulse contribuciones de la comunidad para otras plataformas
- Score tiene similitudes con la especificación Open Application Model (OAM) para Kubevela, pero está más enfocado en el despliegue de cargas de trabajo en contenedores que en aplicaciones completas
- También tiene cierto solapamiento con SST, pero SST está más interesado en desplegar directamente en infraestructura cloud que en plataformas internas de ingeniería
- Seguimos observando a Score con interés a medida que evoluciona
-
shadcn
- shadcn desafía el concepto tradicional de biblioteca de componentes al ofrecer componentes reutilizables que se pueden copiar y pegar
- Este enfoque da a los equipos propiedad y control completos, lo que permite una personalización y extensión más sencillas, un área en la que bibliotecas tradicionales más generales como MUI y Chakra UI a menudo se quedan cortas
- Construido con Radix UI y Tailwind CSS, shadcn se integra sin fricciones en cualquier aplicación basada en React, por lo que es adecuado para proyectos que priorizan el control y la escalabilidad
- Incluye un CLI que facilita el proceso de copiar y pegar componentes en un proyecto
- Como también ayuda a reducir dependencias ocultas y a evitar implementaciones fuertemente acopladas, shadcn está llamando la atención como una alternativa atractiva para equipos que buscan un enfoque más práctico y adaptable para el desarrollo frontend
-
Slint
- Slint es un framework declarativo de GUI para crear interfaces de usuario nativas para aplicaciones en Rust, C++ o JavaScript
- Es un framework de UI multiplataforma con funciones importantes como vista previa en vivo, diseño de UI responsivo, integración con VS Code y experiencia de usuario nativa, pero queremos destacar especialmente su utilidad para sistemas embebidos
- Los equipos que desarrollan aplicaciones embebidas tradicionalmente han tenido opciones limitadas para el desarrollo de UI, cada una con sus propias ventajas y desventajas
- Slint usa un lenguaje de marcado fácil de usar similar a HTML y compila directamente a código máquina, ofreciendo un equilibrio ideal entre experiencia de desarrollo y rendimiento
- También presume de una baja huella de recursos en tiempo de ejecución, algo clave para sistemas embebidos
- En resumen, nos gusta Slint porque lleva prácticas probadas del desarrollo web y móvil al ecosistema embebido
-
SST
- SST es un framework para desplegar aplicaciones en entornos cloud junto con todos los servicios necesarios para ejecutarlas
- SST no es solo una herramienta de IaC, sino un framework con una API de TypeScript para definir el entorno de la aplicación, un servicio que despliega la aplicación cuando se activa desde un Git push, y una consola GUI para administrar la aplicación resultante e invocar funciones de gestión de SST
- SST se basaba originalmente en AWS Cloud Formation y CDK, pero las versiones más recientes están implementadas sobre Terraform y Pulumi, por lo que en teoría no depende de un proveedor de nube específico
- SST soporta de forma nativa el despliegue de varios frameworks estándar de aplicaciones web, incluidos Next.js y Remix, y también soporta aplicaciones de API headless
- SST parece pertenecer a su propia categoría
- Tiene similitudes con herramientas de orquestación de plataformas como Kubevela, pero también ofrece funciones de conveniencia para desarrolladores, como un modo live que hace proxy de invocaciones a AWS Lambda hacia funciones que se ejecutan en la máquina local del desarrollador
- Por ahora, SST sigue siendo más bien una curiosidad, pero a medida que evoluciona es un proyecto y una categoría de herramientas que vale la pena seguir
10 comentarios
Gracias. Está interesante.
Han trabajado muy duro... ¡muchas gracias!
Si vamos a comentar de paso sobre la librería de scroll llamada Lenis... ese tipo de animaciones de scroll fluidas, como las del sitio web de Apple, a mí me resultan algo incómodas.
Al intentar verla usando la rueda del mouse, sentía que la animación se cortaba constantemente, y al moverme con la flecha hacia abajo me parecía demasiado rápido como para poder leer el contenido.
Al final, en Windows, la única forma de 'disfrutar' ese tipo de sitios es hacer clic en la rueda de scroll y moverla apenas para bajar lentísimamente, pero no estoy seguro de que eso realmente valga la pena. En una palabra, no sé si sea una buena técnica.
Databricks aparece una cantidad casi aterradora de veces.
Me cansé de leer. T_T
He organizado los productos/servicios que ya habían aparecido en GeekNews.
Platforms - Assess
Platforms - Trial
Language and Frameworks - Adopt
Language and Frameworks - Assess
Language and Frameworks - Trial
Tools - Adopt
Tools - Assess
Tools - Trial
Gracias. Está interesante~
Lo leí muy bien. Muchas gracias.
Lo leí con gusto. Gracias.
Thoughtworks Technology Radar, Volumen 30
Thoughtworks Technology Radar, Volumen 29
Thoughtworks Technology Radar, Volumen 28
Thoughtworks Technology Radar, Volumen 27
Thoughtworks Technology Radar, Volumen 26
Noticias tecnológicas que ThoughtWorks publica cada 6 meses - Radar Vol.23
Noticias tecnológicas que ThoughtWorks publica cada 6 meses - Radar Vol.22
Noticias tecnológicas que ThoughtWorks publica cada 6 meses - Radar Vol.21