Newsletter Blog Cristian Palau

Posts publicados en mi blog

Convertir CSV a JSON usando la herramienta Miller (mlr)

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

Uso de strip: Strip puede eliminar más cosas de las esperadas

Beneficios de utilizar un sistema de procesamiento de datos desacoplado

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

  • 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

Diferencias entre Ruby y Python: el bucle for (2021)

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

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.

Go

El camino de Go en Google: De cero a producción

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

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

  • 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

  • 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

  • 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

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

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

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

Miller: Herramienta para manipulación de datos en CSV, TSV y JSON

makefile-graph: Convertir un Makefile en un Gráfico

elem-go: Cómo crear y manipular elementos HTML de forma segura en Go

Análisis de Tamaño de Dependencias en Binarios Compilados de Go

Gemfast: Servidor de gemas desarrollado en Go para desarrolladores de Ruby

Muffet: Herramienta de verificación de enlaces a sitios web

Micro 4.5: Plataforma de desarrollo de servicios en Go

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

ParadeDB: Una alternativa a Elasticsearch construida sobre Postgres

Goose: Herramienta de migración de base de datos

Quix Streams - Una biblioteca para streaming de datos y procesamiento de Python

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

Quix Streams: Una biblioteca de Python para construir aplicaciones de ML y Generative AI contenerizadas con Apache Kafka

MegaBlocks: Entrenamiento eficiente con Mixture-of-Experts

Posts que te pueden interesar:


LinkedIn

comments powered by Disqus