Tipos de licencias open source (código abierto)
: En este post, se profundiza en todos los tipos de licencias open source que existen, algo esencial si las usamos para la creación o la gestión de código abierto.
Novedades en Python 3.13
Python
Novedades en Python 3.13
Novedades en Python 3.13
: Python 3.13 ha entrado en beta, lo que significa que la ya no se van a añadir nuevas funcionalidades. Esta versión incluye cambios en el REPL, nuevas características de tipado y soporte experimental para deshabilitar el GIL.
Sets, diccionarios sin valores
Sets, diccionarios sin valores
: Rodrigo Girão Serrão explora la relación entre conjuntos y diccionarios al implementar una clase de conjunto. Los conjuntos son un tipo de datos integrado que ofrece una búsqueda e inserción rápida, similar a las claves de un diccionario.
Cómo leer y escribir archivos Parquet con Python
Cómo leer y escribir archivos Parquet con Python
:
Apache Parquet
es un formato de almacenamiento columnar popular utilizado por científicos de datos y usuarios del ecosistema Hadoop. Mike Driscoll explica cómo leer y escribir archivos Parquet en Python utilizando el paquete pyarrow.
Python Sequences: A Comprehensive Guide
Python Sequences: A Comprehensive Guide
: En este tutorial de Real Python, se exploran a fondo las secuencias en Python, una de las principales categorías de tipos de datos.
Creando una calculadora con wxPython
Creando una calculadora con wxPython
: Mike Driscoll explora wxPython, un kit de herramientas GUI para Python, a través de la creación de una calculadora personal.
Cómo ejecutar múltiples bucles de eventos concurrentes con Asyncio
Cómo instalar Python en Mac
: Daniel Kehoe explica cómo instalar Python en Mac utilizando la herramienta Rye, escrita en Rust. Rye simplifica la gestión de versiones de Python y bibliotecas de software, ideal para principiantes. Se detalla la instalación de Rye, la configuración del PATH, la gestión de versiones y paquetes, y el flujo de trabajo con Python. Una guía completa para programadores en Mac.
Scrapy Vs. Crawlee: Comparación de librerías de web scraping
Scrapy Vs. Crawlee: Comparación de librerías de web scraping
: Este artículo se compara Scrapy, una de las bibliotecas de web scraping más antiguas y populares, con Crawlee, una biblioteca más actual. Scrapy, escrita en Python, destaca por su documentación detallada pero compleja.
Automatización del hogar utilizando cualquier cámara (visión por ordenador)
Automatización del hogar utilizando cualquier cámara (visión por ordenador)
: Miguel Ángel Cabrera Miñagorri nos presenta un tutorial sobre cómo automatizar tareas en el hogar utilizando visión por ordenador a través de Home Assistant. Conecta cámaras existentes para que el hogar tome decisiones, como apagar la TV cuando no hay personas viéndola.
Parseando PNG images in Mojo
Parseando PNG images in Mojo
: Ferdinand Schenck explora cómo analizar imágenes PNG en Mojo, detallando el proceso de lectura de datos, verificación de encabezados, análisis de chunks, descompresión de datos de imagen, y creación de un tensor. A través de ejemplos y código, Ferdinand muestra cómo trabajar con imágenes PNG en Mojo para propósitos de Machine Learning.
¿Como se puede desarrollar una pequeña lista de cadenas en C para Python?
¿Como se puede desarrollar una pequeña lista de cadenas en C para Python?
: Daniel Lemire explora en su blog la velocidad en el desarrollo de listas de cadenas en C para Python. Propone un enfoque de bajo nivel para mejorar el rendimiento al retornar una lista de cadenas en lugar de muchas cadenas individuales.
Java
Todo lo que necesitas saber sobre Java 22
Todo lo que necesitas saber sobre Java 22
: Java 22, lanzado el 19 de marzo de 2024, trae 12 Propuestas de Mejora de JDK, divididas en estándar, vista previa e incubadora. Destacan JEP 456 sobre variables sin nombre, JEP 459 sobre plantillas de cadena y JEP 447 sobre declaraciones antes de ‘super()’. También se introducen JEP 458 para ejecutar programas de varios archivos y JEP 463 sobre clases implícitas y métodos principales de instancia. Además, se presenta JEP 423 sobre fijación regional para G1 y JEP 454 para API de Funciones y Memoria Extranjeras.
¿Qué es RocksDB (y su papel en el streaming)?
¿Qué es RocksDB (y su papel en el streaming)?
: RocksDB, una base de datos de alto rendimiento, es una joya oculta en la industria tecnológica, a menudo pasada por alto por los desarrolladores. Mark Andreev explora las aplicaciones y detalles de esta poderosa herramienta, destacando su equilibrio entre personalización y autoadaptabilidad. RocksDB es ampliamente utilizado en frameworks de procesamiento de streaming como Apache Flink, así como en aplicaciones web y sistemas de bases de datos como TiKV y CockroachDB.
Code Smell 251 - Colecciones Vacías
Code Smell 251 - Colecciones Vacías
: El artículo ‘Code Smell 251 - Collections Empty’ de Maxi Contieri destaca la importancia de usar nombres declarativos como ‘isEmpty()’ en lugar de ‘count() == 0’ para verificar si una colección está vacía. Se mencionan problemas de legibilidad, invalidación de caché, penalidades de rendimiento y seguridad de tipos. Se proporciona un contexto, código de muestra incorrecto y correcto, detección automática y etiquetas de nivel principiante.
Explicando que es la JVM
Explicando que es la JVM
: La JVM (Java Virtual Machine) es una máquina virtual que ejecuta el bytecode generado por el compilador Java. Alex Reis explica que la JVM es responsable de ejecutar el código Java en cualquier plataforma que tenga la JVM instalada. Además, se detalla los componentes de la JVM como Class Loader, Run Time Data Area, Execution Engine, Native Interfaces y Native Libraries.
Oracle lanzará Code Assist: asistente de codificación AI optimizado para Java, SQL y su nube
Oracle lanzará Code Assist: asistente de codificación AI optimizado para Java, SQL y su nube
: Oracle planea lanzar Code Assist, un asistente de codificación AI optimizado para Java, bases de datos Oracle, scripting NetSuite e Infraestructura en la Nube de Oracle. El plugin para Visual Studio Code y JetBrains IntelliJ IDEA incluye sugerencias de código, generación de documentación, revisiones de código, pruebas unitarias y funcionales.
Cómo aumentar la cobertura de pruebas con Tracing
Cómo aumentar la cobertura de pruebas con Tracing
: Artículo que explora la importancia de la cobertura de pruebas en sistemas distribuidos. Se detalla cómo el Tracing puede mejorar la comprensión del comportamiento del sistema y las interacciones entre componentes.
Java 22: registros y matching de patrones
Java 22: registros y matching de patrones
: Oskar Dudycz explora las mejoras de Java 22 en registros y matching de patrones, aplicándolas a un ejemplo de carrito de compras. Dudycz destaca la importancia de aprender nuevas tecnologías a través de ‘Katas’ y muestra cómo estas nuevas características de Java permiten una modelación más clara y concisa.
Explicit vs Diagnostic GC
Explicit vs Diagnostic GC
: En el artículo ‘Explicit vs Diagnostic GC’ de Dr. Heinz M. Kabutz se explora la diferencia entre el GC explícito y el diagnóstico en Java. Se destaca que llamar a System.gc() puede ser perjudicial y se muestra cómo forzar un GC incluso si los GC explícitos están deshabilitados. Se analiza cómo funcionan ambos tipos de GC y se presentan ejemplos de código para demostrar su comportamiento.
Reemplazando la palabra clave synchronized
Reemplazando la palabra clave synchronized
: Anthony Goubard muestra diferentes formas de reemplazar la palabra clave synchronized para hacer nuestro código más amigable con los hilos virtuales. Propone usar ReentrantLock, BlockLock, SyncUtils y AspectJ, así como reemplazos para métodos JDK que utilizan synchronized.
JetBrains IntelliJ IDEA 2024.1 ofrece soporte para Java 22
JetBrains IntelliJ IDEA 2024.1 ofrece soporte para Java 22
: Johan Janssen, destaca el lanzamiento de IntelliJ IDEA 2024.1 con soporte para las características de Java 22, OpenRewrite, servidor WireMock, Maven Shade Plugin y completado de código de línea completa para Java y Kotlin. La nueva versión mejora la salida de registro, el indexado de proyectos y presenta un nuevo terminal, entre otras mejoras.
Desarrollando un Orquestador de Datos en Java
Desarrollando un Orquestador de Datos en Java
: Loic Mathieu presenta Kestra, un orquestador de datos escrito en Java. Kestra es único por estar escrito en Java, a diferencia de la mayoría de orquestadores que están en Python. Explica la arquitectura distribuida de Kestra, su extensibilidad a través de plugins y cómo aprovecha el ecosistema Java para ofrecer un orquestador robusto y escalable.
El plugin Devoxx Genie para IntelliJ proporciona acceso a modelos LLM locales o basados en la nube
El plugin Devoxx Genie para IntelliJ proporciona acceso a modelos LLM locales o basados en la nube
: El plugin Devoxx Genie, que utiliza modelos de lenguaje grande (LLM) locales o en la nube para generar pruebas unitarias y mejorar el código fuente. El plugin es compatible con proveedores locales como Ollama y LM Studio, así como con proveedores en la nube como OpenAI y Mistral. Requiere JDK 17 e IntelliJ IDEA 2023.3.4.
A Simple Plain-Text Knowledge System
A Simple Plain-Text Knowledge System
: En este video, se presenta un sistema de conocimiento simple basado en archivos de texto plano, sin necesidad de herramientas sofisticadas. Sebastian Daschner destaca la importancia de tener un sistema de toma de notas al aprender nuevos temas. Puedes encontrar más información en su blog, incluyendo consejos sobre productividad y el uso de Vim.
Spring Tips: Bases de datos vectoriales con Spring AI
Hibernate 7.0.0.Alpha2
: Hibernate ORM 7.0.0.Alpha2 ahora pasa el TCK de Jakarta Persistence 3.2, requiere Java 17, introduce un nuevo XSD para mapeo y migra a Hibernate Models para procesamiento de modelos de dominio. Se enfoca en validaciones del modelo de dominio, como combinaciones ilegales de anotaciones.
El encabezado HTTP Vary
El encabezado HTTP Vary
: En este artículo se explora el encabezado
Vary
en HTTP. Se discute la importancia de tener una clave de caché multidimensional configurable para evitar problemas al solicitar recursos con diferentes tipos de contenido.
Knowledge Graphs - What Are They?
Knowledge Graphs - What Are They?
: Richard Strange explora los conceptos de grafos de conocimiento y bases de datos de grafos. Explica que los grafos de conocimiento son representaciones gráficas de entidades y sus relaciones, mientras que las bases de datos de grafos almacenan estos grafos.
Go
Optimizando el uso de CPU de forma gratuita con PGO
Optimizando el uso de CPU de forma gratuita con PGO
: Colin Douch explora cómo Cloudflare ha estado experimentando y beneficiándose de la optimización guiada por perfiles de Go 1.20+. A gran escala, ejecutando servicios basados en Go en miles de núcleos, los resultados son sorprendentes.
La polémica del uso de ‘ok’ en Go
La polémica del uso de ‘ok’ en Go
: Zach Musgrave cuestiona si realmente es necesario seguir la convención de nombrar las variables de existencia de mapas como ‘ok’ en Go. Aunque es una práctica común, el autor sugiere que podríamos mejorar en este aspecto y buscar alternativas más descriptivas. Zach invita a reflexionar sobre este tema en la comunidad de programadores de Go.
¿Realmente los Gophers construyen todo desde cero?
¿Realmente los Gophers construyen todo desde cero?
: En Reddit, un desarrollador nuevo en Go se cuestionó por qué hay pocos frameworks a gran escala en Go y si realmente la tendencia es construir todo desde cero. La respuesta principal resume bien el enfoque típico de Go: contamos con muchas bibliotecas excelentes y Go facilita su composición.
Desarrollando una aplicación web con Go y React
Desarrollando una aplicación web con Go y React
: Artículo que muestra el desarrollo de una aplicación web con Go y React. Ryan Peden (JetBrains) destaca la utilidad de ver cómo se unen las partes, a pesar de que la serie se centra en mostrar el IDE GoLand de JetBrains y no tanto en el diseño de la aplicación en sí.
Cómo hice que mi perfil de GitHub README fuera dinámico
Cómo hice que mi perfil de GitHub README fuera dinámico
: Duy Ng muestra cómo personalizó su perfil de GitHub para destacar información adicional. Aunque no se utiliza Go en este caso, el artículo ofrece una demostración de cómo agregar publicaciones de blog u otra información para darle un toque especial al perfil.
IA y Ciencia de datos
MemGPT: Creación agentes LLM con memoria a largo plazo y herramientas personalizadas
Análisis de 40 millones de publicaciones de Hacker News
Análisis de 40 millones de publicaciones de Hacker News
: Wilson Lin presenta muestra los resultados de analizar 40 millones de publicaciones de Hacker News utilizando incrustaciones de texto y clustering. El artículo incluye discusiones prácticas sobre la colección de datos, incrustaciones, reducción de dimensionalidad, visualizaciones y más.
Implementación de los 4 Algoritmos RAG más Avanzados
Hallucinations, Errors, and Dreams
: Colin Fraser explora en su artículo la relación entre alucinaciones, errores y sueños, analizando cómo nuestro cerebro procesa la información de manera incorrecta en ciertas circunstancias. Fraser destaca la importancia de comprender estos fenómenos para entender mejor el funcionamiento de la mente humana.
Cómo convertir cualquier texto en un gráfico de conceptos
Aplicaciones de los LLM en el Mercado Financiero
: Richard Dewey explora en su artículo las posibles aplicaciones de los Modelos de Lenguaje de Aprendizaje (LLMs) en los mercados financieros, destacando su uso en la predicción de secuencias de precios, el aprendizaje multimodal, la creación de datos sintéticos y el análisis fundamental.
Lista de Modelos de IA Gratuitos
Lista de Modelos de IA Gratuitos
:Santhosh Balasa ha recopilado una lista de modelos de IA gratuitos que se pueden utilizar para programación, incluyendo Chat GPT, Mistral AI, Claude AI, Cohere, Copilot, Perplexity AI, Inflection pi AI, BlackBox AI, Gemini, Phind, You y Julius AI.
Jan: una alternativa de código abierto a ChatGPT
Jan: una alternativa de código abierto a ChatGPT
: Jan es una alternativa de código abierto a ChatGPT que se ejecuta 100% offline en tu PC. Cuenta con soporte para múltiples motores como llama.cpp y TensorRT-LLM.
SEO
Uso de Embeddings Vectoriales en SEO con Screaming Frog
Uso de Embeddings Vectoriales en SEO con Screaming Frog
: Mike King explica cómo generar embeddings para el contenido de un sitio con Screaming Frog utilizando la API de OpenAI, Vertex de Google o un modelo open-source. Además, detalla las diversas tareas de SEO y contenidos que se pueden realizar con estos datos.
Acciones de Google contra medios de habla inglesa
Acciones de Google contra medios de habla inglesa
: Google, bajo la nueva política de abuso de reputación de sitios, ha tomado medidas contra subdominios y subdirectorios alquilados de medios como CNN y LA Times. Barry Schwartz menciona que estas acciones, aunque no son algorítmicas, afectan sus rankings. Se espera que Google implemente acciones algorítmicas en el futuro.
Google muestra el número de resultados de una búsqueda en herramientas
Extensión de Chrome: GSC Guardian 2.0
: La extensión gratuita GSC Guardian 2.0 muestra la duración exacta de los updates de Google en la Search Console. Permite añadir anotaciones y visualizar el impacto de los updates en Discover.
Ahrefs: Ahorro de cientos de millones al no usar la nube
Ahrefs: Ahorro de cientos de millones al no usar la nube
: Efim Mirochnik explica cómo Ahrefs ha ahorrado 400 millones de dólares en tres años al no utilizar servicios en la nube, prefiriendo su propia infraestructura en lugar de AWS.
General
Herramientas útiles para desarrolladores
Herramientas útiles para desarrolladores
: Web en la que se puede encontrar más de 80 herramientas que podrían ser útiles en tu trabajo diario de desarrollo. Incluye generadores (UUIDs, frases de pase, códigos QR), convertidores (JSON a CSV, YAML a TOML, TOML a JSON), herramientas web (analizador de URL, slugify de cadenas, selector de emojis) y mucho más.
Cómo no cambiar el tipo de columna en PostgreSQL
Cómo no cambiar el tipo de columna en PostgreSQL
: Radim Marek nos muestra la discrepancia entre la teoría y la práctica al cambiar el tipo de columna en PostgreSQL. Es sencillo en desarrollo, pero desafiante en producción. Cambiar aleatoriamente el tipo de datos en una base de datos de producción puede ser un desafío.
Consejos para mejorar el rendimiento de inserción en PostgreSQL
Understanding Container Image Layers
: Ken Muse explora la importancia de entender las capas de imágenes en contenedores de Docker. Destaca cómo las capas permiten la reutilización de imágenes y cómo afectan al rendimiento y tamaño de los contenedores.
Código y proyectos
Cómo desarrollar un escáner de documentos con Raspberry Pi
Ejemplos de los mejores charts desarrollados en Python
Ejemplos de los mejores charts desarrollados en Python
: El Python Graph Gallery ofrece cientos de ejemplos de gráficos fundamentales para inspirar a desarrolladores, destacando la versatilidad de matplotlib. Autores como Joseph Barbier y Cédric Scherer presentan visualizaciones de alta calidad, demostrando el poder de Python en la comunidad.
Chapar: Una herramienta para testear APIs
Chapar: Una herramienta para testear APIs
: Chapar: Una herramienta de testeo de APIs, desarrollada en Go utilizando la biblioteca de interfaz de usuario Gio. Diseñada para probar APIs HTTP y gRPC de manera similar a Postman.
Análisis de Tamaño de Dependencias en Binarios Compilados de Go
Análisis de Tamaño de Dependencias en Binarios Compilados de Go
: Zxilly presenta go-size-analyzer, una herramienta que analiza el tamaño de las dependencias en los binarios compilados de Go. La versión 1.0 incluye una nueva vista basada en terminal para visualizar cómo se utilizan los bytes en tus binarios.
Actualización UUID 5.2
Actualización UUID 5.2
: La versión 5.2.0 de UUID trae actualizaciones para cumplir con el RFC-9562, añade tipos de errores específicos y mejora las prácticas de seguridad de Github Actions. Incluye contribuciones de @kohenkatz, @step-security-bot, @dependabot y @PatrLind. Para más detalles, revisa el changelog completo.
Nuevas características en Go OpenAI 1.24.0
Nuevas características en Go OpenAI 1.24.0
: En la versión 1.24.0 de Go OpenAI se han añadido nuevas funcionalidades como GPT4-o y alias a enums de completado. Los nuevos contribuyentes incluyen kmesiab, nullswan y Kshirodram. Este commit fue creado por sashabaranov el 13 de mayo.
GPTScript 0.6
GPTScript 0.6
: GPTScript 0.6 es un nuevo lenguaje de scripting para automatizar la interacción con un modelos (LLM), como OpenAI. Creado para ofrecer una experiencia de programación en lenguaje natural, permite realizar tareas complejas con instrucciones en inglés.
Superfile: Una herramienta para gestionar archivos de forma eficiente
Lista de juegos de código abierto
: Lista de juegos de código abierto disponibles para disfrutar de forma gratuita. Encuentra opciones para todos los gustos y plataformas.