Newsletter Blog Cristian Palau

Python

PEP 686: Hacer que el Modo UTF-8 sea el Predeterminado

  • PEP 686: Hacer que el Modo UTF-8 sea el Predeterminado : El PEP 686, propone que UTF-8 sea el modo predeterminado en Python, extendiendo el uso de Unicode introducido en Python 3 a la codificación de archivos, tuberías y más. Aunque se seguirán admitiendo otros tipos de codificación, este cambio está previsto para Python 3.15.

Lazy Evaluation en Python: Ventajas y Desventajas

Serverless Python in 2024

  • Serverless Python in 2024 : En una entrevista de Talk Python, Tony Sherman y Kennedy discuten el estado actual del serverless en el mundo de Python, destacando nuevas herramientas y buenas prácticas.

PyPy v7.3.16: lanzamiento de Python 2.7, 3.9 y 3.10

PEP 745: Calendario para Python 3.14

  • PEP 745: Calendario para Python 3.14 : El PEP 745 describe el calendario de desarrollo y lanzamiento de Python 3.14. El documento detalla el equipo de lanzamiento, el cronograma de versiones alfa, beta y final, y la duración estimada de actualizaciones de corrección de errores.

Uso de Métodos eb objetos Coroutine usando Asyncio

Genera pruebas unitarias para tu código Python con ChatGPT

Comparación de la Fórmula de Leibniz para Π en Python, JavaScript y Ruby

Mejor Parametrización de Pruebas en pytest

Google despide a su equipo de Python

Automatiza tu infraestructura utilizando Python con Pyinfra

  • Automatiza tu infraestructura utilizando Python con Pyinfra : Pyinfra permite automatizar infraestructuras utilizando Python. Es rápido y escalable, ideal para ejecución de comandos ad-hoc, despliegue de servicios, gestión de configuraciones y más. Conectores para Docker, Terraform, Vagrant y más.

PySheets - Interfaz de hoja de cálculo para Python

  • PySheets - Interfaz de hoja de cálculo para Python : PySheets proporciona una interfaz Python para hojas de cálculo, permitiendo a los usuarios realizar exploración de datos, utilizar Pandas, crear gráficos con matplotlib, importar hojas de cálculo de Excel, analizar datos y crear informes. Todo el código Python se ejecuta en el navegador.

Einsum: Manipulación de Tensores en 40 líneas de Python

  • Einsum: Manipulación de Tensores en 40 líneas de Python : Se explora el uso de Einsum en Python para manipular tensores, comparando la implementación iterativa con la vectorizada. Se destacan ventajas como documentar dimensiones y reordenarlas implícitamente. Se muestra cómo Einsum puede simplificar operaciones como multiplicación de matrices en Machine Learning.

Java

Es hora de dejar de usar Date

  • Es hora de dejar de usar Date : Gavin King menciona que en JPA 3.2 se ha deprecado el uso de java.util.Date y sus clases relacionadas, recomendando utilizar java.time en su lugar. Se añade soporte para nuevas clases como Instant y Year. Se sugiere a los desarrolladores dejar de usar java.util.Date y sus subclases para representar fechas en las entidades.

Hibernate ORM 6.5 - Mejora en la recuperación de valores generados, como PK’s

  • Hibernate ORM 6.5 - Mejora en la recuperación de valores generados, como PK’s : Hibernate ORM 6.5 presenta mejoras en la eficiente recuperación de valores generados en la base de datos, reduciendo la necesidad de consultas adicionales. Marco Belladelli destaca cómo ahora Hibernate puede recuperar valores generados durante operaciones de inserción y actualización de entidades de manera más eficiente, sin requerir cambios en las configuraciones existentes.

JEP 469: Vector API

  • JEP 469: Vector API : Se introduce una propuesta de API para realizar cálculos vectoriales que se compilan de manera óptima en tiempo de ejecución en arquitecturas de CPU compatibles, logrando un rendimiento superior a cálculos escalares equivalentes. El autor, Paul Sandoz, detalla cómo la API Vector ha evolucionado a lo largo de las incubadoras anteriores y cuáles son los objetivos y no objetivos de esta nueva versión en JDK 23.

Guía de Jextract

  • Guía de Jextract : La Guía de Jextract proporciona información detallada sobre cómo automatizar flujos de trabajo, alojar y gestionar paquetes, encontrar y solucionar vulnerabilidades, crear entornos de desarrollo instantáneos, mejorar el código con inteligencia artificial, gestionar cambios de código, planificar y hacer seguimiento del trabajo, colaborar fuera del código y explorar todas las funciones disponibles en GitHub.

Debug sin Breakpoints

  • Debug sin Breakpoints : Igor Kulakov explora la técnica de pausar en IntelliJ IDEA como alternativa a los puntos de interrupción en la depuración de programas Java y Kotlin. Esta técnica permite suspender la aplicación en cualquier momento, útil para casos de aplicaciones no responsivas o problemas de sincronización. Se revela un truco para acceder a funciones avanzadas de depuración tras pausar la aplicación.

JDK 17 se acerca al final de la licencia permisiva

  • JDK 17 se acerca al final de la licencia permisiva : El artículo de Donald Smith explica que JDK 17, lanzado en septiembre de 2021, finalizará su soporte bajo la licencia NFTC en septiembre de 2024. A partir de entonces, las actualizaciones se ofrecerán bajo la licencia OTN. Los usuarios pueden migrar a JDK 21 para recibir soporte a largo plazo. GraalVM seguirá un patrón similar. Oracle recomienda la suscripción Java SE Universal para soporte continuo hasta 2029.

Cómo subir archivos con Quarkus

  • Cómo subir archivos con Quarkus : En este video, Sebastian Daschner explica las novedades sobre cómo subir archivos con Quarkus. Ahora, Quarkus RESTEasy Reactive se llama Quarkus REST, y para RESTEasy Classic se utilizan @MultipartForm , MultipartInput y MultipartFormDataInput . En Quarkus REST (reactivo), @MultipartForm está obsoleto y se puede usar FileUpload .

Nuevas versiones JDK 22.0.1, 21.0.3, 17.0.11, 11.0.23 y 8u411

Hibernate 7.0.0.Alpha1

  • Hibernate 7.0.0.Alpha1 : Hibernate 7.0.0.Alpha1 es la primera versión de desarrollo de la familia Hibernate 7.0, que incluye nuevas características, mejoras y correcciones. Este lanzamiento migra a Jakarta Persistence 3.2, requiere Java 17, introduce un nuevo XSD para mapeo y cambia a Hibernate Models para el procesamiento de modelos de dominio. Se realiza una validación más estricta del modelo de dominio de la aplicación.

Quarkus 3.2.12.Final

  • Quarkus 3.2.12.Final : Lanzado Quarkus 3.2.12.Final, la undécima versión de mantenimiento de la versión LTS 3.2. Este lanzamiento incluye correcciones de seguridad y actualizaciones de componentes.

JReleaser cumple 3 años

  • JReleaser cumple 3 años : Andres Almiray celebra el tercer aniversario de JReleaser, destacando su crecimiento y adopción. En el último año, se añadieron nuevas características como soporte para Jib, Winget, SLSA, SWID, SBOM, Bluesky, OpenCollective, y mejoras en la publicación en Maven Central. Las descargas mensuales desde Maven Central han aumentado 3 veces, alcanzando las 225k.

¿Es el desarrollo Agile siempre la respuesta?

  • ¿Es el desarrollo Agile siempre la respuesta? : Dave Ogle reflexiona sobre si Agile es la mejor opción para todos los equipos de desarrollo de software. Destaca la importancia de definir Agile, la confusión entre Agile y Scrum, los desafíos al implementar Agile y la necesidad de equipos autoorganizados. Enfatiza en la adaptabilidad de los procesos y la importancia del trabajo en equipo.

Async APIs - no confundas tus eventos, comandos y estado

  • Async APIs - no confundas tus eventos, comandos y estado : David Hope explora la complejidad de los mensajes en sistemas de trading financiero. Se diferencian eventos, comandos e estado, destacando que los eventos indican un cambio mientras que el estado contiene la entidad completa. Se discuten las ventajas y desventajas de cada enfoque, sin una opción claramente preferida.

De los años 80 a 2024: cómo se inventaron y optimizaron las pruebas de integración continua

  • De los años 80 a 2024: cómo se inventaron y optimizaron las pruebas de integración continua : Greg Foster explora la evolución de las pruebas de integración continua, desde las inspecciones manuales en los 80 hasta la automatización en la actualidad. Se destaca la importancia de las pruebas unitarias, la creación de servidores automatizados como Hudson (Jenkins) y la optimización actual con enfoque en la velocidad y eficiencia de las pruebas. Greg Foster analiza cómo la velocidad y la eficiencia de las pruebas han evolucionado a lo largo del tiempo, destacando la importancia de la automatización y la optimización de las pruebas de integración continua en el desarrollo de software.

¿Y si null fuera un objeto en Java?

  • ¿Y si null fuera un objeto en Java? : Donald Raab compara cómo Java y Smalltalk manejan los valores ausentes, conocidos como null en Java y nil en Smalltalk. Se explora la posibilidad de que null en Java fuera una instancia de una clase Null , permitiendo métodos como ifNull , isNotNull , y más. Se destaca la utilidad de nil como objeto en Smalltalk para lograr consistencia y claridad.

Lanzamiento de WildFly 32

  • Lanzamiento de WildFly 32 : Brian Stansberry anuncia el lanzamiento de WildFly 32.0.0.Final, destacando las herramientas de aprovisionamiento WildFly Glow y las nuevas guías de usuario. Se introducen características de seguridad, aprovisionamiento y desarrollo, con diferentes niveles de estabilidad. WildFly Preview ahora muestra soporte para Jakarta EE 11, requiriendo Java SE 17 o superior. Se recomienda ejecutar WildFly 32 en Java SE 21.

Implementando tu propio recolector de basura en Java

  • Implementando tu propio recolector de basura en Java : En este artículo de ExiledTech se explora cómo diseñar e implementar tu propio recolector de basura en Java. Se detalla la comprensión del modelo de memoria de Java, la asignación de memoria personalizada, el seguimiento de referencias, algoritmos de recolección de basura y la identificación de objetos raíz. Se incluyen ejemplos de código para demostrar cada concepto.

JavaDoc se actualiza para admitir Markdown en los comentarios de código

90% de los servicios de Java tienen vulnerabilidades críticas o de seguridad

  • 90% de los servicios de Java tienen vulnerabilidades críticas o de seguridad : Artur Skowronski analiza un informe de Datadog que revela que el 90% de los servicios de Java tienen vulnerabilidades reales, destacando la importancia de analizar las dependencias indirectas. Aunque el enfoque conservador de evaluación de riesgos es crucial, se cuestiona si las cifras exageradas generan conciencia real en las organizaciones. Se plantea la necesidad de métricas alternativas como VISS o EPSS para una evaluación más precisa.

Construyendo enums en tiempo de ejecución

  • Construyendo enums en tiempo de ejecución : Artículo que explora cómo construir enums en tiempo de ejecución en Java. Aunque se desaconseja esta práctica, se muestra cómo hacerlo. Describe la anatomía de un enum, cómo instanciarlo y cómo modificarlo. Advierte sobre la fragilidad de este enfoque y propone soluciones para problemas como la optimización del JIT. También menciona cambios en Java 21 y posibles soluciones futuras.

Go

Sonic: Una nueva biblioteca E/S de baja latencia de código abierto

  • Sonic: Una nueva biblioteca E/S de baja latencia de código abierto : Sonic es una nueva biblioteca de red y E/S de baja latencia de código abierto para Go, presentada por una empresa especializada en infraestructura de trading. Según Talos, autor del artículo, Sonic es una alternativa al paquete net que elimina la necesidad de usar múltiples goroutines para manejar múltiples conexiones y lecturas/escrituras en el mismo proceso.

Por qué prefiero pasar punteros de estructuras

Diferencias entre Go y Java

  • Diferencias entre Go y Java : Jarrod Roberson discute las diferencias entre Go y Java, argumentando que Go puede ser incluso más orientado a objetos que Java o C++. Esto desafía la percepción común de que Java es el paradigma de la orientación a objetos en la programación.

Tokens for LLMs: Byte Pair Encoding in Go

  • Tokens for LLMs: Byte Pair Encoding in Go : Eli Bendersky explora el Byte Pair Encoding en Go, fundamental para LLMs. Comprender cómo se codifican y decodifican los tokens puede mejorar la comprensión de cómo funcionan los LLMs.

Introducción a Borgo: un nuevo lenguaje de programación

IA y Ciencia de datos

Guía de Visual Transformers

  • Guía de Visual Transformers : Una excelente guía visual de Transformers para tareas de imágenes en aprendizaje automático. El autor discute la preparación de datos, embedding, procesos de transformación de consultas, claves, valores, mecanismos de atención y embeddings posicionales. También se aborda la aplicación de atención multi-cabeza, conexiones residuales y redes feed-forward, incluido el entrenamiento con pérdida de entropía cruzada.

Hacking Large Language Models for Beginners

  • Hacking Large Language Models for Beginners : Como parte de la creciente adopción de los LLMs, los profesionales y investigadores han encontrado nuevas formas de explotar estos sistemas de aprendizaje automático. Se requieren medidas de seguridad sólidas en aplicaciones de producción que utilizan LLMs, ya que estos modelos son fundamentales en diversas aplicaciones. Este artículo proporciona recursos clave, como los marcos de OWASP y MITRE, y orientación sobre enfoques de seguridad que las organizaciones están tomando, como el red teaming para la evaluación de la seguridad de los sistemas de ML.

Construyendo una Aplicación de Chat con LangChain, LLMs y Streamlit para Interacción con Bases de Datos SQL Complejas

Técnicas avanzadas de recuperación para mejorar tus RAGs

  • Técnicas avanzadas de recuperación para mejorar tus RAGs : Damian Gil explica cómo implementar técnicas avanzadas de recuperación para mejorar tus RAGs. Aprenderás estrategias efectivas para optimizar el rendimiento de tus sistemas de recuperación de datos en tus proyectos de programación.

Errores comunes al usar bases de datos vectoriales

El misterioso modelo de IA “gpt2-chatbot” aparece repentinamente, confundiendo a expertos

Limitaciones de los LLM

  • Limitaciones de los LLM : Rohit Krishnan explora las limitaciones de los LLMs. Destaca que, a pesar de su eficacia en tareas de procesamiento de lenguaje natural, los LLMs aún no pueden comprender el contexto o tener sentido común. Krishnan plantea la importancia de abordar estas limitaciones para avanzar en la inteligencia artificial.

SEO

Importancia de los enlaces para el ranking según Google

  • Importancia de los enlaces para el ranking según Google : Barry Schwartz menciona que Google reconoce que los enlaces son menos relevantes para el ranking. Afirma que, a lo largo de los años, la importancia de los enlaces ha disminuido. Aunque no se deben descartar por completo, han perdido peso frente a otros sistemas como Navboost y RankBrain.

Cómo ver la caché en Google con Bookmarklets

  • Cómo ver la caché en Google con Bookmarklets : AJ Kohn comparte tres marcadores de Chrome para acceder a las versiones de caché de Google. Se pueden arrastrar los enlaces a la barra de marcadores y usarlos para ver la caché completa, solo texto o de view source.

Claves de SEO Técnico que funcionan hoy

  • Claves de SEO Técnico que funcionan hoy : Estela Franco y Lino Uruñuela hablan sobre la importancia del SEO técnico en un proyecto actualmente, en una entrevista con Luis Villanueva. Destacan las claves fundamentales a considerar.

Por qué las grandes empresas crean mal contenido

  • Por qué las grandes empresas crean mal contenido : Ryan Law explica por qué las grandes empresas a menudo generan contenido de baja calidad, perdiendo así la oportunidad de conectar con su audiencia de manera efectiva. Destaca la importancia de la autenticidad y la relevancia en el contenido empresarial.

General

Lista verificada de mercados y servicios en la Darknet

Optimizando pg_dump y pg_restore

  • Optimizando pg_dump y pg_restore : Sai Srirampur explora técnicas para acelerar pg_dump y pg_restore en PostgreSQL, como el uso de opciones de compresión y paralelización.

Cuándo y por qué se ignoran los índices de PostgreSQL

  • Cuándo y por qué se ignoran los índices de PostgreSQL : Radim Marek explora en su artículo las situaciones en las que PostgreSQL puede llegar a ignorar los índices, afectando el rendimiento de las consultas. Destaca la importancia de comprender este comportamiento para optimizar el uso de índices en PostgreSQL.

La importancia de los números aleatorios y su gestión en Linux

  • La importancia de los números aleatorios y su gestión en Linux : Sergio Prado explora la relevancia de los números aleatorios en Linux, destacando su papel crucial en informática, especialmente en criptografía. El autor explica tanto los enfoques de software como de hardware para generar números verdaderamente aleatorios y pseudo-aleatorios.

Código y proyectos

Dive: Explora las capas de una imagen de Docker

  • Dive: Explora las capas de una imagen de Docker : Dive es una herramienta para explorar capas en imágenes Docker y reducir su tamaño. Permite analizar imágenes con ‘dive ’ o ‘dive build -t ’. Se puede integrar en pipelines CI para mantener el espacio desperdiciado al mínimo.

Convierte sitios web completos en markdown preparados para LLM

awesome-local-ai

  • awesome-local-ai : Colección impresionante de herramientas de IA local. Incluye motores de inferencia, interfaces de usuario y soluciones completas para desarrolladores. Destacan herramientas como Llama.cpp, ExLlama y LM Studio. Además, ofrece recursos para entrenamiento de modelos, leaderboard de LLM y artículos de investigación como ‘BERT’ y ‘LaMDA’.

Unsloth: Finetune sobre Llama 3, Mistral & Gemma LLMs 2-5x con un 80% menos de memoria

MLflow: Plataforma para el Ciclo de Vida en Aprendizaje Automático

  • MLflow: Plataforma para el Ciclo de Vida en Aprendizaje Automático : MLflow es una plataforma para simplificar el desarrollo de aprendizaje automático, incluyendo el seguimiento de experimentos, empaquetar código en ejecuciones reproducibles y compartir y desplegar modelos. Sus componentes actuales incluyen MLflow Tracking, MLflow Projects, MLflow Models y MLflow Model Registry.

Konf 1.1: Carga flexible de archivos de configuración

  • Konf 1.1: Carga flexible de archivos de configuración : Konf es un laoder de Configuración Flexible. Carga ajustes de configuración desde diversas fuentes, como archivos locales, variables de entorno, S3, AWS Parameter Store, AWS AppConfig y GCP Secret Manager. La versión 1.1 añade soporte para notificaciones de cambios a través de AWS SNS, GCP PubSub y Azure Service Bus.

Gohalt: Biblioteca de throttling

  • Gohalt: Biblioteca de throttling : Gohalt es una biblioteca de throttling de propósito general creada por Kostiantyn Masliuk. Puedes utilizarla para construir pipelines de throttling, limitadores de velocidad, etc.

Gorush: Un servidor de notificaciones push construido en Gin

Goread 1.6.5: Un lector de feeds RSS/Atom basado en terminal

pdfcpu 0.8

  • pdfcpu 0.8 : Pdfcpu 0.8 incluye soporte para encriptación PDF 2.0, mejoras de rendimiento significativas y cambios en la configuración. Horst Rutter destaca la posibilidad de deshabilitar la optimización interna y la detección de recursos no utilizados. Se recomienda precaución al ajustar la configuración. Agradecimientos a los probadores y colaboradores fancycode, adamgreenhall y xelan.

zpy: ZSH Helpers para Venvs, con Uv o pip

  • zpy: ZSH Helpers para Venvs, con Uv o pip : Zpy es un conjunto de funciones de Zsh para gestionar entornos virtuales de Python con uv o pip-tools. Permite la gestión interactiva de entornos virtuales, especificaciones de dependencias e instalaciones de aplicaciones Python aisladas, con completado de pestañas. Puede reemplazar herramientas como pipenv, poetry o virtualenvwrapper.

zpy: Entornos aislados usando UV con pipxu

  • zpy: Entornos aislados usando UV con pipxu : Herramienta que instala aplicaciones de Python en entornos virtuales aislados utilizando UV. A diferencia de pipx, pipxu es mucho más rápido al utilizar UV en lugar de venv y pip. Se ha desarrollado y probado en Linux, con compatibilidad en macOS y Windows.

PyOptInterface: Interfaz para Optimización Matemática

  • PyOptInterface: Interfaz para Optimización Matemática : Interfaz eficiente para optimización matemática en Python. Permite construir y resolver modelos de optimización con varios optimizadores, con abstracciones comunes de entornos de modelado algebraico. Destaca por su velocidad en la construcción de modelos, bajo costo para modificar problemas incrementalmente y API unificada. PyOptInterface soporta problemas como LP, MILP, QP, entre otros, y optimizadores como COPT, Gurobi, HiGHS y Mosek.

Coral: motor de traducción, análisis y reescritura de consultas para SQL y otros lenguajes relacionales

  • Coral: motor de traducción, análisis y reescritura de consultas para SQL y otros lenguajes relacionales : Coral es un motor de traducción, análisis y reescritura de consultas para SQL y otros lenguajes relacionales. Establece una representación intermedia estándar, Coral IR, que captura la semántica de expresiones algebraicas relacionales independientemente de cualquier dialecto SQL. Coral expone APIs para implementar conversiones entre dialectos SQL y Coral IR en ambas direcciones. Actualmente, Coral admite la conversión de HiveQL y Spark SQL a Coral IR, y de Coral IR a HiveQL, Spark SQL y Trino SQL.

Separación en tiempo real de audio

  • Separación en tiempo real de audio : Modelo multimodal híbrido basado en transformadores para separación de fuentes de audio en tiempo real y generación de letras, acordes y ritmo. El proyecto se enfoca en música, generando acordes, ritmos, letras, etc.

Scrapegraph-ai: Biblioteca de scraping con inteligencia artificial

Posts que te pueden interesar:


LinkedIn

comments powered by Disqus