
Posts publicados en mi blog
Convertir CSV a JSON usando la herramienta Miller (mlr)
- Convertir CSV a JSON usando la herramienta Miller (mlr): Post en el que se explica de forma detallada el uso de la herramienta Miller (mlr) para la conversión de un archivo en formato CSV a JSON.
Uso del módulo itertools en Python
- 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
- Cómo formatear floats dentro de F-Strings en Python: En este tutorial de REAL PYTHON, se explica el uso de f-string para formatear un float con la precisión requerida.
Gestión de memoria en mpmetrics
- 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)
- Diferencias entre Ruby y Python: el bucle for (2021): Doug Turnbull explora las diferencias fundamentales entre Ruby y Python a través del bucle
for.
Como diseñar una buena API
- 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.
La guia completa de logging en Django
- La guia completa de logging en Django: Guía muy detallada de como implementar el logging en Django.
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
groupingByysummingInt. También explora el uso deEnumSetpara enums y presenta las novedades de Java 22 con gatherers en streams. Finaliza mostrando el uso del métodoreduce()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.
Go
El camino de Go en Google: De cero a producción
- El camino de Go en Google: De cero a producción: Yves Junqueira trabajó como SRE en Google durante nueve años y comparte la historia de cómo vio crecer y se adaptó Go en la empresa.
Novedades en Go 1.22: cmp.Or
- 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
- Extracción de información de múltiples archivos PDF en LangChain: ChatGPT para tus datos: En vídeo muestra como extraer información de PDFs utilizando LangChain y OpenAI Text Embeddings. Muestra como configurar LangChain y comunicarse con archivos PDF, permitiendo recuperar información de manera eficiente.
Preparación de texto con LangChain y Hugging Face
- 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
- Curso online: Introducción a la Inteligencia Artificial Generativa: Microsoft presenta un curso de 18 vídeos para principiantes sobre Inteligencia Artificial Generativa.
Gemini API Cookbook
- 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
- Creando un Chatbot Multimodal con Gemini Pro y Streamlit: The Machine Learning Engineer nos enseña cómo crear un Chatbot multimodal con Gemini Pro 1.5 utilizando el SDK de Python y desplegarlo con Streamlit.
Biblioteca de prompts
- 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
- Consejos para escribir texto alternativo en las imágenes ALT: Scott Vandehey ofrece consejos prácticos sobre cómo redactar texto alternativo para imágenes. Enfocándose en relevancia y claridad.
General
Node.js 22 disponible
- 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
- PyMuPDF: Biblioteca de alto rendimiento para manipulación de documentos PDF en Python: PyMuPDF es una biblioteca de alto rendimiento en Python para extracción, análisis, conversión y manipulación de documentos PDF y otros.
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.sixy 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
- Miller: Herramienta para manipulación de datos en CSV, TSV y JSON: Miller, es como awk, sed, cut, join y sort para ficheros CSV, TSV y JSON. Permite agregar nuevos campos, eliminar campos, ordenar, agregar estadísticas, entre otras funciones.
makefile-graph: Convertir un Makefile en un Gráfico
- makefile-graph: Convertir un Makefile en un Gráfico: makefile-graph: Convertir un Makefile en un Gráfico. Herramienta que analiza makefiles y genera gráficos que representan las relaciones.
elem-go: Cómo crear y manipular elementos HTML de forma segura en Go
- elem-go: Cómo crear y manipular elementos HTML de forma segura en Go: Elem-go, una forma segura de crear y manipular elementos HTML en Go.
Análisis de Tamaño de Dependencias en Binarios Compilados de Go
- Análisis de Tamaño de Dependencias en Binarios Compilados de Go: Go-size-analyzer es una herramienta para analizar el tamaño de las dependencias en los binarios de Go compilados.
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
- Micro 4.5: Plataforma de desarrollo de servicios en Go: Micro es una plataforma de desarrollo de servicios en Go, que simplifica la construcción de servicios en la nube.
env 11.0
- 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.
automathon: Simula y Visualiza Autómatas Finitos
- automathon: Simula y Visualiza Autómatas Finitos: Automathon es una librería en Python para simular y visualizar autómatas finitos.
ParadeDB: Una alternativa a Elasticsearch construida sobre Postgres
- ParadeDB: Una alternativa a Elasticsearch construida sobre Postgres: ParadeDB es una alternativa a Elasticsearch para Postgres que acelera las búsquedas y el análisis.
Goose: Herramienta de migración de base de datos
- 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
- MegaBlocks: Entrenamiento eficiente con Mixture-of-Experts: MegaBlocks es una librería ligera para el entrenamiento de Mixture-of-Experts (MoE).
Posts que te pueden interesar:
- #2 - Los mejores enlaces sobre programación y ciencia de datos de la semana (24-04-2024)
- #1 - Los mejores enlaces sobre programación y ciencia de datos de la semana (14-04-2024)
- La mejor cheatsheet de Python
- Uso del módulo itertools en Python
- Aplanar listas anidadas en Python
comments powered by Disqus