Uso del módulo itertools en Python
: En este post, explico de forma detallada y con ejemplos el uso del módulo itertools de Python para utilizar iteradores y objetos iterables de manera eficiente.
Python
Manejo de Control-C (SIGINT) en Asyncio
Manejo de Control-C (SIGINT) en Asyncio
: Jason Brownlee explica cómo manejar de manera elegante la captura de CTRL-C al usar asyncio. Cuando el usuario presiona CTRL-C, el sistema operativo envía una señal de interrupción al programa, lo que puede complicarse al escribir código concurrente.
Ruff aumenta su rendimiento
Ruff aumenta su rendimiento
: En su última versión, Ruff ha sido optimizado para aumentar el doble de velocidad en su rendimiento de linting.
Cómo utilizar Python para consultar OpenStreetMaps Overpass API
Cómo utilizar Python para consultar OpenStreetMaps Overpass API
: Judith Vockenroth explora dos formas de utilizar Python para consultar Overpass API de OpenStreetMaps, un proyecto de mapas de código abierto que permite a las personas explorar el mapa mundial y planificar rutas.
Uso de strip: Strip puede eliminar más cosas de las esperadas
Uso de strip: Strip puede eliminar más cosas de las esperadas
: En el artículo de Andrew Wegner se explica que las funciones
strip
,
lstrip
y
rstrip
de Python pueden tener un comportamiento inesperado al eliminar una lista de caracteres en lugar de cadenas.
Beneficios de utilizar un sistema de procesamiento de datos desacoplado
Beneficios de utilizar un sistema de procesamiento de datos desacoplado
: En este artículo de Real Python, Phillip Cloud, el líder de Ibis, explora los beneficios de utilizar un sistema de procesamiento de datos desacoplado y cómo escribir consultas reutilizables para diversas plataformas de datos.
Py2wasm: Un compilador de Python a Wasm
Py2wasm: Un compilador de Python a Wasm
: Wasmer, una empresa que desarrolla herramientas Wasm, ha anunciado py2wasm, que convierte programas de Python a WebAssembly, ejecutándolos a hasta 3 veces más rápido que usando Wasm directo.
Cómo formatear floats dentro de F-Strings en Python
Gestión de memoria en mpmetrics
: TRENDS BLOG explora las técnicas de gestión de memoria utilizada en la biblioteca mpmetrics para medir métricas en tiempo de ejecución en Python.
Complejidad temporal en las estructuras de datos en Python
Complejidad temporal en las estructuras de datos en Python
: Trey Hunner explora la notación Big O para describir la relación entre un algoritmo, la cantidad de datos que utiliza y el tiempo de ejecución. El artículo detalla las complejidades temporales de diversas estructuras de datos en Python.
Uso de tipado en Python para matrices
Uso de tipado en Python para matrices
: James Fisher explica cómo utilizar el tipado en Python para garantizar las dimensiones de las matrices que se multiplican entre sí.
Diferencias entre Ruby y Python: el bucle for (2021)
Como diseñar una buena API
: Lynn Root explora qué elementos hacen que una API sea buena: documentación, simplicidad, consistencia, completitud y flexibilidad. Se analizan ejemplos de APIs bien y mal diseñadas para entender cómo optimizar la conexión entre el usuario y la biblioteca. Se destaca la importancia del diseño centrado en el usuario en la creación de APIs.
Resolviendo un problema interesante en Python y Elixir
Resolviendo un problema interesante en Python y Elixir
: Daniel J. presenta un problema interesante que involucra ordenar líneas por números y filtrarlas según una secuencia matemática en Python y Elixir. En Python, se ordenan los números y se filtran según la secuencia (i)(i + 1)/2, mientras que en Elixir se utilizan funciones de filtrado y mapeo para lograr el mismo resultado. Ambas implementaciones se detallan en el artículo.
Java
Datos interesantes sobre Java Streams y Collections
Datos interesantes sobre Java Streams y Collections
: Minkowski comparte interesantes características de Java Streams y Collections, destacando la inmutabilidad de las colecciones en Java y métodos útiles como
groupingBy
y
summingInt
. También explora el uso de
EnumSet
para enums y presenta las novedades de Java 22 con gatherers en streams. Finaliza mostrando el uso del método
reduce()
en streams de Java.
Una vista previa de Jakarta Data 1.0 (Parte II)
Una vista previa de Jakarta Data 1.0 (Parte II)
: Gavin King se presenta la nueva especificación Jakarta Data para persistencia en Java, destacando su seguridad de tipos en tiempo de compilación. Se introduce el metamodelo estático de Jakarta Data, similar al de Jakarta Persistence, y se explican características como ordenamiento dinámico, paginación y paginación basada en claves.
La mejor manera de usar el atributo opcional OneToOne de JPA
La mejor manera de usar el atributo opcional OneToOne de JPA
: Vlad Mihalcea explica cómo evitar problemas de consultas N+1 al utilizar el atributo opcional OneToOne. Se detalla cómo mapear correctamente la relación de tabla uno a uno con JPA y Hibernate, destacando el uso de la anotación @MapsId para evitar problemas de rendimiento.
Novedades en Go 1.22: cmp.Or
: cmp.Or es una función que devuelve el primer valor pasado que no es el valor cero del tipo, útil para acortar asignaciones condicionales.
IA y Ciencia de datos
Mejora en las respuestas LLM RAG con Unstructured y LangChain
Mejora en las respuestas LLM RAG con Unstructured y LangChain
: Andrej Baranovskij explora cómo la biblioteca unstructured ayuda a limpiar el contenido de documentos PDF para que un LLM genere respuestas más precisas. Se genera una respuesta JSON con Nous Hermes 2 PRO LLM sin necesidad de post-procesamiento adicional. Se utiliza una clase dinámica Pydantic para validar la respuesta y asegurar su coincidencia con la solicitud.
LangChain: Cómo dividir correctamente tus fragmentos
LangChain: Cómo dividir correctamente tus fragmentos
: En este video, se explora la clase Recursive Character Text Splitter en LangChain. La forma en que se dividen los fragmentos/datos determina la calidad de las respuestas al chatear con documentos usando LLMs.
Extracción de información de múltiples archivos PDF en LangChain: ChatGPT para tus datos
Preparación de texto con LangChain y Hugging Face
: En este video se muestra como preparar nuestro texto utilizando parsers de datos de LangChain, tokenización con los tokenizadores tiktoken, fragmentación con divisores de texto de LangChain, y almacenar datos con conjuntos de datos de Hugging Face.
Curso online: Introducción a la Inteligencia Artificial Generativa
Gemini API Cookbook
: Colección de guías y ejemplos para la API Gemini, incluyendo tutoriales de inicio rápido para escribir comandos y usar diferentes funciones de la API. Se proporcionan ejemplos de lo que se puede construir. Los SDK oficiales incluyen Python, Node.js, Dart (Flutter), Android, Swift y Go.
Creando un Chatbot Multimodal con Gemini Pro y Streamlit
Biblioteca de prompts
: Web que permite a los usuarios enviar y explorar prompts optimizados para una variedad de tareas. Los prompts pueden ayudar a generar juegos, extraer información de informes, crear sitios web, escribir fórmulas de Excel, y más. Están divididos en tres categorías: prompts personales, prompts empresariales y prompts enviados por los usuarios. Los prompts se pueden filtrar por palabra clave.
Cómo leer la documentación de scikit-learn
Cómo leer la documentación de scikit-learn
: Kevin muestra en este video cómo leer la documentación de scikit-learn. Para dominar esta herramienta, es esencial conocer las cinco páginas principales y tipos de páginas. Kevin destaca la importancia de familiarizarse con ellas para mejorar tus habilidades en scikit-learn.
¿Cómo funciona ChatGPT? Explicado por el equipo de ChatGPT
¿Cómo funciona ChatGPT? Explicado por el equipo de ChatGPT
: Al preguntar a ChatGPT, se siguen varios pasos: (1) Entrada: Se toma el texto de entrada. (2) Tokenización: Se divide en tokens, que representan palabras. (3) Crear embeddings: Cada token se convierte en un vector numérico. (4) Multiplicar embeddings por pesos del modelo: Se multiplican por cientos de miles de pesos del modelo. (5) Se genera una predicción. Todo explicado en este artículo.
SEO
Impacto de la actualización principal de Google de marzo de 2024
Impacto de la actualización principal de Google de marzo de 2024
: La actualización principal de Google de marzo de 2024 se enfoca en combatir el contenido de baja calidad, especialmente el generado por IA. Edwin Toonen destaca la importancia de crear contenido relevante y de calidad para sobrevivir a los cambios del algoritmo. Es crucial monitorear el tráfico, analizar el impacto y mejorar la calidad del contenido y aspectos técnicos para recuperarse tras la actualización.
Consejos para escribir texto alternativo en las imágenes ALT
Node.js 22 disponible
: Node.js 22, con actualizaciones como require()ing ES modules y un cliente WebSocket, llega con mejoras en el motor JavaScript V8. Entrará en soporte a largo plazo en octubre. Este artículo amplía el registro de cambios, brindando más contexto. Node.js 18 llegará al final de su vida útil en abril de 2025.
Docker Build Cloud
Docker Build Cloud
: La plataforma Docker Build Cloud permite construir imágenes de Docker en la nube en lugar de en una máquina local.
Código y proyectos
pypdf: Biblioteca de Python para manipulación de PDF
pypdf: Biblioteca de Python para manipulación de PDF
: pypdf es una biblioteca de Python gratuita y de código abierto capaz de dividir, fusionar, recortar y transformar páginas de archivos PDF. También puede agregar datos personalizados, opciones de visualización y contraseñas a archivos PDF. pypdf puede extraer texto y metadatos de los PDFs.
Mathpix: Automatización de documentos con IA
Mathpix: Automatización de documentos con IA
: Mathpix es una herramienta que utiliza inteligencia artificial para convertir rápidamente PDF e imágenes en texto buscable, exportable y legible por máquinas. Esta tecnología permite una conversión precisa y eficiente de documentos.
Unstructured-IO: Herramientas de preprocesamiento de datos no estructurados de código abierto
Unstructured-IO: Herramientas de preprocesamiento de datos no estructurados de código abierto
: Herramientas de preprocesamiento de datos no estructurados de código abierto que ofrece componentes de código abierto para el preprocesamiento de imágenes y documentos de texto. Estas herramientas facilitan la ingestión y preprocesamiento de datos no estructurados, siendo adaptables y eficientes en la transformación de datos. La biblioteca es ideal para LLMs,
pdfminer.six: Herramienta para extraer información de documentos PDF
pdfminer.six: Herramienta para extraer información de documentos PDF
: pdfminer.six es un fork mantenido por la comunidad de PDFMiner original. Escrito en Python, se enfoca en extraer y analizar datos de texto, ubicación, fuente y color de documentos PDF. Permite implementar intérpretes personalizados y se puede usar para otros propósitos además del análisis de texto.
PyMuPDF: Biblioteca de alto rendimiento para manipulación de documentos PDF en Python
pdfplumber: Extracción de información detallada de PDFs
pdfplumber: Extracción de información detallada de PDFs
: Herramienta que permite extraer información detallada de cada carácter, rectángulo y línea de un PDF, además de extraer fácilmente texto y tablas. Funciona mejor en PDFs generados por ordenadores, está construido sobre
pdfminer.six
y es compatible con Python 3.8 en adelante.
tiktoken: Un tokenizador BPE rápido para modelos de OpenAI
tiktoken: Un tokenizador BPE rápido para modelos de OpenAI
: Tiktoken es un tokenizador BPE rápido para modelos de OpenAI. Tiktoken se usa para mejorar el rendimiento de tokenización en comparación con otros tokenizadores de código abierto.
orjson: Biblioteca de Python para JSON
orjson: Biblioteca de Python para JSON
: orjson es una biblioteca de Python rápida y precisa para procesar JSON. Serializa instancias de dataclasses, datetimes y numpy de forma nativa. Destaca por ser más rápida y precisa que la biblioteca estándar de Python y otras bibliotecas de terceros.
Exploración de datos local en el navegador con Pretzel
Exploración de datos local en el navegador con Pretzel
: Pretzel, una herramienta de exploración de datos de código abierto, utiliza DuckDB-Wasm y PRQL. Permite manipular datos de forma visual y rápida en el navegador sin necesidad de backend.
Miller: Herramienta para manipulación de datos en CSV, TSV y JSON
Gemfast: Servidor de gemas desarrollado en Go para desarrolladores de Ruby
Gemfast: Servidor de gemas desarrollado en Go para desarrolladores de Ruby
: Gemfast es un nuevo servidor Rubygems autohospedado, escrito en Go para una implementación más sencilla, que permite a los desarrolladores de Ruby reflejar y almacenar en caché gems de registros oficiales, así como servir sus propias gemas privadas.
Muffet: Herramienta de verificación de enlaces a sitios web
Muffet: Herramienta de verificación de enlaces a sitios web
: Muffet: Herramienta de verificación de enlaces a sitios web rápida y recursiva, desarrollada por Yota Toyama, que permite raspar e inspeccionar páginas de un sitio de forma recursiva a través de la línea de comandos.
Micro 4.5: Plataforma de desarrollo de servicios en Go
env 11.0
: Env es una biblioteca simple y sin dependencias para analizar variables de entorno en estructuras en Go. Permite definir valores por defecto, tipos de datos compatibles y funciones de análisis personalizadas. La biblioteca es útil para configurar aplicaciones de forma sencilla y eficiente.
Go-OpenAI 1.22
Go-OpenAI 1.22
: Go-OpenAI 1.22 es una biblioteca no oficial de clientes Go para la API de OpenAI, incluyendo soporte para ChatGPT, GPT-3, GPT-4 y DALL·E. Proporciona ejemplos de uso, cómo obtener una clave de API de OpenAI, ejemplos de completado de chat, generación de imágenes con DALL-E 2, configuración de proxy, soporte de contexto para ChatGPT, entre otros. También aborda temas como manejo de errores, ajuste fino de modelos y más.
Goose: Herramienta de migración de base de datos
: Goose es una herramienta de migración de base de datos escrita en Go. Permite gestionar el esquema de la base de datos mediante cambios incrementales en SQL o funciones de Go.
Quix Streams - Una biblioteca para streaming de datos y procesamiento de Python
Quix Streams - Una biblioteca para streaming de datos y procesamiento de Python
: Quix Streams es una librería en la nube para procesar datos en Kafka usando Python puro. Ofrece beneficios como escalabilidad, integración con ecosistema Python, operaciones con estado, garantías de procesamiento en Kafka y fácil integración con Quix Cloud.
AndroidIDE: IDE para desarrollar aplicaciones Android completas
AndroidIDE: IDE para desarrollar aplicaciones Android completas
: AndroidIDE es un IDE para desarrollar aplicaciones Android completas. Ofrece soporte para Gradle, JDK 11 y JDK 17, terminal con paquetes necesarios, variables de entorno personalizadas, administrador de SDK, información de API para clases y miembros, lector de registros, servidores de lenguaje, diseñador de UI, traductor de cadenas, Asset Studio, Git, entre otras funcionalidades.
Vineflower: Un decompilador moderno para Java
Vineflower: Un decompilador moderno para Java
: Vineflower es un decompilador de lenguaje JVM de propósito general enfocado en proporcionar la mejor calidad, velocidad y usabilidad. Sus características incluyen soporte para Java 20+, generación de código limpio y multihilo.
Torchtune una librería nativa de PyTorch para el fine-tunning de LLM
Torchtune una librería nativa de PyTorch para el fine-tunning de LLM
: Torchtune es una librería creada para el fine-tunning de LLMs, ofrece implementaciones de modelos populares de LLMs con bloques de construcción modulares. Permite entrenar y experimentar con LLMs de forma sencilla y personalizable.
Quix Streams: Una biblioteca de Python para construir aplicaciones de ML y Generative AI contenerizadas con Apache Kafka
Quix Streams: Una biblioteca de Python para construir aplicaciones de ML y Generative AI contenerizadas con Apache Kafka
: Quix Streams es una biblioteca de Python para procesar datos en Kafka usando Python puro. Diseñada para ofrecer la potencia de un sistema distribuido en una biblioteca ligera, combina la escalabilidad y la resiliencia de Kafka con una interfaz fácil de usar en Python. Ideal para aplicaciones de aprendizaje automático, inteligencia artificial o basadas en física en tiempo real.
MegaBlocks: Entrenamiento eficiente con Mixture-of-Experts