Newsletter Blog Cristian Palau

Python

A 100x speedup with unsafe Python

Cómo funciona Python asyncio: uso de generadores

  • Cómo funciona Python asyncio: recreándolo desde cero : Jacob Padilla explora cómo funciona Python asyncio usando generadores. Se detalla la creación de un bucle de eventos, la pausa con ‘yield’, la transición a ‘await’ con el método ‘ await ’, y finalmente la implementación de asyncio real. Se muestra cómo los generadores son la base de asyncio y se explica el proceso paso a paso.

Temporal 1.0.0 – Un bucle de eventos asyncio persistente y distribuido

Nuevo REPL en Python 3.13

  • Nuevo REPL en Python 3.13 : En artículo destaca la llegada del nuevo REPL de Python 3.13, con mejoras como la inclusión de colores en el prompt, indentación automática y soporte para pegar código. Aunque no tiene soporte en Windows, se espera que en el futuro se agregue.

Bases de datos vectoriales para aplicaciones de IA generativa

  • Bases de datos vectoriales para aplicaciones de IA generativa : Abhishek Gupta explora en su artículo la importancia de las bases de datos vectoriales para aplicaciones de IA generativa. Destaca las limitaciones de los modelos LLM y la necesidad de acceso a fuentes de datos externas. Describe cómo las bases de datos vectoriales capturan el significado semántico y su papel en la búsqueda contextual. También presenta la técnica RAG para mejorar la generación de respuestas relevantes en aplicaciones de IA.

Python’s unittest: Cómo escribir pruebas unitarias

Evitar conflictos y dejar que el sistema operativo seleccione un puerto para una aplicación web

Lanzamiento de Pydantic v2.7.0

  • Lanzamiento de Pydantic v2.7.0 : Se ha anunciado el lanzamiento de Pydantic v2.7.0. Entre las novedades se encuentran mejoras en empaquetado, nuevas características como el soporte para campos deprecados y mejoras de rendimiento.

Cómo agregar una marca de agua a una imagen con Matplotlib

Funciones en Python como objetos

  • Funciones en Python como objetos : Stephen Gruppetta explora cómo las funciones en Python son objetos que pueden ser reasignados y manipulados. Se presenta un problema aparentemente imposible de resolver, pero que puede ser abordado con algunas reasignaciones clave.

4 Principios de Diseño de Software que Aprendí a la Fuerza

Creación de Componentes Reutilizables en Django

Java

La mejor manera de usar el atributo opcional OneToOne de JPA

  • La mejor manera de usar el atributo opcional OneToOne de JPA : Vlad Mihalcea explora la mejor forma de utilizar el atributo opcional OneToOne en JPA para evitar problemas de consultas N+1. Se detalla cómo mapear la relación de tablas uno a uno entre las entidades Post y PostDetails, destacando el uso de @MapsId para evitar consultas adicionales y mejorar el rendimiento.

Introducción a Spring AI

  • Introducción a Spring AI : Vojtech Ruzicka explica cómo comenzar con Spring AI para integrar funcionalidades de Inteligencia Artificial en una aplicación Spring Boot. Se detalla la creación de un nuevo proyecto con Spring Initializr, la configuración de dependencias, la gestión de claves de API y la generación de texto e imágenes. Se destaca la abstracción del proveedor de IA para facilitar futuros cambios de plataforma.

Java: Programación Funcional f(x) - Parte 1

  • Java: Programación Funcional f(x) - Parte 1 : Mahendra Rao B muestra cómo la programación funcional se basa en conceptos matemáticos para mejorar la claridad y eficiencia del código. Se discuten los principios fundamentales y conceptos de la programación funcional, así como las características específicas de Java en este paradigma.

Optimizando el desarrollo con Payara Micro en modo Dev

  • Optimizando el desarrollo con Payara Micro en modo Dev : Gaurav Gupta explora el modo Dev del plugin de Maven de Payara Micro, que agiliza el desarrollo al permitir despliegues automáticos, recarga automática, persistencia de sesiones y logs legibles. Estas funciones mejoran la productividad, la calidad del código y la satisfacción del desarrollador al ofrecer una experiencia de desarrollo más fluida.

Rendimiento del compilador K2 y cómo medirlo en tus proyectos

  • Rendimiento del compilador K2 y cómo medirlo en tus proyectos : Con la próxima versión 2.0.0 de Kotlin, el compilador K2 está disponible para realizar pruebas. Se detalla su rendimiento en varios proyectos y brinda herramientas para recopilar estadísticas de rendimiento. El nuevo frontend del compilador mejora la eficiencia de compilación y el análisis en IntelliJ IDEA.

Java en 2024 - Cambio constante

  • Java en 2024 - Cambio constante : Georges Saab, destaca cómo se ha acelerado el ritmo de nuevas versiones de Java desde hace seis años para mantenerse activos en un mundo en constante cambio. Esta estrategia ha permitido una innovación y entrega de características sin precedentes. Se repasan las últimas funcionalidades.

Java 21 and Beyond: A Roadmap of Innovations

Hibernate 6.5.0.Final

  • Hibernate 6.5.0.Final : Se ha lanzado Hibernate 6.5.0.Final, con mejoras en el manejo de objetos Java Time y la posibilidad de configurar el formato de almacenamiento en la caché de consultas. Ahora se permite el uso de registros Java como @IdClass y la habilitación automática de filtros. También se añade soporte para consultas de actualización y eliminación con joins, entre otras novedades.

Hibernate Reactive 2.3.0.Final released

Quarkus 3.10 - Novedades en Hibernate Search, Flyway 10 y mejoras de seguridad

WildFly 32

  • WildFly 32 : Se destaca la introducción de WildFly Glow para facilitar la instalación óptima. Se han añadido nuevas guías de usuario y características individuales, como mejoras de seguridad y herramientas de aprovisionamiento. Además, se presenta un cambio en el soporte de Java SE, recomendando usar SE 21. WildFly Preview ahora muestra avances para Jakarta EE 11.

Cómo usar una Raspberry Pi para ejecutar una acción en GitHub

  • Cómo usar una Raspberry Pi para ejecutar una acción en GitHub : Nicolas Frankel explora cómo migrar de un runner de GitHub a un runner autohospedado en Raspberry Pi. Destaca la necesidad de entender que el script se ejecuta en la máquina, automatizar la provisión de una nueva máquina en caso de fallos y considerar ejecutar el runner dentro de un contenedor en el Pi. Detalla los pasos necesarios para configurar el runner y manejar secretos.

Cómo utilizar la API de Funciones Externas en Java 22 para llamar a Bibliotecas en C

JEP 479: Eliminar el puerto Windows 32-bit x86

  • JEP 479: Eliminar el puerto Windows 32-bit x86 : Eliminar el soporte de código fuente y compilación para el puerto Windows 32-bit x86. Este cambio, propuesto por George Adams y Bruno Borges, tiene como objetivo simplificar la infraestructura de construcción y pruebas de JDK, permitiendo acelerar el desarrollo de nuevas funcionalidades en la plataforma. Se espera que esta eliminación se realice en una versión futura de JDK.

Implementando el Patrón Publisher-Subscriber con AWS SNS y SQS en Spring Boot

Cómo anular FetchType.EAGER con la propiedad fetchgraph de JPA

  • Cómo anular FetchType.EAGER con la propiedad fetchgraph de JPA : Vlad Mihalcea explica cómo anular la estrategia FetchType.EAGER utilizando la propiedad fetchgraph en JPA. Se detalla cómo crear un Entity Graph que excluya la asociación que no se desea recuperar y cómo aplicarlo al recuperar entidades. Esta funcionalidad, disponible desde Hibernate 5.5, permite evitar la carga innecesaria de asociaciones FetchType.EAGER en consultas, mejorando así el rendimiento de las transacciones.

Needle: Una biblioteca de expresiones regulares basada en DFA que se compila a bytecode de JVM

Go

Mejoras en la Biblioteca Estándar de Go con math/rand/v2

Borgo: Un nuevo lenguaje que se compila a Go

  • Borgo: Un nuevo lenguaje que se compila a Go : Borgo, un nuevo lenguaje que se compila a Go, ha generado mucha expectación en la comunidad. Los autores de Borgo buscan crear un lenguaje más expresivo que Go pero menos complejo que Rust, lo que añade seguridad.

Usando Structs para Listas de Argumentos Genéricas

  • Usando Structs para Listas de Argumentos Genéricas : Evan Moses explora en su artículo el uso de structs para listas de argumentos genéricas. Compara la ejecución de un nuevo algoritmo con uno antiguo para garantizar que arrojen la misma respuesta. Propone el uso de structs y genéricos para limpiar el código, similar a banderas de características para probar refactorizaciones.

IA y Ciencia de datos

AI Comic Generation: StoryDiffusion

  • AI Comic Generation: StoryDiffusion : AI Comic Generation: StoryDiffusion es un nuevo avance presentado en un paper de ByteDance y universidades chinas. Este framework innovador genera secuencias coherentes de imágenes y videos a partir de texto, utilizando modelos basados en difusión.

Deep Reinforcement Learning: De novato a experto (Curso)

Cómo funcionan los LLMs, explicado sin matemáticas

Llama-3 with LocalGPT: Conversar con tus documentos de forma privada

Construir una automatización IA usando multiagentes

La efectividad de los grandes prompts en LLMs supera al fine-tuning

Optimización en la recuperación de vectores con técnicas avanzadas de metadatos basadas en grafos

Despliega modelos de lenguaje con vLLM en Hugging Face Inference Endpoints

SEO

Google Clamping Down On: Actualizaciones de Primavera 2024 — Whiteboard Friday

Análisis del core update de Marzo en España

  • Análisis del core update de Marzo en España : Arturo Marimón analiza el último Core Update de Google en España, un update peculiar al integrar el Helpful Content Update (HCU) y desplegarse en fases durante más de un mes. Destaca la publicidad agresiva y la afectación a redes completas de blogs, entre otros factores.

Google experimenta con filtros personalizados para cada usuario

Cómo un post de Reddit se posicionó en Google en 5 minutos

  • Cómo un post de Reddit se posicionó en Google en 5 minutos : Roger Montti detalla cómo un post de Reddit logró posicionarse en Google en tan solo 5 minutos, sorprendiendo a muchos. Montti analiza las posibles razones detrás de este fenómeno y ofrece consejos para aquellos que buscan mejorar su SEO. Una lectura interesante para entender cómo funciona el algoritmo de Google.

Google considera nuevas opciones para reemplazar hreflang

Problemas comunes de JavaScript en sitios de noticias

La importancia de los enlaces gratuitos en la estrategia de linkbuilding

Cómo aprovechar BigQuery para un análisis avanzado de enlaces internos

General

El Patrón Notifier para Aplicaciones que Utilizan Postgres

Entender el funcionamiento de los esquemas y search_path en Postgres

Guía no oficial de Dotfiles en GitHub

La importancia de los niveles de log INFO y ERROR

Los makefiles: Una historia de amor

  • Los makefiles: Una historia de amor : Tom Gągor explora formas creativas de utilizar Makefiles para automatizar tareas diarias a pesar de que algunos consideran esta herramienta obsoleta.

Código y proyectos

Hacer solicitudes HTTP en texto plano

  • Hacer solicitudes HTTP en texto plano : Realiza solicitudes HTTP en texto plano de forma sencilla. Encadena solicitudes, evalúa consultas, define afirmaciones. Herramientas de manipulación integradas para HTML, JSON, REST, SOAP, GraphQL. Exporta informes para monitorizar el tiempo de respuesta. Admite plantillas de solicitud e inyección de variables.

logdy

  • logdy : Plataforma de registro de actividades para desarrolladores. Permite llevar un registro detallado de las acciones realizadas durante el desarrollo de un proyecto. Ideal para mantener un historial organizado y facilitar la colaboración en equipo.

Stirling-PDF

  • Stirling-PDF : Stirling-PDF es una librería de Python para cálculos de distribuciones de probabilidad. Escrita por un experto en estadística, ofrece una guía detallada sobre su uso y ventajas.

Automatización de procesos AI-First con modelos grandes de Lenguaje Multimodal (LLMs)

TagStudio: Una herramienta para la de gestión de archivos y fotos

Java bindings para TensorFlow

  • Java bindings para TensorFlow : Nueva implementación de bindings de TensorFlow para Java, permitiendo a los desarrolladores de Java construir, entrenar y ejecutar modelos de aprendizaje automático.

Nimble Terminal Charts

Ejecuta JavaScript desde Go a través de V8

mactop: Una herramienta similar a htop para los Apple Silicon

Logdy: Un visor web para registros

  • Logdy: Un visor web para registros : Logdy es un visor web en tiempo real para registros. Permite transmitir cualquier contenido a una interfaz web con filtros autogenerados, y luego analizar cualquier formato con TypeScript.

GoWrap: Herramienta CLI para Generar Decoradores para Interfaces

gocron 2.5

  • gocron 2.5 : Paquete cron escrito en Go que permite ejecutar funciones en intervalos predefinidos.

HaxMap: Un mapa hash concurrente y eficiente en memoria

  • HaxMap: Un mapa hash concurrente y eficiente en memoria : HaxMap es un mapa hash concurrente en Golang creado por alphadose. Utiliza el algoritmo de hash xxHash y una implementación de listas lock-free de Harris. Se incluyen ejemplos de instalación y uso, benchmarks comparativos con sync.Map y cornelk-hashmap, consejos para personalizar el algoritmo de hash y mejorar el rendimiento, y detalles sobre su eficiencia en tiempo, memoria y asignaciones.

fzf 0.51

  • fzf 0.51 : Lanzada la versión 0.51.0 de fzf, una herramienta de búsqueda en la terminal. Esta actualización incluye la adición de una nueva variable de entorno $FZF_POS, la opción –with-shell para personalizar el shell de inicio, la acción change-multi para cambiar dinámicamente la opción –multi, mejoras en Windows y correcciones de errores.

Gin 1.10

  • Gin 1.10 : Gin es un framework web escrita en Go con API similar a Martini y hasta 40 veces más rápida.

pacemaker: Controlar el tiempo por iteración en un loop de Python

Vulture: Encuentra Código Python en deshuso

Extracción de datos de archivos PDF con pdfquery

pigsty

  • pigsty : pigsty es una distribución de PostgreSQL que incluye todo lo necesario y es una alternativa gratuita a RDS.

Posts que te pueden interesar:


LinkedIn

comments powered by Disqus